Pku2752 Seek the Name, Seek the Fame(dp)
2013-11-06 19:05
435 查看
[b]如有错误,请留言提醒,不要坑到小朋友
[/b]
Description
给定一个字符串,要求找到同时是它前缀也是后缀的字符串的个数,并且输出他们的长度。
Input
输入一个字符串,长度<= 10^6.
Output
输出这些子串的结束位置(因为它们的开始位置都是从1开始的)
Sample Input
Sample Output
[/b]
Description
给定一个字符串,要求找到同时是它前缀也是后缀的字符串的个数,并且输出他们的长度。
Input
输入一个字符串,长度<= 10^6.
Output
输出这些子串的结束位置(因为它们的开始位置都是从1开始的)
Sample Input
【样例输入1】 ababcababababcabab 【样例输入2】 aaaaa
Sample Output
【样例输出1】 2 4 9 18 【样例输出2】 1 2 3 4 5
kmp裸题,不多说了
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> int n,pre[1000000],answer[1000000]; char ss[1000000]; int main() { scanf("%d",&n); scanf("%s",ss); int i,j=0; pre[1]=0; for(i=2;i<=n;i++){ while(j>0&&ss[j]!=ss[i-1]) j=pre[j]; if(ss[j]==ss[i-1])j++; pre[i]=j; } j=n; int w=0; while(j>0){ w++; answer[w]=j; j=pre[j]; } for(i=w;i>1;i--) printf("%d ",answer[i]); printf("%d\n",answer[1]); }
相关文章推荐
- pku2752 Seek the Name, Seek the Fame
- pku2752 Seek the Name, Seek the Fame
- pku 2752 Seek the Name, Seek the Fame(KMP)
- poj 2752 Seek the Name, Seek the Fame(KMP应用)
- POJ-2752 Seek the Name, Seek the Fame(kmp中next数组的应用)
- POJ 2752 Seek the Name, Seek the Fame
- 【KMP】 poj2752 Seek the Name, Seek the Fame
- poj 2752 Seek the Name, Seek the Fame,KMP
- POJ 2752 Seek the Name, Seek the Fame(KMP)
- POJ 2752 Seek the Name, Seek the Fame kmp(后缀与前缀)
- POJ2752 Seek the Name, Seek the Fame
- POJ 2752 Seek the Name, Seek the Fame
- POj - 2752 Seek the Name, Seek the Fame 【next数组的理解】
- poj 2752 Seek the Name, Seek the Fame
- poj 2752 Seek the Name, Seek the Fame(KMP应用)
- poj2752 Seek the Name, Seek the Fame (kmp字符串比较)
- POJ 2752 Seek the Name,Seek the Fame(KMP应用)
- poj 2752 Seek the Name, Seek the Fame
- poj 2752 seek the name,seek the fame【KMP】
- poj 2752 Seek the Name, Seek the Fame