博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Manacher模板,kmp,扩展kmp,最小表示法模板
阅读量:5927 次
发布时间:2019-06-19

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

// Manacher算法,很好用。 char s[2*N]; //储存临时串int save[2*N];//中间记录int Manacher(char tmp[]){    int len=strlen(tmp);    int cnt=0;    for(int i=0;i
=p) { int num=1; while(i+num
=0&&s[i+num]==s[i-num]) { num++; } p=i+num-1; //能到达的最远位置 a=i; save[i]=num-1; //从这个位置出发最长的回文 if(save[i]==0) continue; if(s[i]=='#') { if(2*((save[i]-1)/2 +1)>mx) mx=2*((save[i]-1)/2+1); } else { if(2*(save[i]/2)+1>mx) mx=2*(save[i]/2)+1; } } else { int j=2*a-i; if( i+save[j] < p) { save[i]=save[j]; if(save[i]==0) continue; if(s[i]=='#') { if(2*((save[i]-1)/2 +1)>mx) mx=2*((save[i]-1)/2+1); } else { if(2*(save[i]/2)+1>mx) mx=2*(save[i]/2)+1; } } else { int k=2*i-p; while(p+1
=0&&s[p+1]==s[k-1]) { p++; k--; } a=i; save[i]=p-i; if(save[i]==0) continue; if(s[i]=='#') { if(2*((save[i]-1)/2 +1)>mx) mx=2*((save[i]-1)/2+1); } else { if(2*(save[i]/2)+1>mx) mx=2*(save[i]/2)+1; } } } } return mx;}

 

kmp,扩展kmp

// 感觉kmp可以理解。 #define N 100010int s[N];int next[N];int t[N];int main(){    //freopen("//home//chen//Desktop//ACM//in.text","r",stdin);    //freopen("//home//chen//Desktop//ACM//out.text","w",stdout);    int T;    scanf("%d",&T);    while(T--)    {        int n,m;        scanf("%d%d",&n,&m);        for(int i=0;i

 

最小表示法

int mistr(char s[],int len)  //输入一串字符,返回最小表示法的起始位置{    int i=0,j=1,k=0;    while(i
s[j+k]) i=i+k+1; if(s[i+k] < s[j+k]) j=j+k+1; k=0; if(i==j) j++; } } return min(i,j);}

 

转载地址:http://qphvx.baihongyu.com/

你可能感兴趣的文章
NOD32升级账号更新器 [ C# | NOD32 | Eset ]
查看>>
1、查询速度慢的原因很多,常见如下几种:
查看>>
Window memcache 使用
查看>>
[PAL规范]SAP HANA PAL 数据处理装箱算法Binning编程规范BINNING
查看>>
Oracle Data Redaction数据加密
查看>>
强制远程连接 命令
查看>>
linux c多线程编程案例
查看>>
JAVA设计模式之【策略模式】
查看>>
[ZigBee] 15、Zigbee协议栈应用(一)——Zigbee协议栈介绍及简单例子(长文,OSAL及Zigbee入门知识)...
查看>>
Webkit是如何加载网页的
查看>>
jQuery源码分析系列(39) : 动画队列
查看>>
【译】在ASP.NET中创建PDF-iTextSharp起步
查看>>
35.6. ssh 证书植入
查看>>
XAMPP下的composer的安装
查看>>
[LeetCode] Search in Rotated Sorted Array II 在旋转有序数组中搜索之二
查看>>
Oracle 11G DataGuard重启详细过程
查看>>
AE中图层刷新
查看>>
Fluentd安装——通过rpm方式
查看>>
[LeetCode] Implement Magic Dictionary 实现神奇字典
查看>>
python Image PNG getpixel R/G/B/A
查看>>