poj1961 kmp 重复串
来源:互联网 发布:文笔好的网络作家 编辑:程序博客网 时间:2024/05/19 20:43
题目:一个字符串,对它的所有前缀S1,判断S1是否是由若干S1的子串重复组合而成的,若是,则输出S1长度,重复次数
思路:同此题,http://blog.csdn.net/my_gemini_acm/article/details/8247729。注意这里子串重复数必须大于1。
#include<iostream>#include<string>using namespace std;const int maxn=1000001;int fail[maxn];void kmp(string a){int j=-1;memset(fail,-1,sizeof(fail));for(int i=1;i<a.length();i++){ while(j>-1 && a[j+1]!=a[i]) j=fail[j];if(a[j+1]==a[i]) j++;fail[i]=j;}}int main(){int N,P=0;while(cin>>N && N!=0){string a; cin>>a;P++;cout<<"Test case #"<<P<<endl;kmp(a);for(int i=1;i<a.length();i++){ int sub=i-fail[i];if((i+1)%sub==0 && (i+1)/sub>1) cout<<i+1<<' '<<(i+1)/sub<<endl;}cout<<endl;}return 0;}
- poj1961 kmp 重复串
- poj1961---KMP
- POJ1961->KMP
- POJ1961 子串重复出现最大次数
- 【KMP】 poj1961 Period
- poj1961 Period----KMP
- LA3026||poj1961(KMP)
- poj1961之KMP应用
- poj1961 Period (KMP)
- poj1961 KMP
- KMP POJ1961 Period
- [POJ1961]Period(KMP)
- poj1961 Period(KMP)
- kmp练习poj1961
- POJ1961 Period(KMP)
- kmp算法 和例题 poj1961
- poj1961 KMP求循环节
- POJ1961(KMP-Next数组)
- struts 1 配置文件详解(学的struts2,上班之后发现有的项目用的却是struts1)
- SQL 基本语句学习(下)
- android调用Webservice——天气情况查询
- linux如何安装yum
- javascript 操作cookie
- poj1961 kmp 重复串
- C风格库文件笔记
- C++内存管理
- ibatis解决sql注入问题 .
- zoj2511-Design T-Shirt(第二优先级比较)
- 儒释道兼修经典——菜根谭全文及讲解以及弟子规
- k均值聚类(K-means)
- android 对话框的创建
- 堆与堆排序