区间dp
swqeaaa
有问题可以吻我
展开
-
洛谷 P1005 矩阵取数游戏 区间dp
题目:https://www.luogu.org/problemnew/show/P1005 类似的区间dp:https://blog.csdn.net/qq_32259423/article/details/89482764 版权声明:转载请注明出处 [ametake版权所有]http://blog.csdn.net/ametake欢迎来看 https://blog.csdn.n...翻译 2019-04-11 22:41:07 · 131 阅读 · 0 评论 -
POJ 3186 Treats for the Cows 区间dp
http://poj.org/problem?id=3186 类似的区间dp:https://blog.csdn.net/qq_32259423/article/details/89221957 题意: 给你n个数字v(1),v(2),...,v(n-1),v(n),每次你可以取出最左端的数字或者取出最右端的数字,一共取n次取完。假设你第i次取的数字是x,你可以获得i*x的价值。你需要规划...原创 2019-04-23 22:37:49 · 101 阅读 · 0 评论 -
POJ 2955 Brackets 区间dp
题意: 给出一个由 '(', ')', '[', ']' 组成的序列, 求最长的合法括号序列的长度. 思路: 一开始我的想法是dp[i][j]维护i到j之间合法序列的长度. 然后单开数组维护这个区间头上多出的(和[,以及尾上的)和],但是这样是不对的. 因为同样是i到j的区间, 可能会有不同个数的多余括号. 这样就产生了状态重叠(多个状态用了同一个位置表示). 这样, 就只能开4维空间, 但...原创 2019-07-10 00:08:39 · 115 阅读 · 0 评论 -
POJ 1651 Multiplication Puzzle 区间dp
题意: 给出一个数组, 每取走其中一个元素, 就要付出 它左边*它自己*它右边 的代价, 问要当取走除两头外所有的元素, 付出的最小代价是多少. 思路: 只需要dp[i][j]维护区间内都取完, 两头(i处和j处)还没取的最小代价即可. 在这样的情况下, 区间的最小长度当然是3. 然后当前区间枚举最后一个取走的元素, ①这个元素取走的代价+②③它左右两个区间早已取走的代价=当前区间的总代价...原创 2019-07-10 00:58:29 · 97 阅读 · 0 评论 -
LightOJ 1422 Halloween Costumes 区间dp
题意: 一个人要去参加n个晚会, 一个长度为n的序列给出每个晚会要穿的衣服类型, 这个人可以套着穿无数件, 但是只要脱下来就必须换新衣服. 问最少这个人要消耗多少件衣服. 思路: 区间dp维护区间内, 这个人最少消耗多少件衣服. 长度为1的区间一定是1. ①长度为x的区间, 先赋为x, 代表最差情况下, 每到一个晚会就换一件新的衣服. ②当这个区间的头尾相同时, 可以只消耗长度为x-1的...原创 2019-07-10 10:35:12 · 96 阅读 · 0 评论 -
HDU 2476 String painter 区间dp
题意: 给出两个字符串, 定义操作为将a串任意连续区间改为相同的一个字符, 问最少多少次操作可以让a变为b. 思路: 直接做太难了. 看了kuangbin的博客才知道可以这样做. 先用区间dp搞定从空白串变为b串所需要的操作次数. 至于a串变b串,要用到ans数组记录前j位的最小操作数. a[i]若与b[i]相同, 那么ans[i]就可以用ans[i-1]更新. 求让前i位变身的最小...原创 2019-07-10 18:56:30 · 90 阅读 · 0 评论 -
CF 1114D Flood Fill 区间dp
TP 给出一个方格序列, 每个方格有颜色, 现在可以从某个格子开始将周围同色的连通区域变换成另一个颜色, 问最少操作多少次能让序列同色. 可以得到一个规律: 一个区间最后总是会变成头部的颜色或者尾部的颜色. 那么我们dp数组可以记录区间内变成头/尾最少的操作次数. dp[s][t][x]代表s到t区间,颜色为最左/右的最少操作次数. 递推式: 代码: #include<...原创 2019-07-11 21:13:20 · 153 阅读 · 0 评论 -
HDU 5115 Dire Wolf 区间dp
题意: 有一排狼, 每只狼都有a和b, 一只狼的real战斗力=a+相邻狼的b,现在开始杀狼, 每杀一只就会承受它的real伤害, 问把狼全杀了要掉多少血. 思路: dp[i][j]表示杀死i到j之间的狼最少的花费. 当前状态dp[i][j]有3个状态转移: ①dp[i+1][j]+a[i]+b[i-1]+b[j+1] ②dp[i][j-1]+a[j]+b[i-1]+b[j+1] ③d...原创 2019-07-13 17:27:09 · 86 阅读 · 0 评论 -
HDU 4283 You Are the One 区间dp
题意: 有一列人, 他们每个人有屌丝值, 每个人根据上场顺序会有不满意度, 是在他之前上场人数乘屌丝值. 现在有一个栈可以暂时人, 问最后所有人都上场最少会产生多少不满意度. 思路: dp[i][j]表示从第i到第j个人最少产生的不满意度. 现在假设i到j已经是最优区间, 考虑i前面的人i-1: 这个人可能Ⅰ直接上场, 或者Ⅱ进栈之后在j之后上场. 那么dp[i-1][j]就会由两个值进...原创 2019-07-19 17:52:53 · 85 阅读 · 0 评论