Loading

随笔分类 -  动态规划

摘要:题意:按x从小到大给出n个点,要求一条从最左走到最右再回到最左的路径最小值 要求走过每个点 Solution by Rujia,liu #include<iostream> #include<string> #include<cmath> #include<cstring> #include<vec 阅读全文
posted @ 2020-02-20 16:29 MQFLLY 阅读(154) 评论(0) 推荐(0)
摘要:树形DP 加分二叉树 洛谷P1040 注意中序遍历的特点:当根节点编号k时,编号小于k的都在其左子树上,编号大于k的都在右子树 转移方程 f[i,j]=max{f[i,k-1]*f[k+1,j]+d[k]} ,f[i,j]表示中序遍历i到j的二叉树最大加分 时间复杂度O(N3) #include<i 阅读全文
posted @ 2020-02-07 12:31 MQFLLY 阅读(142) 评论(0) 推荐(0)
摘要:背包问题 01背包 状态:f(i,j) 表示只能装前i个物品的情况下,容量为j的背包所能达到的最大总价值 状态转移方程: f(i,j)=max(f(i-1,j),f(i-1,j-w[i])+v[i]) 核心代码(滚动数组) 由于我们使用一维数组存储,则在求两个子问题时没有直接取出那么方便了,因为第i 阅读全文
posted @ 2020-02-04 20:07 MQFLLY 阅读(152) 评论(0) 推荐(0)
摘要:线性DP 考虑一组硬币面值 1,5,11 给定W,求凑出W的最少硬币个数 我们记凑出n需要用到的最少硬币数量为f(n) 我们注意到了一个很棒的性质 : f(n)只与f(n-1) f(n-5) f(n-11) 有关。 更确切的说f(n)=min(f(n-1),f(n-5),f(n-11)}+1 int 阅读全文
posted @ 2020-02-03 16:07 MQFLLY 阅读(174) 评论(0) 推荐(0)