区间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 · 154 阅读 · 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 · 122 阅读 · 0 评论 -
POJ 2955 Brackets 区间dp
题意: 给出一个由 '(', ')', '[', ']' 组成的序列, 求最长的合法括号序列的长度.思路:一开始我的想法是dp[i][j]维护i到j之间合法序列的长度. 然后单开数组维护这个区间头上多出的(和[,以及尾上的)和],但是这样是不对的. 因为同样是i到j的区间, 可能会有不同个数的多余括号. 这样就产生了状态重叠(多个状态用了同一个位置表示). 这样, 就只能开4维空间, 但...原创 2019-07-10 00:08:39 · 143 阅读 · 0 评论 -
POJ 1651 Multiplication Puzzle 区间dp
题意: 给出一个数组, 每取走其中一个元素, 就要付出 它左边*它自己*它右边 的代价, 问要当取走除两头外所有的元素, 付出的最小代价是多少.思路:只需要dp[i][j]维护区间内都取完, 两头(i处和j处)还没取的最小代价即可.在这样的情况下, 区间的最小长度当然是3.然后当前区间枚举最后一个取走的元素, ①这个元素取走的代价+②③它左右两个区间早已取走的代价=当前区间的总代价...原创 2019-07-10 00:58:29 · 133 阅读 · 0 评论 -
LightOJ 1422 Halloween Costumes 区间dp
题意: 一个人要去参加n个晚会, 一个长度为n的序列给出每个晚会要穿的衣服类型, 这个人可以套着穿无数件, 但是只要脱下来就必须换新衣服. 问最少这个人要消耗多少件衣服.思路:区间dp维护区间内, 这个人最少消耗多少件衣服.长度为1的区间一定是1.①长度为x的区间, 先赋为x, 代表最差情况下, 每到一个晚会就换一件新的衣服.②当这个区间的头尾相同时, 可以只消耗长度为x-1的...原创 2019-07-10 10:35:12 · 120 阅读 · 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 · 129 阅读 · 0 评论 -
CF 1114D Flood Fill 区间dp
TP给出一个方格序列, 每个方格有颜色, 现在可以从某个格子开始将周围同色的连通区域变换成另一个颜色, 问最少操作多少次能让序列同色.可以得到一个规律: 一个区间最后总是会变成头部的颜色或者尾部的颜色. 那么我们dp数组可以记录区间内变成头/尾最少的操作次数.dp[s][t][x]代表s到t区间,颜色为最左/右的最少操作次数.递推式:代码:#include<...原创 2019-07-11 21:13:20 · 193 阅读 · 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 · 103 阅读 · 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 · 116 阅读 · 0 评论