#zXSCSybttg030107. 1492:最小生成树计数

1492:最小生成树计数

1492:最小生成树计数

题目描述

现在给出了一个简单无向加权图。你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树。如果两棵最小生成树中至少有一条边不同,则这两棵最小生成树就是不同的。

输入格式

第一行包含两个整数 nnmm,表示该无向图的节点数和边数,节点编号为 1n1 \sim n

接下来的 mm 行,每行包含三个整数 a,b,ca, b, c,表示节点 aabb 之间有一条权值为 cc 的边。

输出格式

输出不同的最小生成树的数量对 3101131011 取模的结果。

样例

样例输入 #1

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

样例输出 #1

8

样例解释 #1

该图有 88 棵不同的最小生成树,它们的最小生成树权值之和均为 33

其中一些最小生成树的边集为:

  • {(1,2,1),(1,3,1),(1,4,1)}\{(1,2,1), (1,3,1), (1,4,1)\}
  • {(1,2,1),(1,3,1),(2,4,1)}\{(1,2,1), (1,3,1), (2,4,1)\}
  • {(1,2,1),(1,3,1),(3,4,1)}\{(1,2,1), (1,3,1), (3,4,1)\}

等等。可以通过枚举所有可能的生成树并检查权值和来验证。

数据范围

  • 1n1001 \leq n \leq 100
  • 1m10001 \leq m \leq 1000
  • 1c1091 \leq c \leq 10^9

重要性质:具有相同权值的边不会超过 1010 条。

时空限制

  • 时间限制:1000 ms
  • 内存限制:65536 KB

注意:需要采用合适的算法才能在规定时间内通过所有测试数据。