FFT
文章平均质量分 79
broxin
这个作者很懒,什么都没留下…
展开
-
[BZOJ4259] 残缺的字符串 (FFT)
题意:定义*号可匹配任意字符。给出A串,B串,求A串在B中完全匹配的所有位置。 将*号视作0,则两个等长的串可匹配当且仅当Σ(a[i]-b[i])^2*a[i]*b[i]==0。将A串和B串最左边对齐,每次上式都要重算一次,不科学。所以讲A串先反转过来然后补上*号,就是卷积啦。 原来的万径人踪灭一题当中用FFT来求了回文串,这里又能玩字符串匹配,真是太6了。 #include #includ原创 2016-02-21 17:42:54 · 2301 阅读 · 0 评论 -
BNUOJ51279 组队活动(cdq分治&&NTT)
题意:N个人进行组队,每个队不超过M人,求方案数模998244353。 这个递推方程我都没想到。。枚举当前这个人所在队伍剩余人数j,则f[i]=Σf[i-1-j]*C(i-1, j),把组合数展开后发现是个卷积的形式,但是不能直接NTT,因为之前的f值没有求出来。套用cash一题的策略使用cdq分治解决,先递归左边,再用左边的更新右边,再递归右边。注意NTT需要补成2的次幂,常数有点大,但只要保原创 2016-02-27 22:11:05 · 718 阅读 · 0 评论 -
[BZOJ2629]binomial (高精度+Lucas定理+离散对数+FFT)
题意:对于给定的n和p,求对于所有的0 注:p虽然要输入,但是题目标注了所以测试点的p是固定的。 首先需要用正确的姿势理解lucas定理,比如求C(n,r)%p,就是将n和r分别转换为p进制,然后依次算组合数乘起来。n是一个高精度数,求C(n,r)的过程中,n不断模p得到的数(即n的p进制表示)是固定的。 就是长这样:n0!/((n0-k0)!*k0!) * n1!/((n1-k1)!*k1原创 2016-05-29 23:11:11 · 834 阅读 · 0 评论