
Kmp
Exception2017
OI总结
展开
-
poj2406 kmp
原题:http://poj.org/problem?id=2406 题解:找最长循环节,定义:nxt[i] 为 1-i的最长相同前后缀长度,循环节长度为n-nxt[n] //#include<bits/stdc++.h> #include<cstdio> #include<cstring> #define reg register using namesp...原创 2019-02-02 21:20:28 · 169 阅读 · 0 评论 -
poj3461 kmp
原题:http://poj.org/problem?id=3461 题解:kmp模板。。。 #include<cstdio> #include<cstring> #define reg register using namespace std; const int N=1e4+10; const int M=1e6+10; char s[M],t[N]; int n...原创 2019-02-02 21:26:03 · 226 阅读 · 0 评论 -
CF432D Prefixes and Suffixes kmp+dp
原题:http://codeforces.com/contest/432/problem/D 题解:求所有前后缀相同的子串的个数。kmp中的nxt数组就是前后缀相等的最大长度,只要将j=nxt[nxt[i]]做到刚好大于0就行了。考虑dp有:f[i]表示1-i的字符串出现的个数,f[nxt[i]]+=f[i],所有应该从后往前扫描统计答案。 #include<cstdio> #i...原创 2019-02-14 21:12:13 · 259 阅读 · 0 评论 -
bzoj1355 kmp最短循环节
原题:https://www.lydsy.com/JudgeOnline/problem.php?id=1355 题解:找出字符串中的最短循环节。显然是 n-nxt[n] #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N=1e6+1...原创 2019-02-07 16:09:56 · 184 阅读 · 0 评论 -
bzoj1511 kmp+dp
原题:https://www.lydsy.com/JudgeOnline/problem.php?id=1511 题解:求最长周期的和。通过分析很容易得出,最长周期应该是长度-最短前后缀相等的长度。我们知道 nxt为最长前缀,而要求最短前缀可以用dp来解决。 最长前缀为 i-f(i) #include<cstdio> #include<cstring> #inc...原创 2019-02-07 20:58:09 · 192 阅读 · 0 评论 -
bzoj3620 kmp
原题:https://www.lydsy.com/JudgeOnline/problem.php?id=3620 题解:求S的所有子串满足 A+B+A的方案数。枚举左端点,跑kmp。注(位置不同其他性质相同的子串算不同子串,位置相同但拆分不同的子串算同一子串)所有对于每个i只要有满足的就可以了。 #include<cstdio> #include<cstring> #...原创 2019-02-07 21:53:04 · 200 阅读 · 0 评论