#3895. 黑暗城堡

    ID: 3895 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>图结构树结构生成树图论最小生成树Kruskal算法竞赛进阶指南

黑暗城堡

题目描述

在顺利攻破 Lord lsp 的防线之后,lqr 一行人来到了 Lord lsp 的城堡下方。

Lord lsp 黑化之后虽然拥有了强大的超能力,能够用意念力制造建筑物,但是智商水平却没怎么增加。

现在 lqr 已经搞清楚黑暗城堡有N N 个房间,MM 条可以制造的双向通道,以及每条通道的长度。

lqr 深知 Lord lsp 的想法,为了避免每次都要琢磨两个房间之间的最短路径,Lord lsp 一定会把城堡修建成树形的。

但是,为了尽量提高自己的移动效率,Lord lsp 一定会使得城堡满足下面的条件:

D[i]D[i] 为如果所有的通道都被修建,第i i 号房间与第 1 号房间的最短路径长度;而 S[i]S[i] 为实际修建的树形城堡中第 ii 号房间与第 1 号房间的路径长度;要求对于所有整数 ii,有 S[i]=D[i]S[i]=D[i] 成立。

为了打败 Lord lsp,lqr 想知道有多少种不同的城堡修建方案。

保证至少存在一种可行的城堡修建方案。

你需要输出答案对2311 2^{31}–1 取模之后的结果。

输入格式

第一行有两个整数 NN M M

之后 MM 行,每行三个整数 XYX,YLL,表示可以修建 XXYY 之间的一条长度为 LL 的通道。

输出格式

一个整数,表示答案对 2311 2^{31}–1 取模之后的结果。

样例

3 3
1 2 2
1 3 1
2 3 1
2

数据范围

2N1000,N1MN(N1)/2,1L1002≤N≤1000, N−1≤M≤N(N−1)/2,1≤L≤100

来源

  • 算法竞赛进阶指南