POJ 2406 kmp + 循环节
来源:互联网 发布:s7300模拟量编程 编辑:程序博客网 时间:2024/06/06 17:30
kmp + 循环节
题意:
给出一个字符串求出它是由几个循环节组成的。
思路:
若一个字符串有循环节,那么整个字符串前缀与后缀相同的最长长度就是循环节的个数-1,并且总的字符串长度可以除尽循环节长度。根据这两条性质利用Next取判断即可。
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn = 1e6 + 10;char mo[maxn];int Next[maxn];void getNext(){ int i = 0,j = -1,l1 = strlen(mo); Next[0] = -1; while(i < l1) { if(j == -1 || mo[i] == mo[j]) Next[++i] = ++j; else j = Next[j]; }}int main(){ //freopen("in.txt","r",stdin); while(scanf("%s",mo) != EOF) { if(strcmp(mo,".") == 0) break; getNext(); int len = strlen(mo); if(len%(len-Next[len]) == 0) printf("%d\n",len/(len-Next[len])); else printf("1\n"); }}
阅读全文
0 0
- POJ 2406 kmp + 循环节
- POJ 2406 kmp + 循环节
- POJ 2406 KMP求字符串循环节
- POJ 2406 最小循环节 KMP裸题
- POJ - 2406 Power Strings (KMP循环节)
- POJ - 2406 Power Strings(KMP 循环节)
- POJ-2406-kmp求最小循环节
- POJ 2406 kmp求循环节个数
- poj 2406 KMP求循环节
- POJ 2406 Power Strings [KMP+循环节]
- POJ 2406 Power Strings(KMP循环节)
- POJ 2406 kmp求解循环节
- poj 2406 Power Strings【kmp循环节】
- poj 2406 最小循环节kmp
- POJ 2406 Power Strings (KMP) kmp循环节
- poj 2406 Power Strings (KMP+最小循环节)
- POJ 2406 Power Strings KMP 求最小循环节
- POJ 2406 Power Strings(KMP:找串循环节)
- GalaxyOJ-788 (二分+容斥)
- KAFKA介绍(分布式架构)
- 大话数据结构 第六章 树(读书笔记)
- 《Python 源码剖析》之对象
- netty的option
- POJ 2406 kmp + 循环节
- 工作10年后转行
- 大话数据结构 第五章 串 (读书笔记)
- POJ 2406 kmp + 循环节
- 使用python通过聚币API获取价格数据
- python实现给定一个列表计数指定数字出现的所有次数
- Unity用kinect的手势触发UI区域进行选择操作
- java使用AES加密解密 AES-128-ECB加密
- 网页H5获取当前坐标,完整demo