摘要: 回文串一般可以考虑把串倒过来思考问题 对一个给定的串,我们将其倒序,设其长度为\(l\),求出原串和倒序的串的LCS,设长度为\(x\),则答案为\(l-x\) 证明: 我们假设已经获得了最终的回文串,然后我们将这个回文串倒序,那么肯定这个回文串与这个原串是相等的 以样例为例 其中红色字符是添加的字 阅读全文
posted @ 2024-01-17 23:51 最爱丁珰 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 再拓展一下LCS的滚动数组 阅读全文
posted @ 2024-01-17 22:36 最爱丁珰 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 第一问不说了,主要是第二问 第二问考虑贪心,利用数学归纳法证明 这里还有一种贪心策略,就是从右边往左边考虑,但这样好像证不出来 因为这是NOIP的题嘛,没有那么难,看到序列最优化的问题往贪心或者DP上面想喽 当然介绍一个定理 阅读全文
posted @ 2024-01-17 22:07 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 普通的LIS问题的时间复杂度是\(O(n^2)\),瓶颈主要是在方程\(f[i]=1+max(f[j])\),其中\(1≤j<i\)且\(a[j]<a[i]\)中寻找\(j\)上 我们尝试用贪心优化,这里的\(j\)就是小于\(i\)的比\(a[i]\)小的且\(f[j]\)最大的\(j\) 根据贪 阅读全文
posted @ 2024-01-17 21:34 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 这个是对\(f[i]\)数组的扩展,\(f[i]\)求的是\(A\)的后缀与\(B\)的前缀匹配的最大长度,而这道题目是求\(A\)的前缀与\(B\)的前缀匹配的最大长度 注意不能简单地将\(A\)翻转然后跑KMP,因为\(A\)翻转了匹配的方向不会翻转。比如说\(ABC\)与\(AB\)匹配长度为 阅读全文
posted @ 2024-01-17 20:15 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑