![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
文章平均质量分 72
Adam_Arrows
这个作者很懒,什么都没留下…
展开
-
poj 3356 AGTC 【编辑距离】
题意:给你两个DNA序列,长度小于1000 ,同时定义了三种编辑操作:1. 将任意一个字符删除 2. 在任意位置添加一个字符 3. 将任意一个字符替换成令一个字符。问:将第一个DNA序列变成第二个最少需要多少次操作。解法:经典DP问题,编辑距离,模板题, O(n2)。状态:dp[i][j] 表示由前一个字符串的前i个变成后一个字符串的前j个字符所需的最少次数。转原创 2013-08-13 00:15:55 · 574 阅读 · 0 评论 -
poj 1159 Palindrome 【LCS + 滚动数组】
题意:给出一个字符串,长度 n解法:问题可以转化成求原串和倒置后的串的最长公共子串(LCS)的长度,那么我就需要添加(原串长度-LCS长度) 个字符便可以使其成为回文的。这里O(n2)的复杂度便可以解决问题。代码:#include #include #include #include #include using namespace std;con原创 2013-08-11 22:12:01 · 495 阅读 · 0 评论 -
poj 2955 Brackets 【区间DP】
题意:给你一个只包括大小括号的串,一个合法串的定义如下:1.空串是合法的;2.若s为合法的,则 [s] (s) 也为合法的;3.若 a,b为合法的 , ab 也是合法的。给你一个长度小于100的串,求其所包含的的最长的合法串所包涵的字符数。解法:经典区间dp,括号匹配问题,o(n3)状态:dp[i][j] 表示 s[i]到s[j]字符区间内的最长长度。原创 2013-08-13 19:22:25 · 450 阅读 · 0 评论 -
poj 1141 Brackets Sequence 【区间DP+路径记录】
题意:给你一个只包括大小括号的串,一个合法串的定义如下:1.空串是合法的;2.若s为合法的,则 [s] (s) 也为合法的;3.若 a,b为合法的 , ab 也是合法的。给你一个长度小于100的串,请加入最少的括号使其合法化。解法:区间dp,记录转移路径,类似 poj 2955,不过将dp[i][j]的意义改为使子段变为合法的最少插入数,O(n3)。原创 2013-08-13 23:04:23 · 492 阅读 · 0 评论