博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P4173 残缺的字符串(FFT)
阅读量:5142 次
发布时间:2019-06-13

本文共 1331 字,大约阅读时间需要 4 分钟。

\(1.\)定义匹配函数

\(2.\)定义完全匹配函数

\(3.\)快速计算每一位的完全匹配函数值

#include
#include
#include
#include
#include
#define debug(...) fprintf(stderr,__VA_ARGS__)#define Debug(x) cout<<#x<<"="<
<
57){if(c=='-')f=-1;c=getchar();} while(c>=48&&c<=57)x=(x<<3)+(x<<1)+(c&15),c=getchar(); return f*x;}inline char readc(){ register char c=getchar(); while(c==' '||c=='\n'||c=='\t') c=getchar(); return c;}const int MAXN=2e6+5;const double Pi=acos(-1);struct cmpx{ double x,y; inline cmpx(){} inline cmpx(double _x,double _y){x=_x,y=_y;} inline friend cmpx operator + (cmpx a,cmpx b){return cmpx(a.x+b.x,a.y+b.y);} inline friend cmpx operator - (cmpx a,cmpx b){return cmpx(a.x-b.x,a.y-b.y);} inline friend cmpx operator * (cmpx a,cmpx b){return cmpx(a.x*b.x-a.y*b.y,a.x*b.y+a.y*b.x);} inline friend cmpx operator * (cmpx a,double b){return cmpx(a.x*b,a.y*b);}}A[MAXN],B[MAXN],C[MAXN];char s[MAXN],t[MAXN];int ans[MAXN],a[MAXN],b[MAXN];int n,m;namespace F_F_T{ int rev[MAXN],limit,l; inline void init(int n){ for(limit=1,l=0;limit<=n;limit<<=1) l++; for(int i=0;i
>1]>>1)|((i&1)<<(l-1)); } inline void FFT(cmpx *A,int type){ for(int i=0;i
=0;i--){ char c=readc(); a[i]=(c!='*')?c-'a'+1:0; } for(int i=0;i

转载于:https://www.cnblogs.com/lizehon/p/10504826.html

你可能感兴趣的文章
PE格式详细讲解11 - 系统篇11|解密系列
查看>>
Qt532_自定义QWebView_01
查看>>
QtTCP_ZC
查看>>
iphone应用程序生命周期浅析
查看>>
Git 中 SSH key 生成步骤
查看>>
ActiveMQ消息游标 --转载
查看>>
Expectation Maximization and GMM
查看>>
Java语言基础-多线程
查看>>
ArcGIS中的坐标系定义与转换 (转载)
查看>>
Nginx 负载平衡 支持域名转发的方法
查看>>
[转]Extjs combo数据绑定与获取
查看>>
spring Controller 层注解获取 properties 里面的值
查看>>
Element-ui多选下拉实现全部与其他互斥
查看>>
获取页面中触发焦点的元素
查看>>
数据结构开发(16):选择排序和插入排序
查看>>
数据结构开发(22):二叉树的转换、深层特性与存储结构设计
查看>>
Sphinx编译docs文档
查看>>
react native 8081 端口号被占
查看>>
马尔代夫蜜月之旅
查看>>
EL表达式的简单实用
查看>>