[LuoguP2143]巨额资金_Kruskal_Matrix-Tree定理

巨额资金

题目链接https://www.luogu.org/problem/P2143

数据范围:略。


题解

有一个条件是每种权值的边最多是$10$条。

但是并不知道怎么用....

不过有一点我们是可以确认的,就是答案必定和最小生成树有关。

一定是在最小生成树上搞来搞去。

因为那个条件的原因,我们把相同权值放在一起考虑,发现:

把最小生成树上,所有权值等于$w_{now}$的边断开,剩下的所有当前权值有且只有一个作用就是把现在的森林连接成树。

这个熟不熟悉?一个无向图求生成树个数,而且当前联通块最多只有$11$个,想到矩阵树定理。

那不同权值的怎么办呢?发现只需要把每种权值的答案用乘法原理乘在一起就好了。

为什么?因为每种权值所贡献的连通性是固定的,所以可以乘一起。

复杂度是$O(mcdot (11 ^ 3 + m))$。

原文地址:https://www.cnblogs.com/ShuraK/p/11679755.html