邝斌的ACM模板(扩展 KMP)
来源:互联网 发布:青岛创业软件待遇如何 编辑:程序博客网 时间:2024/06/05 17:59
本博客整理自邝斌的ACM模板
1.2、扩展 KMP
/* * 扩展KMP算法 *///next[i]:x[i...m-1]与x[0...m-1]的最长公共前缀//extend[i]:y[i...n-1]与x[0...m-1]的最长公共前缀void pre_EKMP(char x[],int m,int next[]){ next[0]=m; int j=0; while(j+1<m && x[j]==x[j+1])j++; next[1]=j; int k=1; for(int i=2; i<m; i++) { int p=next[k]+k-1; int L=next[i-k]; if(i+L<p+1)next[i]=L; else { j=max(0,p-i+1); while(i+j<m && x[i+j]==x[j])j++; next[i]=j; k=i; } }}void EKMP(char x[],int m,char y[],int n,int next[],int extend[]){ pre_EKMP(x,m,next); int j=0; while(j<n && j<m && x[j]==y[j])j++; extend[0]=j; int k=0; for(int i=1; i<n; i++) { int p=extend[k]+k-1; int L=next[i-k]; if(i+L<p+1)extend[i]=L; else { j=max(0,p-i+1); while(i+j<n && j<m && y[i+j]==x[j])j++; extend[i]=j; k=i; } }}
阅读全文
1 0
- 邝斌的ACM模板(扩展 KMP)
- 邝斌的ACM模板(KMP算法)
- ACM常用模板——扩展KMP
- (扩展KMP)模板
- KMP,扩展KMP模板
- [模板]扩展KMP模板
- 邝斌的ACM模板(扩展欧几里得算法(求 ax+by=gcd 的解以及逆元素))
- 【模板】kmp以及扩展kmp
- 邝斌的ACM模板(素数)
- 邝斌的ACM模板(求逆元)
- 邝斌的ACM模板(FFT)
- 邝斌的ACM模板(RMQ )
- 邝斌的ACM模板(树链剖分)
- 扩展KMP总结(模板题hdu2594)
- 扩展kmp模板
- 扩展KMP模板
- 扩展KMP模板
- 扩展kmp 模板
- [随笔]一种方法论
- org.apache.tomcat.util.bcel.classfile.ClassFormatException: It is not a Java .class file 的解决方法
- Hdu6105 Gameia(2017多校第6场)
- Python-Numpy(4)常用函数
- Retrofit 2.3使用随文笔录
- 邝斌的ACM模板(扩展 KMP)
- Source Insight 4.0安装后首次打开报错
- listview分页加载
- Struts2--自定义拦截器
- Qt中qDebug 的使用
- IE兼容 请求参数中文乱码或请求无效 转义与转码
- 树莓派使用mjpeg-streamer监控
- 用malloc动态申请一个二维数组的三种方法
- hdu--6103--Kirinriki