题目描述
给定一张 n 个结点 m 条边的带权图(可能为无向图,可能为有向图)。
定义其一个生成树 T 的权值为 T 中所有边权的乘积。
求其所有不同生成树的权值之和,对 109+7 取模。
注意:
-
本题中,有向图的生成树指的是 以 1 为根的外向树;
-
两棵生成树 T1,T2 不同,当且仅当存在存在一条边 e,满足 e∈T1, e∈/T2。
输入格式
第一行:三个整数 n,m,t,分别表示图的结点数量,边的数量和图的类型(t=0 时为无向图,t=1 时为有向图)。
接下来 m 行:每行三个整数 u,v,w。
如果 t=0,表示 u,v 之间有一条权值为 w 的无向边;
如果 t=1,表示从 u 到 v 有一条权值为 w 的有向边。
输出格式
第一行:一个整数 ans,表示给定的图的生成树权值和对 109+7 取模的结果。
提示
【样例 1 解释】
样例 1 中的无向图如左图所示:

右图为其一个权值为 3×1×2×3=18 的生成树的例子。
【样例 2 解释】
样例 2 中的有向图如左图所示:

右图为其一个权值为 1×1×1×2=2 的生成树(以 1 为根的外向树)的例子。
【数据范围】
对于 100% 的数据:1≤n≤300, 1≤m≤105, t∈{0,1}, 1≤u,v≤n, 1≤w≤109。
对于测试点 1,2,3,4,5,6,t=0;对于测试点 7,8,9,10,11,t=1。
图中 可能 存在重边和自环,重边算作多条边。