POJ 2406 KMP
来源:互联网 发布:武汉美工速成班 编辑:程序博客网 时间:2024/06/02 22:39
题目大意:
给一个串,由n个连续的重复子串构成,输出n。以句号停止输入。
理解:
用KMP的next数组求解,next数组记录的是前面的串前缀和后缀相同的最大长度。n与next【len】有关。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int MAXN=1e6+5;int next[MAXN];char s[MAXN];void get_next(char* s){ int len=strlen(s); int i=0,j=-1; next[0]=-1; while(i<len){ if(j==-1||s[i]==s[j]){ i++; j++; next[i]=j; } else { j=next[j]; } }}int main(){ while(~scanf("%s",s)){ if(strcmp(s,".")==0)break; get_next(s); int len=strlen(s); if(len%(len-next[len])==0){ printf("%d\n",len/(len-next[len])); } else { printf("1\n"); } } return 0;}
0 0
- poj 2406 KMP
- POJ 2406 KMP
- 【KMP】POJ 2406
- poj 2406 KMP应用
- POJ 2406 (KMP)
- POJ 2406 kmp
- poj 2406 KMP算法
- poj 2406 kmp
- poj 2406(kmp)
- POJ 2406 KMP
- POJ 2406 依然 KMP
- poj 2406 KMP
- POJ-2406(KMP)
- POJ 2406 KMP
- POJ 2406 (KMP)
- POJ 2406 KMP
- 字符串 KMP POJ 2406
- POJ 2406(kmp)
- stm32 外部中断库函数实现全程分析。(转,原作者历时三天,呕心沥血,剖析的很细致)
- Android ActionBar应用实战,高仿微信主界面的设计
- Linux shell使用详解
- 深入探究Swift数组背后的协议、方法、拓展(转)
- Ubuntu 搭建PHP环境
- POJ 2406 KMP
- 防痴呆的:啤酒2元一瓶,四个瓶盖可换一瓶啤酒,2个空瓶也可换一瓶啤酒,10元最多可以喝多少瓶
- 选定一块区域,设置不同的透明度
- 在ubuntu 12.04上安裝Redmine
- EventBus和litepal数据库的一般使用
- 链表中有环——怎么判断
- 暴力破解软件的破解选项怎么设置
- 大数据大牛- sunddenly
- redis win2003 32位下载啊