poj1961】的更多相关文章

POJ1961 问题重述: 输入一个长度为l的字符串S,求所有S的由字串重复排列而成的前缀,并输出前缀的长度以及该前缀的最大重复度. AC代码: //Memory: 5700K Time: 641MS #include <iostream> #include <cstring> #include <string> using namespace std; ; int prefix[maxn]; string s; void init() { int l = s.size…
[POJ1961]period 题目描述 如果一个字符串S是由一个字符串T重复K次构成的,则称T是S的循环元.使K出现最大的字符串T称为S的最小循环元,此时的K称为最大循环次数. 现在给定一个长度为N的字符串S,对S的每一个前缀S[1~i],如果它的最大循环次数大于1,则输出该循环的最小循环元长度和最大循环次数. 输入 多组数据,每个数据包括两行.第一行为字符串大小N,第二行包括字符串.输入最后一行以0结尾. 输出 第一行"Test case #"+测试数据第几组,对于每个周期K>…
/** 题目:poj1961 Period 链接:http://poj.org/problem?id=1961 题意:求从1到i这个前缀(2<=i<=N) ,如果有循环节(不能自身单独一个),输出前缀字符串长度以及最大的循环周期: 思路: 参考自:http://www.cnblogs.com/chenxiwenruo/p/3546457.html 定理:假设S的长度为len,则S存在最小循环节,循环节的长度L为len-next[len],子串为S[0…len-next[len]-1]. (1)…
翻阅了一下网上资料,发现大部分都说这题是找规律...或是说YY出的一个算法..不会证明... 然后就脑补了一下证明 ~ 结论:对于一个字符串S[1..N],如果N mod (N-next[N])=0 则存在循环并且长度为N-next[N]的循环. 脑补的证明:       首先必要性很显然,如果N mod (N-next[N])<>0显然不存在循环.                    如图红色区域为N-next[N]长度的字符串.根据KMP造出的next数据的性质,S[1..next[n]…
[题解]PERIOD - Period [POJ1961] [SP263] 在进入这道题之前,我们需要了解 kmp 算法 不知道的童鞋可以去看一下Silent_EAG(一个可爱的女孩纸)的讲解. 关于 kmp 算法中 next 数组的周期性质 引理: 对于某一字符串 \(S[1\)-\(i ]\),在它众多的\(next[ i ]\)的"候选项"中,如果存在某一个\(next[ i ]\),使得: \(i\) % \(( i - next[ i ] ) == 0\) ,那么 \(S[…
题目链接:https://vjudge.net/problem/POJ-1961 题意:给定一个长为n的字符串(n<=1e6),对于下标i(2<=i<=n),如果子串s(1...i)是周期子串,输出其最大周期. 思路: 考察对kmp算法中next数组的定义掌握,如果(i+1)%(i-j)==0 && (i+1)/(i-j) > 1,那么该子串即为满足条件. AC代码: #include<cstdio> #include<algorithm>…
两道题都是求循环节的...但是一道是学哈希时做的,另一道是学$KMP$时做的 POJ2604 用的哈希...枚举长度的因数作为循环节的长度,然后暴力算出所有循环节位置的哈希值,看看是否相等. #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<cctype> #include<cstd…
poj1961主要是考察对next数组的理解,abaabaabaaba abaabaabaabaabaaba错开的部分便是循环节 7月29日更 如果n%(n-kmp[k])==0,那么n-kmp[k]便是循环节的长度,我来解释一下为什么 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> #include<ctime&…
UVA1328 Period 其他链接:luogu UVA1328 POJ1961 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 \le i…
Period Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 16776   Accepted: 8077 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…