区间DP
时光ice
这个作者很懒,什么都没留下…
展开
-
Brackets sequence UVA - 1626
区间DP题目描述:输出最短的满足括号匹配的字符串,该字符串满足,输入时该字符串的子串。解题分析:先做的POJ 2955-Brackets,两道题虽然不一样,但是该题的想法可以应用到本题上,定义dp[i][j]为以第i个字符开头,以第j个字符结尾的,最长匹配子串的长度。因为对于输入串最长的满足括号匹配的子串是最长的不需要添加的子串,可以直接输出,不匹配的才需要添加。利用POJ 2955-Br原创 2017-10-11 20:07:53 · 330 阅读 · 0 评论 -
POJ 2955-Brackets
区间 DP题目描述:求一个字符串的最长括号匹配子串(非连续)解题分析:状态转移方程全在题目里,定义了两种括号匹配的子串:1若s是匹配的字符串,则(s),[s]也是,那么状态转移方程是if(s[i] == '(' && s[j] ==')' || s[i] == '[' && s[j] ==']') dp[i][j] = max(dp[i][j],dp[i + 1][j - 1] + 2原创 2017-10-11 20:04:12 · 279 阅读 · 0 评论 -
POJ 1651 Multiplication Puzzle
题目描述:给你n个数,拿走一个数,会获得一个值,该值是这个数*它左边的数*它右边的数,最后的结果是取走中间n-2个数所获得的值的和。因为选取的顺序不一样,所获得的值也不一样,求取走中间n-2个值,最小的结果。解题分析:其实就是类似矩阵连乘的思想,矩阵连乘中选取k作为最后一次乘法的中间矩阵,在这个题中选取第k个数作为最后一次乘法的中间数,那么问题转化为求区间[i,k]和区间[k,j]的最优解 +原创 2017-10-13 09:15:18 · 332 阅读 · 0 评论 -
Coloring Brackets CodeForces - 149D
区间DP题目描述:输入一串保证合法的括号序列,要求给这个括号序列串染色,满足三个要求:(1·)染色要不为红,要么为蓝,要么不染色(2)每队匹配的括号,只能有一个染色(3)相邻的染色的括号不能染一个颜色。解题分析:定义dp[l][r][x][y]为左边界为l,染色为x,右边界为r,染色为y满足条件的染色方案数。状态转移方程分两类:第一类是l和r本身是匹配的,另一类是不匹配的,此时就需要找到匹原创 2017-11-24 17:03:54 · 420 阅读 · 0 评论