
区间dp
TIMELIMITE
Time is not enough. I must hurry up !
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj2955 Brackets 简单区间dp
// poj2955 简单区间dp// d[i][j]表示i到j区间所能形成的最大匹配序列// dp[i][j] = max(dp[i][k]+dp[k+1][j]){i<k<j}// dp[i][j] = max(dp[i+1][j-1]+2) if (s[i] match s[j])//// 记忆化搜索的时候,将dp[i][i] = 0 ,其他赋值成-1;//// 做题的时候刚开原创 2015-05-09 17:33:18 · 899 阅读 · 0 评论 -
uva348 最优矩阵链乘 经典区间dp
// uva348 最优矩阵链乘// 典型的区间dp// dp[i][j] 表示矩阵i到j链乘所得到的最小花费// dp[i][j] = min(dp[i][k]+dp[k+1][j]+a[i].pl*a[k].pr*a[j].pr);// 在区间i到j上找一个k使得dp[i][k]+dp[k+1][j]这两部分的和在加上最后的// a[i].pl*a[k].pr*p[i].pr的最小值原创 2015-04-28 21:19:23 · 841 阅读 · 0 评论 -
uva1626 poj 1141 Brackets Sequence 区间dp 打印路径
// poj 1141 Brackets Sequence// 也是在紫书上看的一题,uva就是多了一个t组数据。// 经典区间dp// dp(i,j)表示区间[i,j]内所需要增加的括号数目// 则分为两种情况// 一种是s[i]和s[j]是匹配的则// dp[i][j] = min(dp[i][j],dp[i+1][j-1])// 另外一种情况是不匹配// dp[i][j] =原创 2015-05-04 23:00:54 · 861 阅读 · 0 评论 -
uva 10003 Cutting Sticks 简单区间dp
// uva 10003 Cutting Sticks 区间dp// 经典的区间dp// dp(i,j)表示切割小木棍i-j所需要的最小花费// 则状态转移为dp(i,j) = min{dp(i,k) + dp(k,j) + a[j]-a[i])// 其中k>i && k<j// a[j] - a[i] 为第一刀切割的代价// a[0] = 0,a[n+1] = L;// dp数组初原创 2015-05-01 22:54:26 · 969 阅读 · 0 评论 -
uva10891 Game of Sum 博弈区间dp
// uva10891 Game of Sum// 这是在训练指南上看到的一题,啃了很久很久,到现在有// 一定的动态规划的基础,然而博弈性的东西依然不会// //// 一开始想的是dp(i,j)表示在i,j段取得最大值// dp(i,j) = max(dp(i,i),d(i.i+1),...d(i,j-1),d(j-1,j),d(j-2,j)...d(i+1)(j);,sum(i,j原创 2015-05-23 21:55:51 · 590 阅读 · 0 评论 -
uva live 4394 String painter 区间dp
// uva live 4394 String painter//// 这一题是训练指南上dp专题的习题,初看之下觉得只是略微复杂了一点// 就敲阿敲阿敲,两个半小时后,发现样例过了,然而自己给出的数据跪了// 交了也wa了,才发现,自己的方法是有问题的,如果是将两个串同时考虑// 的话,比如: dp[i][j] 表示从i到j,s串刷成目标b串所需要的最小的花费// 然后根据区间的端点原创 2015-06-10 13:38:19 · 1116 阅读 · 0 评论 -
uva live 3516 Exploring Pyramids 区间DP
// uva live 3516 Exploring Pyramids 区间DP//// 题目大意://// 给你一个多叉树,每个节点是一个大写字母,从根节点走,按照先序遍历的// 原则访问,不能访问则回溯,每次记录一下节点的字符,最后得到一个字符串.现// 在给你一个字符串,问可能符合条件的多叉树的数量.//// 解题思路://// 区间DP,我们注意到,从根节点出发,一原创 2015-08-07 21:40:41 · 783 阅读 · 0 评论