POJ2752
来源:互联网 发布:知错老师 闫春生 编辑:程序博客网 时间:2024/06/04 18:07
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define maxn 400000
int next[maxn + 2];
char p[maxn + 2];
int num[maxn];
void kmp(char p[])
{
int m = strlen(p + 1);
next[1] = 0;
for( int k = 0, q = 2;q<=m ;q++)
{
while( k >0 && p[k+1] != p[q])
k = next[k];
if(p[k+1] == p[q])
k++;
next[q] = k;
}
}
int main()
{
while( scanf("%s",p+1)!=EOF)
{
kmp(p);
int len = strlen(p+1);
int n = 0;
num[n++] = len;
while( next[len] != 0)
{
num[n++] = next[len];
len = next[len];
}
sort(num,num+n);
for( int i = 0; i<n; i++)
{
printf("%d",num[i]);
printf("%c",i == n - 1 ?'\n': ' ');
}
}
}
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define maxn 400000
int next[maxn + 2];
char p[maxn + 2];
int num[maxn];
void kmp(char p[])
{
int m = strlen(p + 1);
next[1] = 0;
for( int k = 0, q = 2;q<=m ;q++)
{
while( k >0 && p[k+1] != p[q])
k = next[k];
if(p[k+1] == p[q])
k++;
next[q] = k;
}
}
int main()
{
while( scanf("%s",p+1)!=EOF)
{
kmp(p);
int len = strlen(p+1);
int n = 0;
num[n++] = len;
while( next[len] != 0)
{
num[n++] = next[len];
len = next[len];
}
sort(num,num+n);
for( int i = 0; i<n; i++)
{
printf("%d",num[i]);
printf("%c",i == n - 1 ?'\n': ' ');
}
}
}
0 0
- poj2752
- poj2752
- POJ2752
- poj2752
- POJ2752
- poj2752
- poj2752
- poj2752 kmp
- poj2752---KMP
- poj2752(KMP)
- poj2752 KMP
- POJ2752(KMP)
- poj2752 Milking Grid--------KMP
- poj2752 kmp 进一步运用
- 模式匹配KMP POJ2752
- POJ2752 C代码
- KMP 专场 POJ2752
- poj2752 kmp 模板题
- 物联网物联网技术生产的社交网络的经济崛起并提供技术支持
- error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR...
- Oracle 执行计划(Explain Plan) 说明
- 状态压缩dp POJ 1038 Bugs Integrated, Inc.
- 编译系统对跨平台代码的支持
- POJ2752
- mac版本cornerstone的无限期破解方法
- warning C4996:warning C4244;warning C4996
- POJ1742可行性背包
- js正则表达式的一些研究,截取两个字符串中间的字符串
- 十大抢手的网站压力测试工具
- HibernateSynchronizer的安装与使用
- 关于jdk的配置环境
- Android4.4-r1源码下载方法