```cpp #include #include #include #include using namespace std; /** * 重w 价v * 2 3 * 3 4 * 4 5 * 5 8 * 9 10 * * 背包容量 20 * */ #define N 6 #define W 21 i... ...
分类:
其他好文 时间:
2020-04-06 13:56:15
阅读次数:
116
三角形 + 题目链接: "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
"传送门" 这是树上背包计数?上下界优化裸题? 考虑大力$dp$ $f[u][i][0/1][0/1]$表示$u$子树选了$i$个节点,当前点选不选,是否被覆盖 大力分类讨论 $f[u][i+j][0][0]=\sum f[u][i][0][0] f[v][j][0][1]$ $f[u][i+j][ ...
分类:
Web程序 时间:
2020-04-02 01:11:50
阅读次数:
77
链接 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
``` #include using namespace std; const int N=2e5; int f[N]; int g[N]; int q[N]; int s1[7]; int m; //数量为a[1...6] //还是数量 //价值1~6 //变为体积 //然后价值都是1 //问能不... ...