
字符串匹配 -- KMP
playwfun
宁静致远
展开
-
codeforces #299 div2 D(Kmp || hash)
从前往后依次考虑每个位置的覆盖,前后两次可能会有很大的交集,该交集正好是原串n位置的所有可行前缀失配点。#include #include #include #include using namespace std;const int maxn = 1e6 + 10000;int f[maxn],n,m,ok[maxn],vis[maxn];char str[maxn];con原创 2015-04-15 17:27:18 · 432 阅读 · 0 评论 -
1328 - Period(失配函数使用)
这个题目是让找串上每个前缀串的最小周期,若周期大于2,输出该点,和周期个数。数据范围 n 可以先求失配数组,然后对任一点,若在该点失配,下一次的和自己最近匹配为f[i+1], 若要构成周期只需 (p+1)% (p+1)-f[i+1]) == 0; 即可(可以画图证明)这样可o(n)的判断。#include #include #include #include using n原创 2015-04-15 16:31:30 · 646 阅读 · 0 评论