摘要: AFO 删了一大堆博客 虽然主要原因是交错程序然后花式爆炸,但我还是想说一句: 《骗分过样例》出题人nmsl 阅读全文
posted @ 2019-04-12 18:08 QvvQ 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 看不懂的地方来这里看~ in理解为读入,out理解为输出就行了= = 阅读全文
posted @ 2019-03-22 11:32 QvvQ 阅读(394) 评论(0) 推荐(0) 编辑
摘要: "参考博客1" "参考博客2" ,这里面输出方案的部分复杂度我不会证,而且觉得很假,我肯定95%写这种的人都是抄的而且不会证复杂度。。。。 输出方案的代码参考黄学长的 还有就是论文, "这里面" 有下载链接 记得特判长度是1的情况 关于输出方案 cpp include include include 阅读全文
posted @ 2019-03-29 11:17 QvvQ 阅读(149) 评论(0) 推荐(0) 编辑
摘要: "这里面" 有论文下载链接 结论 一个字符串的最小周期是 len nxt[len] (这个随便画画图就懂了) 如果 LCP(suf(1), suf(1 + p)) = len p 那么 p 是一个周期(其实跟上面差不多的)下图举了一个长度为 5 p = 2的栗子 A=C B=D C=E YY不出实现 阅读全文
posted @ 2019-03-27 22:02 QvvQ 阅读(143) 评论(0) 推荐(0) 编辑
摘要: $\frac{n\times n+1}{2}$ 个子串,减去重复的(height 的 和) “产生前缀” 的意思是 sa[i] 这个后缀有 n sa[i]+1 个前缀 cpp include using namespace std; int k, n, rnk[50005], sa[50005], 阅读全文
posted @ 2019-03-27 15:20 QvvQ 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 还是2009那篇论文里介绍的做法 "这里面" 有下载链接 cpp include include include using namespace std; int k, n, rnk[20005], sa[20005], s[20005], H[20005], c[20005], K; void S 阅读全文
posted @ 2019-03-27 10:38 QvvQ 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 2009那篇论文里介绍的做法 "这里面" 有下载链接 这个题是要转成差分序列再做的(同时要对答案处理一下) 导致我WA了一发的地方 写成 =了(求最长不重叠重复子串确实是 =) 对于下面这两组数据 这两组数据在差分序列上的最长不重叠重复子串长度都是 2 ,但第一组的实际答案是 2 ,第二组是 3 , 阅读全文
posted @ 2019-03-26 22:18 QvvQ 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 两个让我真正理解代码的资料: "2009集训队论文" 网上的经典应用都是从里面抄的,还把解释给去掉了。。。真事屑 "这篇博客" 代码注释特别好 "桶排换成快排的代码" ,便于理解算法思想 ,这里面要减去k的原因是 sa[i] 作为 sa[i] k 的第二关键字 循环中m=x说明所有后缀长度为x的子串 阅读全文
posted @ 2019-03-25 15:15 QvvQ 阅读(399) 评论(1) 推荐(0) 编辑
摘要: 下面是P3808 【模板】AC自动机(简单版) 的两种写法 Trie图 const int MAXN = 1000010; int t[MAXN][26], word[MAXN], fail[MAXN], cnt, q[MAXN]; inline void insert(char *s) { int 阅读全文
posted @ 2019-03-19 11:46 QvvQ 阅读(140) 评论(0) 推荐(0) 编辑
摘要: $f_{i,j}$ 表示X串前 $i$ 位 匹配到A串第 $j$ 位的方案数,因为不能匹配到A串第 $m$ 位,所以答案是 $\sum_{i=0}^{m 1}f_{n,i}$ $f[i][j] = \sum_{k=0}^{m 1} f[i 1][k] g[k][j]$ g[i][j] 是 从第 i 阅读全文
posted @ 2019-03-11 13:35 QvvQ 阅读(144) 评论(0) 推荐(0) 编辑