测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A5546. 「一本通 3.1 例 1」黑暗城堡

编程题 提高+/省选-
知识点

题目描述

你知道黑暗城堡有 $N$ 个房间,$M$ 条可以制造的双向通道,以及每条通道的长度。

城堡是树形的并且满足下面的条件:

设 $D_i$ 为如果所有的通道都被修建,第 $i$ 号房间与第 $1$ 号房间的最短路径长度;

而 $S_i$ 为实际修建的树形城堡中第 $i$ 号房间与第 $1$ 号房间的路径长度;

要求对于所有整数 $i$ ($1\le i\le N$),有 $S_i= D_i$ 成立。

你想知道有多少种不同的城堡修建方案。当然,你只需要输出答案对 $2^{31} -1$ 取模之后的结果就行了。

输入格式

第一行为两个由空格隔开的整数 $N, M$;

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

输出格式

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

输入输出样例

输入 #1
4 6
1 2 1
1 3 2
1 4 3
2 3 1
2 4 2
3 4 1
输出 #1
6

说明/提示

对于全部数据,$ 1\le N\le 1000 $,$ 1\le M\le \frac{N(N-1)}{2} $,$1\le l\le 200$。
上一题 去做题 下一题