2508: 【例题1】黑暗城堡

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

知道黑暗城堡有 $N$ 个房间,$M$ 条可以制造的双向通道,以及每条通道的长度。
城堡是树形的并且满足下面的条件:
设 $D_i$为如果所有的通道都被修建,第 $i$ 号房间与第 $1$ 号房间的最短路径长度;
而 $S_i$ 为实际修建的树形城堡中第 $i$ 号房间与第 $1$ 号房间的路径长度;
要求对于所有整数 $i(1≤i≤N)$,有 $S_i= D_i$ 成立。
你想知道有多少种不同的城堡修建方案。当然,你只需要输出答案对 $2^{31} -1$ 取模之后的结果就行了。

输入

第一行为两个由空格隔开的整数 $N,M$;
第二行到第 $M+1$ 行为 $3$ 个由空格隔开的整数 $x,y,l$:表示 $x$ 号房间与 $y$ 号房间之间的通道长度为 $l$。

输出

一个整数:不同的城堡修建方案数对 $2^{31} -1$ 取模之后的结果。

样例输入 复制

4 6
1 2 1
1 3 2
1 4 3
2 3 1
2 4 2
3 4 1

样例输出 复制

6

提示

样例说明
一共有 $4$ 个房间,$6$ 条道路,其中 $1$ 号和 $2$ 号,$1$ 号和 $3$ 号,$1$ 号和 $4$ 号,$2$ 号和 $3$ 号,$2$ 号和 $4$ 号,$3$ 号和 $4$ 号房间之间的通道长度分别为 $1$,$2$,$3$,$1$,$2$,$1$。
而不同的城堡修建方案数对 $2^{31} -1$ 取模之后的结果为 6。
数据范围:
对于全部数据,$1≤N≤1000,1≤M≤ \frac{N(N-1)}{2},1≤l≤200$。