随笔分类 -  字符串

摘要:$\DeclareMathOperator{\fail}{fail}$ KMP 算法堪称经典中的经典,然而这么多年以来,我却未能完全理解这个算法。我对 KMP 算法掌握的程度,是知其原理,但写不出来。 今天打 CF,遇到一个 KMP 的题目,解法很好想,代码量也不大,我却未能在最后的 17 分钟内 阅读全文
posted @ 2019-03-09 12:30 Pat 阅读(301) 评论(0) 推荐(0)
摘要:题目大意 给定一个长度为 $n$ 的字符串 $S$,定义函数 $f(S)$ 表示 $S$ 的不同回文子串的个数。对于 $1\le l \le r \le n$,定义 $S[l,r]$ 为字符串 $S$ 的第 $l$ 个字符到第 $r$ 个字符组成的字符串。 求 $\sum_{l= 1}^{n} \s 阅读全文
posted @ 2018-08-08 14:04 Pat 阅读(211) 评论(0) 推荐(0)
摘要:利用回文串的「镜像」特点减少计算。 引理 0 设 $S$ 是一个长度为 $n+1$ 回文串,下标从 $0$ 开始;$T = S[l, r]$ 是 $S$ 的子串。$T$ 是回文串当且仅当 $S[n r, n l]$ 是回文串。 先考虑长度为奇数的回文子串(简称为「奇回文子串」),可以求出以每个下标为 阅读全文
posted @ 2018-08-07 18:34 Pat 阅读(236) 评论(0) 推荐(0)
摘要:$\DeclareMathOperator{\rev}{rev}$ 传送门:基因工程 这道题拖了好久,一直没有清晰的思路。 当然,$k\le\frac{n}{2}$ 时,比较简单。下面我着重讲一下当 $k>\frac{n}{2}$ ,即前 $k$ 个字符与后 $k$ 个字符有重叠时,如何思考这个问题 阅读全文
posted @ 2015-04-25 13:43 Pat 阅读(566) 评论(0) 推荐(0)