POJ Power Strings
来源:互联网 发布:国产手机推荐 知乎 编辑:程序博客网 时间:2024/04/29 08:29
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.
题目大意
给你任意个长度<=1000000的字符串,求每个字符串有多少个循环节。输入以输入一个“.”结束。
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
Hint
This problem has huge input, use scanf instead of cin to avoid time limit exceed.
题解
用kmp求next数组,通过该数组可以看出该字符串中的循环节。若字符串长度l不能整除循环节长度m,则输出1,否则输出l/m。
#include<cstdio>#include<iostream>#include<cstring>#include<cstdlib>#include<cmath>using namespace std;char a[1000005];int next[1000005],l;void prep(){next[1]=0; int j=0;for(int i=2;i<=l;i++) {while(j>0&&a[i]!=a[j+1]) j=next[j]; if(a[i]==a[j+1]) j++; next[i]=j; }}int main(){while(scanf("%s",a+1)!=EOF) {if(a[1]=='.') break; l=strlen(a+1); prep(); if(l%(l-next[l])==0) printf("%d\n",l/(l-next[l])); else printf("1\n"); }return 0;}
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
- Power Strings POJ DC3
- poj 2406 Power Strings
- POJ 2406 Power Strings
- POJ 2406 Power Strings
- POJ 2406 Power Strings
- poj 2406 Power Strings
- 斯坦福IOS开发第五课(第一部分)
- 如何让textField输入框 限制输入字数的同时,还只让输入数字和字母
- 再看C++中的赋值操作符重载和拷贝构造函数
- hibernate文件配置
- c++中的namespace cv
- POJ Power Strings
- copy_from_user
- tableView的一些方法
- JavaScript中按照字母排序列表的两种方法
- 普林斯顿公开课 算法1-1:算法分析
- 关于HAProxy的listen与等价的backend
- Android智能指针分析(sp、wp)
- 快速幂取模
- IOS中GET和POST请求方式的差异