poj-1961-Period
来源:互联网 发布:淘宝上买iphone店铺 编辑:程序博客网 时间:2024/04/30 06:08
本题大意:求一个字符串的当前长度为len的字串的最大重复字串数。输出当前位置和数量!
地址:http://poj.org/problem?id=1961
这个题要用到KMP算法中的next[]数组!
代码如下:
#include<stdio.h>#include<string.h>#include<iostream>using namespace std;const int maxn=5201314;char ss[maxn];int next[maxn];void getnext(int len){//next[i]可以描述为"不为自身的最大首尾重复子串长度"! next[0]=-1; int i=0,j=-1; while(i<len) { if(j==-1||ss[i]==ss[j]) next[++i]=++j; else j=next[j]; }}int main(){ int len,ji=1; while(cin>>len) { if(len==0) break; cin>>ss; getnext(len); //for(int i=1;i<=len;i++) //cout<<next[i]<<" "; //cout<<endl; printf("Test case #%d\n",ji++); for(int i=2;i<=len;i++) { int length=i-next[i]; if(i%length==0&&i!=length) cout<<i<<" "<<i/length<<endl; } cout<<endl; } return 0;}
0 0
- POJ 1961 Period
- poj 1961 Period
- POJ 1961 Period
- poj 1961 Period
- poj 1961:Period (KMP)
- POJ-1961 Period
- poj 1961 Period
- POJ 1961 - Period
- poj 1961 Period
- poj 1961Period
- poj 1961 Period (KMP)
- POJ-1961-Period
- POJ 1961 Period
- poj 1961 Period
- poj 1961 Period
- poj 1961 Period---kmp
- POJ 1961 Period
- poj-Period-1961
- A. DZY Loves Hash
- Windows中.exe程序的启动过程和C/C++运行时库
- poj 1523 tarjan求割点
- 由《小道消息 • 思维偏误》说开来。
- MATLAB 与 PostgreSQL 数据库的连接
- poj-1961-Period
- 一个microsoft的.exe程序文件的启动过程 .
- UVALive 6469 Deranged Exams 组合数学+容斥原理
- 思考,领悟,前进
- 【阅读】《Head First Servlets & JSP》第九章——强大的定制标记
- 小甲鱼老师目前所有视频教程下载地址
- android各种声音类型级数设定及默认值
- __USE_GNU的问题
- tomcat的搭建