![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FWT
Freopen
这个作者很懒,什么都没留下…
展开
-
LOJ 6271 生成树求和 加强版(三进制FWT,矩阵树定理)
题目分每一位来做。所以就变成了每条边是x0x^0x0或x1x^1x1或x2x^2x2多项式乘法是(modx3−1)\pmod {x^3-1}(modx3−1)意义下的循环卷积。用矩阵树定理求结果多项式。循环卷积可以用333次单位根ω3\omega_3ω3 来求点值后IDFT\rm IDFTIDFT回去即可得到答案。结束了。AC Code\mathcal AC\ CodeAC Code#include<bits/stdc++.h>#define maxn 1原创 2020-05-30 17:35:36 · 384 阅读 · 0 评论 -
省选模拟:西行寺无余涅槃(FWT的若干性质,解方程?)
部分分极其不友好n≤1e6kn \leq \frac {1e6}kn≤k1e6首先2mnm2^mnm2mnm是不可能过的。考虑kkk比mmm的数量级小这一特点。如果我们硬写FWTFWTFWT就浪费了这个性质。考虑FWTFWTFWT的定义式[j]FWT(a)=∑i=0(−1)bitcount(i&j)ai[j]FWT(a) = \sum_{i=0} (-1)^{bitcount(i\&j)}a_i[j]FWT(a)=∑i=0(−1)bitcount(i&j)ai那.原创 2020-05-18 18:02:44 · 620 阅读 · 0 评论 -
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 · 299 阅读 · 0 评论