传送门

题目分析

本题主要考察kmp中next数组在求循环时的运用:

  • 字符串是循环的: len % (len - next[len]) == 0

  • 字符串循环次数: len / (len - next[len])

  • 字符串循环节长度: len - next[len]

code

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<ctime>
using namespace std;
const int N = 1000100;
char s[N];
int next[N], lS, ans;
inline void getNext(){
for(int i = 2, j = 0; i <= lS; i++){
while(j && s[i] != s[j + 1]) j = next[j];
if(s[i] == s[j + 1]) j++;
next[i] = j;
}
}
int main(){
while(~scanf("%s", s + 1), s[1] != '.'){
memset(next, 0, sizeof next);
lS = strlen(s + 1);
getNext();
if(lS % (lS - next[lS]) == 0)
ans = lS / (lS - next[lS]);
else ans = 1;
cout<<ans<<endl;
}
return 0;
}

最新文章

  1. apache httpd服务器403 forbidden的问题
  2. Scala中的None,Nothing,Null,Nil
  3. 针对Excel的vbs操作
  4. Mysql 删除语句
  5. Android应用在不同版本间兼容性处理
  6. 1.shell之搭建Shell编程环境
  7. leetcode[88] Gray Code
  8. IntelliJ IDEA新建JAVA WEB项目(转载)
  9. @NotNull vs @Column(nullable = false)
  10. iOS 文本转语音(TTS)详解:Swift
  11. python css概述
  12. 分享一个完整的Mybatis分页解决方案
  13. C语言程序设计第五次作业——循环结构1
  14. OVS 中的哈希表: shash
  15. java 基本数据类型的取值
  16. 全文检索的Demo
  17. Qthread的使用方法
  18. Py中map与np.rival学习
  19. var_dump()函数输出不完整,有省略号?解决办法
  20. Linux学习笔记-文件系统和基本命令

热门文章

  1. JQuery EasyUI Combobox 实现省市二级联动菜单
  2. numpy,scipy,pandas 和 matplotlib
  3. Altium Designer中距离的测量
  4. HTML(超文本标记语言)的内容和理解
  5. Loadrunner--关联详解
  6. LVS负载均衡+动静分离+高可用(nginx+tomcat+keepalived)
  7. Eclipse查看某个方法被哪些类调用
  8. css3-11 如何设置文字的阴影
  9. js进阶课程ajax简介(ajax是浏览器来实现的)
  10. mariadb远程不能访问,出现Can&#39;t connect to MySQL server on &#39;&#39; (10061)