Power Strings
来源:互联网 发布:资治通鉴和史记 知乎 编辑:程序博客网 时间:2024/05/16 14:56
Problem 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.
Example Input
abcdaaaaababab.
Example Output
143
Hint
This problem has huge input, use scanf instead of cin to avoid time limit exceed.
#include<stdio.h>#include<string.h>int next[1000010];char s1[1000010],s2[1000010];void getNext(int n){ int i,k=0; next[0]=0; for(i=1;i<n;i++) { while(k>0&&s2[k]!=s2[i]) k=next[k-1]; if(s2[k]==s2[i]) k++; next[i]=k; }}int main(){ int n,m,i; while(scanf("%s",s2)!=EOF) { if(s2[0]=='.') break; memset(next,0,sizeof(next)); m=strlen(s2); getNext(m); if(m%(m-next[m-1])==0) { printf("%d\n",m/(m-next[m-1])); } else printf("-1\n"); } return 0;}
0 0
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- Power Strings
- MongoDB3.2---基本操作汇总
- Hibernate再复习(一)
- jqGrid翻页时数据选中丢失问题
- 可折叠手机Galaxy X将问世 三星手机再申请专利
- nodejs 服务器作防盗链图片中转
- Power Strings
- 开源大数据处理工具汇总(下)
- Spring JPA 使用@transaction注解时产生CGLIB代理冲突的解决方法
- 【Unity资源】实用好用的源码工具
- WPF 深入浅出 模板(DataTemplate 数据外衣、ControlTemplate 控件外衣、ItemsPanelTemplate 项布局
- Activiti 历史流程图高亮显示
- git学习日记--开始使用github
- 1071. Speech Patterns (25)
- 关于 cocoapods 的使用