THUPC2019 找树
一个月前做的题,放在现在写题解。其实还有一道半年前的,但不想写了。
这个最大值其实是诈骗,考虑计算每种权值的方案数。
考虑把位运算当成加法,此时答案如何计算。那么每条边边权就变成了 \(w(x)=x^v\),\(v\) 为权值。然后跑矩阵树定理:
\[c_i=[x^i]\sum\limits_{T\in G}\prod\limits_{e\in T}w_e(x)
\]
在我们构造的 Laplace 矩阵中,每一项由数值变成了多项式,数值乘法变成了多项式乘法。此时对于矩阵每一项先做一遍 DFT,然后求行列式的时候对应点值相乘,最后把行列式再 IDFT 回去就行了。
好像有人说过 FFT 和 FWT 本质上是一致的,受到启发,把矩阵中每一项换成集合幂级数,对应符号做 FWT,此时点值互不影响。对于每个点值的矩阵求一遍行列式,最后逆回去就得到方案了。
很厉害,很震撼,但不知道为啥 1e9
能过 4 秒,复杂度 \(O(n^32^w)\)。