思路就是在 kruskal 的 过程中,对于每个边权的边拉出来做 Matrix-Tree,然后乘到一起就是答案。
完整的代码:https://www.luogu.com.cn/paste/pppnmif1
这里用的一个思路是建一个虚点,向所有点连边,然后把这个虚点对应的行,列删掉,所以整体来看就不需要删去一行一列了。
但是,如果我这样写,
ans = 1ll * ans * det(cnt - 1) % mod;
就会 WA 到 70pts,看数据都是把非 0 的答案算成 0 了。有没有神知道原理