题目描述

给定一张 \(N\) 个点 \(M\) 条边的无向连通图,每条边有边权。我们需要从 \(M\) 条边中选出 \(N − 1\) 条, 构成一棵树。 记原图中从 \(1\) 号点到每个节点的最短路径长度为 \(D_i\) ,树中从 \(1\) 号点到每个节点的最短路径长度为 \(S_i\) ,构出的树应当满足对于任意节点 \(i\),都有 \(D_i = S_i\)

请你求出选出 \(N − 1\) 条边的方案数。

输入格式

输入的第一行包含两个整数 \(N\)\(M\)

接下来 \(M\) 行,每行包含三个整数 \(u、v\)\(w\),描述一条连接节点 \(u\)\(v\) 且边权为 \(w\) 的边。

输出格式

输出一行,包含一个整数,代表方案数对 \(2 ^ {31} − 1\) 取模得到的结果。

样例

1.in

3 3
1 2 2
1 3 1
2 3 1

1.out

2

数据范围与约定

对于 \(30 \%\) 的数据,\(2 \leq N \leq 5,M \leq 10\)

对于 \(50\%\) 的数据,满足条件的方案数不超过 \(10000\)

对于 \(100\%\) 的数据,\(2 \leq N \leq 1000, N - 1 \leq M \leq \frac{N(N - 1)}{2},1 \leq w \leq 100\)

题解

Code

相关文章:

  • 2021-11-19
  • 2021-12-20
  • 2021-11-27
  • 2022-12-23
  • 2022-01-05
  • 2022-12-23
猜你喜欢
  • 2021-08-15
  • 2021-09-28
  • 2021-06-30
  • 2021-06-28
  • 2022-12-23
  • 2017-11-27
相关资源
相似解决方案