三角形 + 题目链接: "https://ac.nowcoder.com/acm/contest/4911/B" 涉及知识点: + 背包dp solution: + 背包是dp算法中非常经典的一个问题(如果打算学dp的同学必须要学会背包问题),具体的大家可以看我发在群里的背包九讲pdf + 关于这道 ...
分类:
其他好文 时间:
2020-04-06 09:57:50
阅读次数:
54
学dp学到自闭(真的判断不出是个dp问题哇) 来看一下最近学的dp简单的题库. 1.01背包问题(P1048) 这个的特点是每种东西只能拿一次. https://www.luogu.com.cn/problem/P1048 二维dp: 1 for(int i=1;i<=m;i++) 2 { 3 sc ...
分类:
其他好文 时间:
2020-04-05 18:18:36
阅读次数:
57
01背包问题 而我们所求的结果就是$f[n][m]$。 1 #include <iostream> 2 #include <algorithm> 3 4 using namespace std; 5 6 7 const int N = 1010; 8 int v[N], w[N]; 9 int f[ ...
分类:
其他好文 时间:
2020-04-05 18:17:00
阅读次数:
73
题目链接:http://poj.org/problem?id=1742 与一般的背包问题不一样,这是要计算满足条件的情况的数量,而不是计算最值,一开始的思路就是按照书上的类比: dp[i][j] := 用前i种硬币能否凑成j 递推:dp[i][j] = (dp[i – 1][j – k * A[i] ...
分类:
其他好文 时间:
2020-04-05 13:58:49
阅读次数:
69
01背包剖析 问题引入 题目来源: "ACwing:01背包问题" 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 输入格式 第一行两个整数,N,V,用 ...
分类:
其他好文 时间:
2020-04-05 13:44:02
阅读次数:
61
链接 http://acm.hdu.edu.cn/showproblem.php?pid=6376 分析 这道题好像不是很难,因为是要拼出前缀1,所以确定剪下每一段1需要的刀数,然后因为有次数限制,所以这个问题实际上相当于一个01背包问题,体积换价值,头部和尾部的话需要一刀,中间两刀,但中间的1有一 ...
分类:
其他好文 时间:
2020-04-01 14:54:34
阅读次数:
45
1 #include "iostream" 2 #include "stdio.h" 3 using namespace std; 4 int w[105],val[105]; 5 int dp[105][1005]; 6 int main() 7 { 8 int t,m,res=-1; 9 sca ...
分类:
其他好文 时间:
2020-03-31 14:23:39
阅读次数:
65
题目链接 http://bailian.openjudge.cn/practice/4131/ 解题分析 这是一个基础的01背包问题,使用动态规划来解决,因为题目中给的M,也就是背包最大容量比较大,使用二维数组可能会超内存,所以可以使用滚动数组的方法节省空间。 状态转移方程: dp[i][j] = ...
分类:
其他好文 时间:
2020-03-28 19:56:43
阅读次数:
75
关于dp数组大小,边界,循环上线,因为这几个值在代码化的时候是有关联的,一开始会觉得有点不清不楚的,但是这个问题本身只要理清楚一次就不会再有问题了。 两种方式都是可以的,这里建议使用dp[n+1][w+1]的方式建立数组, 有以下几个好处: 1.动态的数值不用加一减一(dp数组) 2.循环上限直接采 ...
分类:
编程语言 时间:
2020-03-26 21:48:59
阅读次数:
85
贪心是一种解决问题的策略。 背包相关问题 最优装载问题:给出n个物体,第i个物体重量为wi.选择最多的物体,使得总重量不超过C。 每次都选择装最轻的,这是一种典型的贪心算法,它只顾眼前,却能得到最优解。 部分背包问题:有n个物体,第i个物体的重量为wi,价值为vi.在总重量不超过C的情况下让总价值尽 ...
分类:
其他好文 时间:
2020-03-25 23:13:23
阅读次数:
75