#P2088. 黑暗城堡
黑暗城堡
黑暗城堡 (castle.pas/c/cpp) 题目描述 在顺利攻破 Lord lsp的防线之后,lqr一行人来到了 Lord lsp的城堡下方。Lord lsp黑化 之后虽然拥有了强大的超能力,能够用意念力制造建筑物,但是智商水平却没怎么增加。现 在 lqr已经搞清楚黑暗城堡有 N个房间,M条可以制造的双向通道,以及每条通道的长度。 lqr深知 Lord lsp的想法, 为了避免每次都要琢磨两个 房间之间的最短路径,Lord lsp 一定会把城堡修建成树形的; 但是,为了尽量提高自己的移 动效率,Lord lsp 一定会使得 城堡满足下面的条件:设 Di 为如果所有的通道都被修建, 第 i号房间与第 1号房间的最 短路径长度;而Si为实际修建 的树形城堡中第 i号房间与第 1号房间的路径长度,对于所有满足 1≤i≤N的整数 i,有 Si = D i。为了打败 Lord lsp,lqr 想知道有多少种不同的城堡修建方案。于是 lqr向 applepi提出了这个问题。由于 applepi还 要忙着出模拟赛,所以这个任务就交给你了。当然,你只需要输出答案对 231 – 1 取模之后 的结果就行了。 输入格式 第一行有两个整数 N和 M。 之后 M行,每行三个整数 X,Y和 L,表示可以修建 X和 Y之间的一条长度为 L的通 道。 输出格式 输出一个整数,表示答案对 231 – 1取模之后的结果。 样例输入 3 3 1 2 2 1 3 1 2 3 1 样例输出 2 数据范围与约定 对于 30% 的数据,2≤N≤5,M≤10。 对于 50% 的数据,满足条件的方案数不超过 10000。 对于 100% 的数据,2≤N≤1000,N – 1≤M≤N(N – 1)/2,1≤L≤100。