随笔分类 -  字符串 KMP

摘要:【算法】KMP 【题解】题目要求的是数量而非长度……QAQ BZOJ 3670 NOI2014 动物园 KMP算法 KMP树结点是0~n,根节点是0,树边就是失配边,跑失配边其实就是跑向父亲(所以它是后面所有后缀与它一样的字符串的祖先)。 题目要求的是满足要求(长度<一半)的前后缀相等的数量,若不考 阅读全文
posted @ 2017-03-27 14:02 ONION_CYC 阅读(242) 评论(0) 推荐(0)
摘要:【算法】KMP 【题解】KMP中n-next[n]得到最小循环节的性质。 考虑一个循环串(最后一个循环节可能残缺),它最长的【后缀=前缀】一定是以第二个循环节为起始位置的后缀。 正着考虑的话假设后缀T以x+1开始,S为前缀那: 1.S(1~x)=T(1~x)即S(x+1~2x) 2.S(x+1~2x 阅读全文
posted @ 2017-03-26 12:46 ONION_CYC 阅读(200) 评论(0) 推荐(0)
摘要:【算法】KMP 【题解】【算法】字符串 #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int maxn=1000010,maxm=1010; char A[maxn],B[maxm] 阅读全文
posted @ 2017-03-25 22:58 ONION_CYC 阅读(324) 评论(0) 推荐(0)
摘要:把字符串原样复制一遍放在后面是惯用套路,此时字符串数组开两倍! ★字符串算法的核心是构造失配指针! 【字符串哈希】 双蛤习取模保险,毕竟连自然溢出都是能卡的…… 例题:【CodeForces】961 F. k-substrings 字符串哈希+二分 用于O(1)判断两个字符串是否相等:对于s[i~j 阅读全文
posted @ 2017-03-25 22:47 ONION_CYC 阅读(526) 评论(0) 推荐(1)
摘要:【算法】 【算法】网络流 【算法】树 【算法】数学 ————【专题】生成树计数(矩阵树定理) ————【专题】计数问题(排列组合,容斥原理,卡特兰数) ————【算法专题】卡特兰数(计数数列) ————【专题】数论 ————【专题】概率和期望 【算法】动态规划 【算法】数据结构 ————【专题】平衡 阅读全文
posted @ 2016-08-10 21:08 ONION_CYC 阅读(2144) 评论(0) 推荐(6)