动态规划
MarioHo
有请各位多多教导
展开
-
POJ 1163 The Triangle - 数字三角形详解
题意大致: 解题思路:这道题目可以用递归的方法解决。基本思路是:D(r,j)表示第 r 行第 j 个数字(r,j都从 1 开始算),以 MaxSum(r,j)代表从第 r 行的第 j 个数字到底边的最佳路径的数字之和,则本题目要求MaxSum(1,1)。 从某个D(i,j)出发,显然下一步只能走D(r+1,j)或 D(r+1,j+1)。如果走D(r+1,j),那么得到的Ma...原创 2018-03-31 15:52:53 · 352 阅读 · 0 评论 -
动态规划的一般解题思路-详解
1、将原问题转化为子问题2、确定状态3、确定一些初始状态(边界状态)以“数字三角形”为例,初始状态就是底边数字值4、确定状态转移方程5、动态规划的子问题的特点...原创 2018-03-31 16:03:44 · 3870 阅读 · 0 评论 -
POJ2533 -Longest Ordered Subsequence最长上升子序列-动规和nlogn二分算法详解
题目: 描述一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序...原创 2018-03-31 16:17:17 · 220 阅读 · 0 评论 -
POJ 1458 - Common Subsequence - 最长公共子序列-详解
题目大意: 给出两个字符串,求出这样的一个最长的公共子序列的长度:子序列中的每个字符都能在两个原串中找到,而且每个字符的先后顺序和原串中的先后顺序一致。 如: ABCBDAB BDCABA 它们的最长公共子序列就是 BCBA,长度为4。 #include<iostream>#include<cstring>using namespace std;...原创 2018-03-31 16:54:19 · 186 阅读 · 0 评论 -
POJ 3624 Charm Bracelet - 01背包-详解
题目大意:有n个重量和价值分别为wi,vi,的物品,从这些物品中挑选出总重量不超过W的物品, 求所有的挑选方案中价值总和的最大值。(这里需要注意的问题每一件物品只有一件)。Sample Input4 6 1 4 2 6 3 12 2 7Sample Output23 解题思路: #include<iostream>#include<st...原创 2018-03-31 17:08:55 · 210 阅读 · 0 评论 -
杭电 1003 Max Sum (动态规划)
Description Given a sequence a[1],a[2],a[3]……a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14. I...原创 2018-09-11 17:27:28 · 199 阅读 · 0 评论