题目描述: 给一个文本串和一个模式串,模式串中有通配符$'?'$, 问匹配多少次,哪里可以匹配。 题解: 极为暴力,$FFT$单字符匹配$26$次,总计$26*3=78$次$FFT$。 其实有更好的方法我放在下一篇博客里 代码: ...
分类:
其他好文 时间:
2019-01-17 21:15:57
阅读次数:
192
众所周知$FFT$是一个功能多但是不开$O2$常数吓人的算法。 这里我来口胡一下$FFT$如何搞字符串匹配。 其实我第一次是字符暴力匹配$52$次,结果$T$了一下午。 后来上网找发现有个更好的算法。 如果有两个数判相等,我们可以相减,判断是否为$0$; 但是字符串匹配相当于多对数判相等,相减加和肯 ...
分类:
其他好文 时间:
2019-01-17 21:10:36
阅读次数:
245
FFT中的一个常见小问题 这里不细说FFT的内容,详细内容看这些就足以了解大概了 "小学生都能看懂的FFT!!!" "FFT详解" "补充——FFT中的二进制翻转问题" 主要是对学习过程中一个容易困扰的小问题进行解释,以便于理解 用FFT将多项式的系数转换为点值时,原系数数组a最后存的是不同的点值, ...
分类:
其他好文 时间:
2019-01-17 19:45:03
阅读次数:
201
FFT优化背包 可以推出dp式子 乘法不可做。M是质数,变成原根 dp式子现在是加法 其实每次是原来的f数组,对可以转移的s集合进行卷积(即FFT优化背包) 直接快速幂搞定 详细一些: 循环卷积无非就是多了一个取值的位置,每次FFT之后,一个位置再变成两个位置的和,剩下>=m的位置再变成0 也有结合 ...
分类:
其他好文 时间:
2019-01-17 19:39:51
阅读次数:
189
Code const int nmax=(int)3e6+50; const db pi=acos( 1.0); struct tcpx{db a,b;}c1[nmax],c2[nmax]; tcpx operator+(tcpx a,tcpx b){return (tcpx){a.a+b.a,a. ...
分类:
其他好文 时间:
2019-01-16 21:40:34
阅读次数:
145
ywy_c_asm的良心题解 是道好题 体现了二进制位的形象递归思想,以及将FWT的思路(都是拆位分治)用到题目中的典范 可以暴力高斯消元。完全没有利用2^N以及+-1的良好性质 发现项数,方程和二进制位有关系 考虑类似FWT,FFT能不能递归? 已经具备递归的模式 但是怎样递归下去?消掉x1的话, ...
分类:
其他好文 时间:
2019-01-11 23:11:40
阅读次数:
242
题意:给定k,只含有ACGT的字符串S和T,求T在S中出现了多少次。 字符匹配:如果S的[i - k, i + k]中有字符x,那么第i位可以匹配x。 解: 首先预处理:f[i][j]表示S的第i位能否匹配j。差分一下即可。 然后按照FFT的套路,枚举每种字符,算一遍有多少个匹配。四种字符加起来,如 ...
分类:
其他好文 时间:
2019-01-10 10:56:13
阅读次数:
133
题面 题解 对字符串一脸懵的我肯定只能用$FFT$这种暴力方法水过啊。。。 将后面那个字符串翻转一下,对$\text{AGCT}$分别统计,用$FFT$就可以啦 代码 ...
分类:
其他好文 时间:
2019-01-08 17:51:10
阅读次数:
189
不要以为用上Stirling数就一定离正解更近,FFT都是从DP式本身出发的。 设f[i]为i个积木的所有方案的层数总和,g[i]为i个积木的方案数,则答案为$\frac{f[i]}{g[i]}$ 转移枚举第一层是哪些积木:$$f_n=g_n+\sum_{i=1}^{n}\binom{n}{i}f_ ...
分类:
其他好文 时间:
2019-01-06 10:37:40
阅读次数:
165
我这种数学一窍不通的菜鸡终于开始学多项式全家桶了…… 必须要会的前置技能:FFT(不会?戳我: "【知识总结】快速傅里叶变换(FFT)" ) 一、NTT = 跟FFT功能差不多,只是把复数域变成了模域(计算复数系数多项式相乘变成计算在模意义下整数系数多项式相乘)。你看FFT里的单位圆是循环的,模一个 ...
分类:
其他好文 时间:
2019-01-06 01:06:22
阅读次数:
467