【poj2406】next数组求循环节
2024-08-31 08:16:10
题目分析
本题主要考察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;
}
最新文章
- apache httpd服务器403 forbidden的问题
- Scala中的None,Nothing,Null,Nil
- 针对Excel的vbs操作
- Mysql 删除语句
- Android应用在不同版本间兼容性处理
- 1.shell之搭建Shell编程环境
- leetcode[88] Gray Code
- IntelliJ IDEA新建JAVA WEB项目(转载)
- @NotNull vs @Column(nullable = false)
- iOS 文本转语音(TTS)详解:Swift
- python css概述
- 分享一个完整的Mybatis分页解决方案
- C语言程序设计第五次作业——循环结构1
- OVS 中的哈希表: shash
- java 基本数据类型的取值
- 全文检索的Demo
- Qthread的使用方法
- Py中map与np.rival学习
- var_dump()函数输出不完整,有省略号?解决办法
- Linux学习笔记-文件系统和基本命令
热门文章
- JQuery EasyUI Combobox 实现省市二级联动菜单
- numpy,scipy,pandas 和 matplotlib
- Altium Designer中距离的测量
- HTML(超文本标记语言)的内容和理解
- Loadrunner--关联详解
- LVS负载均衡+动静分离+高可用(nginx+tomcat+keepalived)
- Eclipse查看某个方法被哪些类调用
- css3-11 如何设置文字的阴影
- js进阶课程ajax简介(ajax是浏览器来实现的)
- mariadb远程不能访问,出现Can&#39;t connect to MySQL server on &#39;&#39; (10061)