题目链接:https://www.acwing.com/problem/content/7/ 思路: 如果将前面三个背包混合起来,也就是说,有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包),应该怎么求解呢? 01背包与完全背包的混合考虑到 ...
分类:
其他好文 时间:
2020-02-01 23:00:06
阅读次数:
83
01背包和完全背包都是dp入门的经典,我的dp学的十分的水,借此更新博客的机会回顾一下 01背包:给定总容量为maxv的背包,有n件物品,第i件物品的的体积为w[i],价值为v[i],问如何选取才能是背包内的物品价值总和最大。 stdin: 5 1 2 3 4 5 5 4 3 2 1 stdout: ...
分类:
其他好文 时间:
2020-02-01 17:52:19
阅读次数:
68
"题面" 迭代加深搜索模板题。 注意开始时要先对桶的容量从小到大排序。 达到搜索层数时使用完全背包$\text{check}$即可。 具体实现参考代码。 ...
分类:
其他好文 时间:
2020-02-01 12:45:29
阅读次数:
60
322 零钱兑换(完全背包) 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 1。 示例 1: 示例 2: 说明: 你可以认为每种硬币的数量是无限的。 来源:力扣(LeetCode) 链接: ...
分类:
其他好文 时间:
2020-01-30 14:34:41
阅读次数:
100
518 零钱兑换 II(完全背包 求方案总数) 给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。 示例 1: 示例 2: 示例 3: 注意: 你可以假设: 0 <= amount (总金额) <= 5000 1 <= coin (硬币面额) < ...
分类:
其他好文 时间:
2020-01-30 14:28:14
阅读次数:
111
[toc] 前言 传统意义上的背包是有一些众所周知的定义和判断性质的 有$n$件物品,每件物品有价值、体积、数量(1个、无限、规定数量)等属性(一般就是这三个),彼此可能存在依赖或排斥,现在要把它们尽量放入一个容积为$m$的背包里,问获得的最大价值 然后主要分为01背包、完全背包、多重背包等(比如还 ...
分类:
其他好文 时间:
2020-01-29 23:20:07
阅读次数:
91
#include<iostream> #include<cstring> using namespace std; const int INF=0x3f3f3f3f; int t,e,f,n,dp[10010]; struct node { int p, w; //价值 重量 } no[10000] ...
分类:
其他好文 时间:
2020-01-28 17:27:44
阅读次数:
70
https://vjudge.net/contest/353157#problem/A 一开始用的记忆化搜索= = 样例能过不知道为啥提交WA = 。= = 。= 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 ...
分类:
其他好文 时间:
2020-01-28 12:39:19
阅读次数:
60
完全背包,价值取题意代价的最小值 1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 int a[10007],b[10007],f[10007]; 5 int main(){ 6 ios ...
分类:
其他好文 时间:
2020-01-27 17:20:05
阅读次数:
70
#include<iostream> #include<algorithm> using namespace std; int v[6002],w[6002],s[6002],f[6002],n,m; int main(){ cin>>n>>m; for(int i=1;i<=n;i++) cin> ...
分类:
其他好文 时间:
2020-01-27 15:43:15
阅读次数:
59