POJ 2406(KMP next数组性质)
来源:互联网 发布:ds18b20单片机程序 编辑:程序博客网 时间:2024/06/05 09:11
题意:给你一个字符串,问最多可以分成最短构成子串,
题解:这里直接使用fail指针的性质,n-fail[n]就是最短的子串长度,这一题有毒,害我错了很多次,实际上也是考虑的不周全,如果n%(n-fail[n])!=0,那么就无法构成这样的子串比如ABABA就无法构成这样的串,所以还要判断一下能否整除。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define N 2000000char s[N];int fail[N];int ans;void getfail(char *p,int *f){int m=strlen(p);f[0]=0;f[1]=0;for(int i=1;i<m;i++){int j=f[i]; while(j&&p[i]!=p[j])j=f[j]; f[i+1]=p[i]==p[j]?j+1:0;}}int main(){#ifdef CDZSCfreopen("i.txt","r",stdin);#endifwhile(~scanf("%s",s)){if(s[0]=='.')break;getfail(s,fail);int len=strlen(s); ans=len%(len-fail[len])==0?len/(len-fail[len]):1;printf("%d\n",ans);}return 0;}
0 0
- POJ 2406(KMP next数组性质)
- POJ 2406(KMP中next的性质)
- HDU 1358(KMP:next数组性质)
- hdu1358(KMP,next数组性质)
- poj 2406 KMP算法中next的一个性质
- KMP的next数组性质运用
- POJ 2406 Power Strings (KMP next数组应用)
- poj 2406 Power Strings(kmp next数组的应用)
- poj-2406 kmp中的next数组应用
- poj 2406 kmp next数组应用
- POJ 2406 KMP next数组的应用
- poj 2406 Power Strings kmp next数组
- POJ 2406 KMP算法next数组理解
- POJ 2406 Power Strings (kmp next数组)
- poj 2752 kmp(next数组模板)
- [KMP-NEXT数组性质]POJ 2752 Seek the Name, Seek the Fame
- POJ 2752+KMP+利用next数组性质求出所有相同的前缀和后缀
- HDU 3336 Count the string(kmp next数组的性质)
- 日期格式转换问题MappingException: Could not determine type for: java.sql.String
- Java synchronized
- 基于ssdb和mongodb的feed服务架构
- Mysql“集群”和”主从“两者的区别
- UIBezierPath个人学习总结
- POJ 2406(KMP next数组性质)
- CodeForces NO.556A Case of the Zeros and Ones(stack,110101010)
- 拥抱高效、拥抱 Bugtags 之来自用户的声音(四)
- FFmpeg 3.0 版发布
- 循环后缀(Cyclic suffix)
- oracle数据库学习(三)
- 初学注解笔记
- Android 捕获全局异常信息并进行相关处理
- Android运营商名称显示之SPN的读取(原)