随笔分类 -  KMP

摘要:洛谷传送门 一个 \(A\) 合法的充要条件为: \(A\) 为 \(S_{1 \sim i}\) 的一个 border; \(A\) 在 \(S_{1 \sim i}\) 中不重叠地出现 \(\ge k\) 次。 建出失配树后,发现合法的 \(A\) 在树上组成一条某个点 \(u\) 到根的链,且 阅读全文
posted @ 2024-07-17 19:35 zltzlt 阅读(54) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 ~~zxx 的题单来的(~~ 发一个无脑 kmp 自动机 + dp 做法。 看到题就很 dp,考虑设计状态。显然填字母时要知道当前串与 $s,t$ 的匹配位数,否则就不知道 $s,t$ 是否完整出现。设 $f_{i,j,k}$ 表示填到 $c$ 的第 $i$ 个字符,与 $ 阅读全文
posted @ 2022-12-29 14:19 zltzlt 阅读(48) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2022-07-18 20:05 zltzlt 阅读(0) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 KMP 好题。 思路 合法的子区间其实就是原串的 $\mathrm{border}$,考虑维护 $\mathrm{border}$ 的集合。每次加入一个字符,就保留原来合法的 $\mathrm{border}$ 并加入新的合法 $\mathrm{border}$(如果 $s 阅读全文
posted @ 2022-07-02 12:42 zltzlt 阅读(43) 评论(0) 推荐(0)
摘要:洛谷传送门 思路 注意到只要字符串出现的相对位置匹配就行。设 \(a_i,b_i\) 分别为明文/密文中第 \(i\) 个字符串与上一个跟它相同的字符串隔了几个单词(若该字符串第一次出现则设为 \(+\infty\))。然后直接 KMP。注意可能有这种情况:明文为 c (a b c)、密文为 x y 阅读全文
posted @ 2022-06-26 14:08 zltzlt 阅读(137) 评论(0) 推荐(0)
摘要:洛谷传送门 思路 首先发现,题中所述的 \(\mathrm{border}\) 就是 KMP 中的 fail。求两个前缀的公共 \(\mathrm{border}\),就是跳到最大的公共的 \(\mathrm{fail}\)。 因此建出 \(\mathrm{fail}\) 树,则每次询问跑一遍 LC 阅读全文
posted @ 2022-06-22 14:03 zltzlt 阅读(57) 评论(0) 推荐(1)
摘要:洛谷传送门 CF 传送门 思路 题意相当于将 $S$ 表示成 $A^kB$($A^x = A^{x-1}A$,$A^0$ 为空串),其中 $B$ 为 $A$ 的前缀。 考虑枚举 $|A^k|$,设 $|A^k| = len\ (k\ |\ len)$,在 $[1,len]$ 中寻找长度为 $\dfr 阅读全文
posted @ 2022-06-22 11:20 zltzlt 阅读(60) 评论(0) 推荐(0)
摘要:洛谷传送门 思路 区间 dp。设 \(f_{l,r}\) 为子串 \([l,r]\) 压缩的最短长度,显然有 \(f_{l,r} \gets \min\limits_{i=l}^{r-1} f_{l,i} + f_{i+1,r}\)。还要考虑压缩 \([l,r]\) 的情况。 设 \(fail_{i 阅读全文
posted @ 2022-06-22 11:00 zltzlt 阅读(54) 评论(0) 推荐(0)