
区间dp
麻袋君
这个作者很懒,什么都没留下…
展开
-
poj 1651 Multiplication Puzzle
题目大意: 给你一串数字,不可以取第一个数字和最后一个数字,每次取一个数字的代价是这个数字与它左右俩边俩个数的乘积,问取完所有数的最小的代价是什么? 解题思路: 我们用dp[i][j]表示区间[i,j]最小代价的取值;那么就会有转移方程dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+num[i]*num[k]*num[j]);i #include #incl原创 2015-04-29 22:07:06 · 421 阅读 · 0 评论 -
light oj Halloween Costumes
题目大意: 你要去参加一系列舞会,每个舞会都有某一种款式的衣服,一件衣服你可以套在另外一件衣服上面穿,但是脱掉以后就不能再用这件衣服了; 解题思路: 很经典的一道区间dp题目。 我们用dp[i][j]表示i------j这段时间内最少的穿衣件数; 因此我们需要不断的枚举可以分割区间的点来更新答案,而这个过程我们需要后面某一段时间的最优值,因此我们进行递推的时候需要自下而上的更新答案;原创 2015-04-27 10:36:49 · 469 阅读 · 0 评论 -
poj 2955 Brackets
题目大意: 给你一串字符序列,问序列中可以匹配的括号最多有多少个; 解题思路: 首先需要注意,最多可以匹配的括号个数,如果可以匹配一对括号,那么个数为2,‘(’和‘)’或者‘【’和‘】’; 我们用dp[i][j]表示【i,j】这个区间内可以匹配的最大的括号数; 则有转移方程 dp[i][j]=max(dp[i][j],dp[i][k]+dp[k][j]); 在进行这个判断的时候需要判原创 2015-04-27 11:49:16 · 398 阅读 · 0 评论