随笔分类 -  FWT

摘要:注意到n很小,显然的做法是枚举每行是否翻转,然后O(m)统计Σmin(popcount(ai),n-popcount(ai))即可。考虑将每列是否翻转写成一个二进制数,那么翻转相当于让该二进制数与每列异或。统计每列各种状态的出现次数,将其设为cnt[i],将min(popcount(i),n-pop 阅读全文
posted @ 2019-01-15 14:52 Gloid 阅读(187) 评论(0) 推荐(0)
摘要:合法条件为所有划分出的子图均不存在欧拉回路或不连通,也即至少存在一个度数为奇数的点或不连通。显然可以对每个点集预处理是否合法,然后就不用管这个奇怪的条件了。 考虑状压dp。设f[S]为S集合所有划分方案的满意度之和,枚举子集转移,则有f[S]=Σg[S']*f[S^S']*(sum[S']/sum[ 阅读全文
posted @ 2019-01-14 22:30 Gloid 阅读(150) 评论(0) 推荐(0)
摘要:FWT大杂烩。跟着模拟做很多次FWT即可。 阅读全文
posted @ 2019-01-04 11:20 Gloid 阅读(188) 评论(0) 推荐(0)
摘要:即使n个数的异或为0。如果只有两堆,将质数筛出来设为1,做一个异或卷积即可。显然这个东西满足结合律,多堆时直接快速幂。可以在点值表示下进行。 阅读全文
posted @ 2019-01-01 16:34 Gloid 阅读(206) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/RabbitHu/p/9182047.html 完全没有学证明的欲望因为这个实在太好写了而且FFT就算学过也忘得差不多了只会写板子 阅读全文
posted @ 2019-01-01 15:08 Gloid 阅读(224) 评论(0) 推荐(0)