因为是异或,无法贪心。一定是在每个环上去掉一条边。
答案就是$sum_{xor}\oplus w_1\oplus w_2…\oplus w_k$
$w_i$表示第$i$个环去掉的边。
由于边权$<2^{17}$,$f_j(i)$表示第j个环上权值为$i$的数量。考虑生成函数$(f_1(0)x^0+f_1(1)x^1..f_1(2^{17}-1)x^{2^{17}-1})\times.. (f_k(0)x^0+f_k(1)x^1..f_k(2^{17}-1)x^{2^{17}-1})\times (x^{sum_{xor}})$
最后遍历一下即可。
- 复杂度$O(42\times 17 \times 2^{17})$
- 做$FWT$,类似与$NTT$,都先转为点值表示,最后变成多项式。可以减少不必要的常数
代码
1 |
|