
区间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 · 897 阅读 · 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 · 835 阅读 · 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 · 860 阅读 · 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 · 967 阅读 · 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 · 589 阅读 · 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 · 1113 阅读 · 0 评论 -
uva live 3516 Exploring Pyramids 区间DP
// uva live 3516 Exploring Pyramids 区间DP // // 题目大意: // // 给你一个多叉树,每个节点是一个大写字母,从根节点走,按照先序遍历的 // 原则访问,不能访问则回溯,每次记录一下节点的字符,最后得到一个字符串.现 // 在给你一个字符串,问可能符合条件的多叉树的数量. // // 解题思路: // // 区间DP,我们注意到,从根节点出发,一原创 2015-08-07 21:40:41 · 781 阅读 · 0 评论