luogu#P6178. 【模板】Matrix-Tree 定理
【模板】Matrix-Tree 定理
题目描述
给定一张 个结点 条边的带权图(可能为无向图,可能为有向图)。
定义其一个生成树 的权值为 中所有边权的乘积。
求其所有不同生成树的权值之和,对 取模。
注意:
-
本题中,有向图的生成树指的是 以 为根的外向树;
-
两棵生成树 不同,当且仅当存在存在一条边 ,满足 。
输入格式
第一行:三个整数 ,分别表示图的结点数量,边的数量和图的类型( 时为无向图, 时为有向图)。
接下来 行:每行三个整数 。
如果 ,表示 之间有一条权值为 的无向边;
如果 ,表示从 到 有一条权值为 的有向边。
输出格式
第一行:一个整数 ,表示给定的图的生成树权值和对 取模的结果。
5 8 0
2 3 1
1 2 3
4 5 1
4 2 2
3 5 2
3 4 3
3 4 1
3 3 5
144
5 9 1
1 2 3
3 2 1
1 3 1
2 4 2
3 5 1
4 3 4
3 5 1
5 4 1
4 4 6
72
提示
【样例 解释】
样例 中的无向图如左图所示:
右图为其一个权值为 的生成树的例子。
【样例 解释】
样例 中的有向图如左图所示:
右图为其一个权值为 的生成树(以 为根的外向树)的例子。
【数据范围】
对于 的数据:$1\leq n\leq 300,\ \ 1\leq m\leq 10^5,\ \ t\in \{0,1\},\ \ 1\leq u,v\leq n,\ \ 1\leq w\leq 10^9$。
对于测试点 ,;对于测试点 ,。
图中 可能 存在重边和自环,重边算作多条边。