LOJ #6622. 「THUPC 2019」找树 / findtree(矩阵树定理+FWT+FMT)
找树 题解
首先把这道题转化为计数题,即对于 i∈[0,2W−1]i\in [0, 2^W-1]i∈[0,2W−1],统计权值为 iii 的树有多少种,答案就是最大的方案数非 000 的 iii。
接下来考虑怎么计数。生成树计数显然是基尔霍夫矩阵,但同时考虑权值就很麻烦了。但是注意到,如果所有操作都是异或,那我们可以将矩阵中的每个权值集合进行 FWT,而 FWT 后数组(集合幂级数)中的每一位都独立了,因此可以分每一位分别计算基尔霍夫矩阵去掉一行一列后的行列式,把行列式的答案组成一个新的数组(集合幂级数),
原创
2020-05-12 20:43:45 ·
316 阅读 ·
0 评论