poj2406
来源:互联网 发布:大型企业网络优化方案 编辑:程序博客网 时间:2024/04/29 05:54
Power Strings
Time Limit: 3000MS Memory Limit: 65536KTotal Submissions: 20899 Accepted: 8757
Description
Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc" and b = "def" then a*b = "abcdef". If we think of concatenation as multiplication, exponentiation by a non-negative integer is defined in the normal way: a^0 = "" (the empty string) and a^(n+1) = a*(a^n).
Input
Each test case is a line of input representing s, a string of printable characters. The length of s will be at least 1 and will not exceed 1 million characters. A line containing a period follows the last test case.
Output
For each s you should print the largest n such that s = a^n for some string a.
Sample Input
abcdaaaaababab.
Sample Output
143
#include<iostream>#include<string.h>#include<stdio.h>#include<string.h>using namespace std;int f[1000000+1];char s[1000000+1];void fail(int n){ f[0]=-1; for(int i=1;i<n;i++) { int j=f[i-1]; while(j>=0&&s[i]!=s[j+1])j=f[j]; if(s[i]==s[j+1])f[i]=j+1; else f[i]=-1; }}int main(){ while(cin>>s,s[0]!='.') { int length=strlen(s); fail(length); int m=length; int n=m-1-f[m-1]; if(m%n==0)cout<<m/n<<endl; else cout<<1<<endl; } return 0;}
- poj2406
- poj2406
- poj2406
- poj2406
- poj2406
- poj2406
- poj2406
- poj2406
- poj2406
- POJ2406
- poj2406
- POJ2406
- poj2406
- poj2406(KMP)
- poj2406 KMP
- Poj2406【KMP】
- POJ2406 Power Strings
- poj2406解题报告
- 装饰器模式和代理模式的区别
- Oracle最高效的删除重复记录方法
- C++中的.hpp文件与.h文件
- Java学习—IO—File(二)
- J2se学习总结
- poj2406
- 敏捷开发的一些东西
- Vc 读取Excel表CSpreadSheet类详细解答
- SQL提权语句整理
- Android自适应draw9patch背景
- Codeforces Problem 161E - Polycarpus the Safecracker
- 少林禅医:姜是无上养生物,谨慎使用大智慧
- 线性表的顺序实现(c语言)
- 深入理解JVM