简单的背包问题 背包问题动态规划中非常经典的一个问题,本文只包含01背包,完全背包和多重背包。更加详尽的背包问题的讲解请参考崔添翼大神的《背包九讲》 简单的01背包 问题导入:新年到了,mjl马上就要外出旅游。mjl拥有一个容量为P的小背包,他希望在自己的n件体积为Vi的物品中带走的物品体积之和尽可 ...
分类:
编程语言 时间:
2020-01-20 22:52:57
阅读次数:
115
蒜头君酷爱收集萌萌的娃娃。蒜头君收集了 6 种不同的娃娃,第 i 种娃娃的萌值为 i(1≤i≤6)。 现在已知每种娃娃的数量 mi ? ,蒜头君想知道,能不能把娃娃分成两组,使得每组的娃娃萌值之和相同。 输入格式 输入一行,输入6个整数,代表每种娃娃的数量mi(0≤mi≤20000)。 输出格式 输 ...
分类:
其他好文 时间:
2020-01-20 09:32:12
阅读次数:
90
"题意" 暴力显然是考虑n次多重背包。 考虑假如没有$d_i$的限制,那么这实际上就是一个普通的完全背包预处理,最后$O(1)$输出。 现在假设只有$c_1$这种硬币有限制,那么实际上我们只需要输出$f_m f_{m (d_1+1) c_1}$就好了。因为既然$c_1$这种货币使用超过了限制,那么它 ...
分类:
其他好文 时间:
2020-01-05 16:03:12
阅读次数:
57
链接:https://www.acwing.com/problem/content/5/ 有 N种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。 输出最大价值。 输入格式 第一 ...
分类:
其他好文 时间:
2020-01-04 18:30:58
阅读次数:
66
"POJ1276" 题目 多重背包模板题,给定背包容量$V$,给定$N$种物品,每种物品的个数$n_i$、体积$v_i$和重量$w_i$已知,求背包能装下的物品的最大重量。对应本题就是,给定提款的金额cash,给定$N$种钱币,每种钱币的个数为$n_i$、面额$D_i$已知,求能兑换的钱币的最大值。 ...
分类:
其他好文 时间:
2019-12-25 23:57:36
阅读次数:
131
http://acm.hdu.edu.cn/showproblem.php?pid=2844 题意:给你n种硬币和商品价格m,每种硬币给出价值和数量。问1-m价值中有多少种价值可以用这些硬币表示出来。 解法:因题目数据量较大,必须二进制拆分成01背包优化。 最后遍历所以容量,如果价值等于容量则表示该 ...
分类:
其他好文 时间:
2019-12-04 01:28:57
阅读次数:
65
//二进制优化 最后变为01背包 #include <iostream> #include <algorithm> using namespace std; const int N = 12010, M = 2010; int n, m; int v[N], w[N]; int f[M]; int ...
仅收录有意思的题目 1. "数的划分" 2. "导弹拦截" : LIS的两种优化 3. "教主的花园" :将不同的情况分类,最后取max 4. "午餐" & "挂饰" : 需要排序 1. "挂饰" :0 1背包处理负数体积 2. "投资的最大效益" : 完全背包, n次 3. "Piggy Bank ...
分类:
其他好文 时间:
2019-11-13 22:02:42
阅读次数:
76
核心: 用一些二进制数进行祝贺代替所有的数。 代码: #include <bits/stdc++.h> using namespace std; const int M = 10005; const int N = 10005; #define ri register int struct setd ...
分类:
其他好文 时间:
2019-11-12 09:32:07
阅读次数:
124
二进制优化 #include<iostream> #include<cstdio> #include<algorithm> #include<cstdlib> #include<cmath> using namespace std; const int maxn = 25000; const int ...
分类:
其他好文 时间:
2019-11-11 21:24:58
阅读次数:
74