POJ
来源:互联网 发布:unity3d 四元数旋转 编辑:程序博客网 时间:2024/06/18 16:37
Power Strings
Time Limit: 3000MS Memory Limit: 65536KTotal Submissions: 51263 Accepted: 21405
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
Hint
This problem has huge input, use scanf instead of cin to avoid time limit exceed.
问 把所给字符串写成 s^n 的模式 ,n最大是多少
#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;const int len=1e6+8;char a[len];int kmp_next[len];void KMP_next(){ int i=0,j=-1; kmp_next[0]=-1; while(a[i]) if(j==-1||a[i]==a[j]) kmp_next[++i]=++j; else j=kmp_next[j];}int main(){ while(scanf("%s",a)&&a[0]!='.') { KMP_next(); int n=strlen(a); if(n%(n-kmp_next[n])) printf("1\n"); else printf("%d\n",n/(n-kmp_next[n])); } return 0;}
阅读全文
0 0
- POJ
- poj
- POJ
- POJ
- poj
- poj
- POJ
- POJ
- poj
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- 数据结构:栈、队列、链表、树
- 基于ext4文件系统实现在用户程序空间修改kernel命令行参数
- TensorFlow框架(4)之CNN卷积神经网络详解
- Java程序员你还在为涨薪发愁吗?学会这些,我让你薪资翻倍。
- USACO 4.2 Drainage Ditches
- POJ
- 数据报服务与流式服务的区别
- 项目——通过自动回复机器人学Mybatis(五)
- scikit-learn使用总结
- C#-WinForm-简单的音频播放器(基于WindowsMediaPlayer控件)(二)
- 【sort-list】
- ubuntu 报错: The system is running in low-graphics mode
- 背包问题 3 多重背包 解题报告
- 初识JWT(java web token)