KMP算法
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 3670 NOI2014 动物园 KMP算法
题意: 给定一个长为L的字符串(L 求Π(num[i]+1)%1000000007 这就是KMP算法的一个变形。。。首先求出next数组,顺便求出cnt数组,代表长度为i的前缀经过几次fix=next[fix]会得到0,然后重新匹配一次,这次注意当fix*2>i的时候令fix=next[fix]即可 这题有坑 切忌用num数组代替next 此外勿忘开long long 这题就水过去了。原创 2014-09-01 12:44:58 · 3082 阅读 · 0 评论 -
HDU 2222 Keywords Search AC自动机模板题
题目大意:给定一些单词和一个字符串,求有多少单词在字符串中出现过 首先我不想吐槽题号。真的不想。真的不想!!别问我为什么说这句话!!不想就是了!! AC自动机模板题 简单介绍一下AC自动机 首先不要把这东西和自动AC机弄混 自动AC机算法等我们发明之后再加介绍 这东西的实现方法就是把所有单词插入一棵Trie树 然后在Trie树上跑KMP算法 每个节点有一个next指针 和KMP算法原创 2014-09-15 13:52:47 · 1824 阅读 · 0 评论 -
BZOJ 1355 Baltic2009 Radio Transmission KMP算法
题目大意:给定一个字符串,求最小循环节(可以不整除) 样例的Hint是错的无视掉就好 循环节应该是cab 这题利用了KMP中next数组的性质,也就是n-next[n]表示循环节 POJ的题都要求整除,这题不用整除,直接输出n-next[n]即可 注意next数组不要开成char~ #include #include #include #include #define M 1001001原创 2014-10-09 13:56:41 · 2148 阅读 · 0 评论 -
BZOJ 1009 HNOI2008 GT考试 KMP算法+矩阵乘法
题目大意:给定长度为m的数字串s,求不包含子串s的长度为n的数字串的数量 n 我们不考虑这个 令f[i][j]为长度为i的数字串中最后j位与s中的前j位匹配的方案数 比如当s为12312时 f[i][3]表示长度为i,以123结尾且不包含子串”12312“的方案数 a[x][y]为f[i-1][x]转移至f[i][y]的方案数 换句话说(可能描述不清楚) a[x][y]为s的长度为x的前原创 2014-10-17 17:17:31 · 2621 阅读 · 3 评论 -
BZOJ 1100 POI2007 对称轴osi 计算几何+KMP算法
题目大意:给定一个多边形,求对称轴数量 我X 这究竟是怎么想到KMP的…… 首先 将边字符化 即找到这个多边形的中心 然后用与中心构成的三角形的边-角-边的方式表示这条边 将边顺时针扫一遍 然后倍增至长度为2n-1 再逆时针扫一遍 逆时针扫的那遍在顺时针那遍中出现的次数就是对称轴数目 用KMP算法就能搞出来 证明自己YY吧 出题人卡精度丧心病狂。。。 #include #includ原创 2014-12-10 16:33:24 · 2341 阅读 · 0 评论 -
BZOJ 3620 似乎在梦中见过的样子 KMP+暴力
题目大意:给定一个字符串,求这个字符串有多少个子串满足这个子串可以拆分成ABA的形式,其中|A|>=k,|B|>=1 梦の中で逢った、ような…... n 枚举子串的左端点,然后枚举右端点 对于每个子串S我们要判定是否存在一个长度在[k,|S|-1>>1]之间的前缀与后缀匹配 那我们就求出长度不超过|S|-1>>1的最长前后缀,判断是否>=k即可 这怎么和去年NOI的某道【植物园】很原创 2015-03-20 19:18:42 · 1726 阅读 · 1 评论 -
BZOJ 3942 Usaco2015 Feb Censoring KMP算法
题目大意:给定两个串A和B,要求将A中删掉所有的B后输出 为何BC群刚有人问完我这题的【C++语法基础题】版之后就出了个KMP版的= = 维护一个栈,将A中的字符依次加进去,一旦A的栈顶出现了B就弹栈 用KMP算法来加速这个过程即可 #include #include #include #include #define M 1001001 using namespace std;原创 2015-04-09 09:05:56 · 1970 阅读 · 0 评论 -
codeforces #30E Tricky and Clever Password KMP+Manacher+二分
题目大意:给定一个字符串SS,要求分成A+prefix+B+middle+C+suffixA+prefix+B+middle+C+suffix6段,满足: |A|=|C||A|=|C| |B||B|为奇数 A+B+CA+B+C为回文串 除BB外所有段长度都可以为00 要求最大化|A|+|B|+|C||A|+|B|+|C|,输出一组方案(|A|=|C|=0|A|=|C|=0时只输出BB)首先原创 2015-05-13 17:50:17 · 3164 阅读 · 0 评论 -
BZOJ 3899 仙人掌树的同构 仙人掌同构+KMP算法
题目大意:给定一棵仙人掌,求有多少自同构仙人掌同构问题= = 曾经出过一个判断两个仙人掌是否同构的题,感觉和这个题很类似首先假设这是一棵树,考虑怎么做我们首先找到树的重心(如果有两个就在中间加一个点变成一个) 然后把树Hash 对于一棵树 如果某一哈希值的子树有kk个 就把答案乘上一个k!k!现在变成了仙人掌,那么我把每个环变成一个红点连向环上的所有点,然后把原先环上的边拆除,可以得到一棵树,原创 2015-07-10 14:01:14 · 2733 阅读 · 2 评论