POJ - 2406 Power Strings
来源:互联网 发布:html中调用js函数 编辑:程序博客网 时间:2024/06/11 00:12
Power Strings
Time Limit: 3000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u
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考察kmp中nex数组的性质1,nex[a]=b代表a之前的一段字符和b之前的一段字符相等。2,如果nex[len-1]=l-2;说明字符串是个形如aaaaa,bbbbb的串3,如果有循环节,那么nex[len-1]=b时,循环节k为len-1-nex[len-1];若len%k=0,说明循环,否则不循环#include<iostream>#include<string.h>#include<stdio.h>using namespace std;int nex[1009904];char s[1000904];int l;int a,b,c,d,n,m;void getnex(){ int j=-1; for (int i=0;i<l;i++) { while(j!=-1 && s[i]!=s[j+1]) j=nex[j]; if (s[i]==s[j+1] && i!=0) j++; nex[i]=j; }}int main(){ while(1) { nex[0]=-1; scanf("%s",&s); if (s[0]=='.') return 0; l=strlen(s); getnex(); int a; a=nex[l-1]; a=l-a-1; if (l%a==0) cout<<l/a<<endl; else cout<<1<<endl; }}
0 0
- poj 2406 "Power Strings"
- poj 2406 Power Strings
- POJ-2406 Power Strings
- POJ 2406 Power Strings
- poj 2406 Power Strings
- POJ:2406 Power Strings
- poj 2406 Power Strings
- poj 2406 Power Strings
- poj 2406 Power Strings
- POJ 2406 Power Strings
- POJ 2406 - Power Strings
- poj 2406 Power Strings
- poj 2406 Power Strings
- POJ 2406 Power Strings
- POJ 2406 Power Strings
- POJ 2406 Power Strings
- poj 2406 Power Strings
- POJ 2406 Power Strings
- poj 1664 放苹果(递推)
- PV操作--题目解析 (赞)
- R语言学习:数据结构8-日期和时间
- 多态学习续 抽象类和接口
- Centos&安装的时候提示无可用的网络设备
- POJ - 2406 Power Strings
- 使用XML资源文件来自定义颜色并使用
- Kafka深度解析
- 【理解】MKNetworkKit框架简介
- MOOC Machine Learning 作业交流帖8
- C++开发人脸性别识别教程(19)——界面美化
- poj1008——日期转化题
- 每日三只DP
- 关于api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案