随笔分类 -  区间dp

摘要:题意:给定n个狼的战斗力,并且每个狼的战斗力还需要加上相邻的两个狼的额外的攻击力。当把这个狼杀死之后,它的额外的战斗力就不会给其它相邻的狼加了。每杀死一个狼,它就受到和狼攻击一样大的伤害。求杀死所有的狼最小受的伤害。思路:区间dp,dp[i][j]表示从i到j最小的伤害,考虑[i, j]当中的第k个... 阅读全文
posted @ 2015-09-22 22:07 Howe_Young 阅读(299) 评论(0) 推荐(0)
摘要:大意:有一个队列,每个人有一个愤怒值D,如果他是第K个上场,不开心指数就为(K-1)*D。但是边上有一个小黑屋,可以一定程度上调整上场程序,求最小的愤怒值之和思路: dp[i][j]表示i->j这个区间的最优解,也就是最小值,考虑第i个人,他一共有j - i + 1中上场方式,可以第一个,第二个..... 阅读全文
posted @ 2015-08-31 15:14 Howe_Young 阅读(336) 评论(0) 推荐(0)
摘要:题意: 给定两个字符串,让求最少的变化次数从第一个串变到第二个串思路: 区间dp, 直接考虑两个串的话太困难,就只考虑第二个串,求从空白串变到第二个串的最小次数,dp[i][j] 表示i->j这个区间上的最优解,那么dp[i][j] = min(dp[i + 1][j], dp[i + 1][k] ... 阅读全文
posted @ 2015-08-31 15:02 Howe_Young 阅读(214) 评论(0) 推荐(0)
摘要:题目大意: 给定一个序列,删除这个序列当中的一些数字,两头的不能删,每删一个价值是当前这个数的数值乘以两边的数值,到最后删到只剩两头的数,问怎么删除总价值最小。思路:这个题和最有矩阵连乘是一样的。用dp[i][j]来表示从第i个位置到第j个位置这段序列的最小价值。考虑k(i#include #inc... 阅读全文
posted @ 2015-08-19 14:16 Howe_Young 阅读(238) 评论(0) 推荐(0)
摘要:题目大意: 给你n天要穿的衣服,可以套着穿,但是一旦脱下来就不能载穿了,问n天至少需要多少衣服?做了两个关于区间dp的题,遇到这个题还是不会做,网上搜了一下,感觉也不难,就是自己想不起来。。。思路:dp[i][j]表示从第i天到第j天至少需要多少衣服,那么dp[i][j] = dp[i + 1][j... 阅读全文
posted @ 2015-08-17 19:46 Howe_Young 阅读(206) 评论(0) 推荐(0)
摘要:这道题目是经典的凸包的最优三角剖分,不过这个题目给的可能不是凸包,所以要提前判定一下是否为凸包,如果是凸包的话才能继续剖分,dp[i][j]表示已经排好序的凸包上的点i->j上被分割成一个个小三角形的最小费用,那么dp[i][j] = min(dp[i][k]+dp[k][j]+cost[i][k]... 阅读全文
posted @ 2015-08-17 16:45 Howe_Young 阅读(403) 评论(0) 推荐(0)
摘要:这道题算是区间dp的入门题目了。题目让求一个最长的合法的括号序列长度,直接记忆化搜索的话比较好想,但是代码有点长,如果写成递推式那么代码就会精简好多。状态转移方程:dp[i][j]表示从i到j能构成的最长长度如果i位置和j位置配对的话,那么dp[i][j] = dp[i + 1][j - 1] + ... 阅读全文
posted @ 2015-08-17 16:38 Howe_Young 阅读(185) 评论(0) 推荐(0)