算出next数组.

对于任何一个循环字串,len-next[len]必为最小循环节长度

若len%(len-next[len])==0

即为循环字串,n=len/(len-next[len])

否则输出1

代码:

#include<cstdio>
#include<cstring>
using namespace std;
const int N=1e6+;
char str[N];
int next[N],ans,len;
void make()
{
int i=,j=-;
next[i]=j;
while(i<len)
{
if(j==-||str[i]==str[j])
{
i++;
j++;
next[i]=j;
}
else
j=next[j];
}
}
int main()
{
while(~scanf("%s",str))
{
if(str[]=='.') break;
len=strlen(str);
make();
int k=next[len];
if(!(len%(len-k)))
printf("%d\n",len/(len-k));
else
printf("1\n");
}
return ;
}

最新文章

  1. python异常和错误(syntax errors 和 exceptions)
  2. Leetcode 110 Balanced Binary Tree 二叉树
  3. [开发笔记]-DataGridView控件中自定义控件的使用
  4. Oracle 12C RAC的optimizer_adaptive_features造成数据插入超时
  5. ASP.NET Eval四种绑定方式
  6. Spring配置文件web.xml关于拦截
  7. C#算法基础之希尔排序
  8. Spring的工作原理核心组件和应用
  9. hdu_4787_GRE Words Revenge(在线AC自动机)
  10. linux文件相关的命令
  11. 【笔记】HybridApp中使用Promise化的JS-Bridge
  12. selenium修改cookie
  13. ABP中mapping中忽略属性
  14. Java基础:整型数组(int[]、Integer[])排序
  15. hive中 regexp_replace的用法,替换特殊字符问题
  16. jQuery实现评论弹幕、弹幕漂浮、滚动代码
  17. redis学习(五) redis过期时间
  18. HDU 4731 Minimum palindrome (2013成都网络赛,找规律构造)
  19. JAVA并发:深入分析volatile
  20. Unity3d OnApplicationPause与OnApplicationFocus

热门文章

  1. Luogu P2624 [HNOI2008]明明的烦恼 Prufer+组合+高精
  2. Unittest组织用例的姿势
  3. (转)深入浅出linux系统umask值及其对应的文件权限讲解
  4. JAVA多线程之线程池的使用
  5. 《从0到1学习Flink》—— Flink 写入数据到 Kafka
  6. JAVA 集合类小结
  7. window.open 打开Excel或者Word 无权限问题
  8. 在sublime text3下,用快捷键把文件打开到浏览器中
  9. Vue小贴士
  10. 关于Arduino项目的构建思想-转自openbook开源杂志