(简单) POJ 1961 Period,扩展KMP。】的更多相关文章

Description For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the prefix is a periodic string. That is, for each i (2 <= i <= N) we want to know the larges…
http://poj.org/problem?id=1961 题意 :给你一个字符串,让你输出到第几个字符时,循环结的个数. 思路 :这个题和2409差不多,稍微修改一下,加一个循环就行了,用的也是KMP. #include <string.h> #include <stdio.h> #include <iostream> using namespace std ; ; char ch[maxn] ; int next[maxn] ; int main() { int…
题意:给定一个长度为n字符串s,求它每个前缀的最短循环节.也就是对于每个i(2<=i<=n),求一个最大整数k>1(如果存在),使得s的前i个字符组成的前缀是某个字符串重复得k次得到的.输出所有的的k和i. 析:首先这是一个KMP的一个题(据大神们说这是一个水题...),首先要对KMP有了解,如果没有了解的先看一下,提供一个地址学习KMP算法, http://www.cnblogs.com/dwtfukgv/articles/5532277.html 对KMP有所了解后,其实这就是一个对…
Period Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 11356   Accepted: 5279 Description For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the…
题目传送门 /* 题意:求一个串重复出现(>1)的位置 KMP:这简直和POJ_2406没啥区别 */ /************************************************ * Author :Running_Time * Created Time :2015-8-10 9:13:24 * File Name :POJ_1961.cpp ************************************************/ #include <cstd…
关于KMP的最短循环节.循环周期,请戳: http://www.cnblogs.com/chenxiwenruo/p/3546457.html (KMP模板,最小循环节) POJ 2406  Power Strings 题意:给一个字符串,问这个字符串是否能由另一个字符串重复R次得到,求R的最大值. #include <iostream> #include <stdio.h> #include <string.h> /* 题意: 给一个字符串,问这个字符串是否能由另一个…
Period Time Limit: 3000MSMemory Limit: 30000K Total Submissions: 12089Accepted: 5656 Description For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the prefi…
题目: http://poj.org/problem?id=1961 很好的题,但是不容易理解. 因为当kmp失配时,i = next[i],所以错位部分就是i - next[i],当s[0]...s[i]是一个周期串时,i-next[i]显然就是一个循环节,这时(i+1) % (i-next[i]) == 0,(因为下标是从0开始的,所以i+1表示前i个字符,也就是字符个数),判断上式是否为0就可以判断是否是周期串,如果是周期串时,(i+1) / (i-next[i]) 显然就是重复的次数.…
首先先讲一下KMP算法作用: KMP就是来求在给出的一串字符(我们把它放在str字符数组里面)中求另外一个比str数组短的字符数组(我们叫它为ptr)在str中的出现位置或者是次数 这个出现的次数是可以重叠的 例如:在数组   ababa    中  aba的出现次数-----------它的答案是2------分别是从[0---2]  [2---4] 他们是可以重叠的,但是不可以完全重叠(废话T_T) KMP算法主要有两个模板 1.https://blog.csdn.net/starstar1…
题意:给一个长度为n的字符串,如果它长度为l(2 <= l <= n)的前缀部分是由一些相同的字符串相接而成,输出前缀的长度l和长度为l时字符串重复的最大次数. 例如字符串为: aaaba.对于长度为2的前缀"aa"来说, “aa”最多由两个‘a’连接而成.对于长度为3的前缀"aaa"来说,“aaa”最多由三个'a'连接而成. 思路:该问题恰好用到了next数组的特性. 在kmp算法中,当字符串匹配失败时,next数组给出模式串接下来要匹配的位置.它的目…