THUPC2019 找树

发布时间 2023-07-20 18:24:45作者: Ender_32k

一个月前做的题,放在现在写题解。其实还有一道半年前的,但不想写了。

这个最大值其实是诈骗,考虑计算每种权值的方案数。

考虑把位运算当成加法,此时答案如何计算。那么每条边边权就变成了 \(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)\)