uva 1328 - Period
2013-10-30 14:52
323 查看
简单KMP:
View Code
#include<cstdio> #include<cstring> #define maxn 1000009 using namespace std; char s[maxn]; int next[maxn],n; void getnext() { int j=-1,i=0; next[0]=-1; while(i<n) { if(j==-1||s[i]==s[j]) { j++,i++; next[i]=j; } else j=next[j]; } } int main() { int ca=1; while(scanf("%d",&n)&&n) { memset(next,0,sizeof next); scanf("%s",s); getnext(); printf("Test case #%d\n",ca++); for(int i=2;i<=n;i++) if(next[i]>0&&i%(i-next[i])==0) printf("%d %d\n",i,i/(i-next[i])); puts(""); } return 0; }
View Code
相关文章推荐
- 【原】Activity的LaunchMode和taskAffinity
- Asp.Net alert弹出提示信息的若干种方法
- jeffy-vim配置Vim编辑器
- hadoop,hbase,hive安装全记录(转)
- std::function 和 std::bind
- java内存查看与分析
- TQ2440在linux下的LED驱动程序
- 深入浅出MFC笔记2-MFC程序如何包装Win32程序
- Oracle 11g PL/SQL基础入门系列培训-视频分享
- 射击的乐趣:WIN32诠释打飞机游戏
- Java简单文件传输 socket简单文件传输示例
- iOS常用的开源类库
- uva 10277 - Boastin' Red Socks(概率)
- j2ee中web.xml中配置listener
- centos yum Segmentation fault 问题解决办法
- java使用方法总结
- ssss
- cocos2d-x——使用动画缓存做动画
- 关于DLL路径加载顺序的问题
- Python 插件(add-in) 基础知识