首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
【模板】完全背包
53条解析
开通博客写题解
程序猿大队长
发表于 2021-11-30 14:33:36
一、0-1背包 第一类问题:最大价值 确定状态 容量+剩余物品数量 确定选择 针对一个物品放入背包或者不放入背包两种选择 确定dp含义 dp[i][j]表示针对前i个物品,在容量为j的限制下,所能存放的最大价值 确定base case 当物品数量为0或者背包体积为0时,最大价值为0,即dp[0][
展开全文
其实是牛哥
发表于 2021-10-19 15:44:45
完全背包 难度:3星 设 dp[i][j]dp[i][j]dp[i][j] 为前iii个物品,背包容量为jjj的最大价值。 那么考虑第iii个物品是否放入,有两种情况: 如果不放,那么等同于前i−1i-1i−1个物品,容量为jjj的背包的最优方案。 如果放,又可以分为放1个,2个....k个,同0
展开全文
KEY.L
发表于 2022-07-06 21:56:43
先上代码,和01背包问题的解法有略微的改动,区别在于遍历体积 jj 时从逆序改为顺序,在上一题中有我关于01背包问题的理解。 上一篇代码中(01背包中),解释过,逆序是为了保证更新当前状态时,用到的状态是上一轮的状态,保证每个物品只有一次或零次; 在这里,因为每个物品可以取任
展开全文
文和906
发表于 2021-11-01 15:16:40
这道题在弄懂01背包问题后基本没有难度。基本思路与01背包问题相同。唯一不同的是,题目中的物品可以重复加入,而01背包问题中要避免物品重复加入。在01背包问题中,避免重复添加一件物品是通过逆序遍历来实现的,而在本题中要包含重复添加一件物品的情况,只需将逆袭改为正序遍历即可。 附01背包问题题解 #i
展开全文
姐姐的遮阳伞
发表于 2022-03-18 16:12:02
import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] args) { // 以下代码用于获取输入数据
展开全文
xqxls
发表于 2021-10-28 17:21:16
题意整理。 给定一个背包,能容纳体积为V。然后有n种物品,每种物品有一个对应的体积和价值,并且每个物品有无数个。 求这个背包最多能装多大价值的物品。 如果背包恰好装满,最多能装多大价值的物品。 方法一(动态规划) 1.解题思路 第一问: 状态定义:dp1[i]表示不考虑背包是否装满,在容量为i
展开全文
fred-coder
发表于 2021-11-12 14:09:21
同上题类似,由于物品的数量有任意多个,则压缩 dp 后遍历时不采用逆序; 代码如下: n, v = map(int, input().strip().split()) dp_1 = [0 for _ in range(v + 1)] dp_2 = [float('-inf') for _ in ra
展开全文
不会Cplus
发表于 2025-05-09 17:25:25
#include <bits/stdc++.h> using namespace std; #define N (int)(1e3+5) int dp[N]; int dp2[N]; int value[N],volume[N]; int my_max(int a,int b){
展开全文
Gnomeshgh112
发表于 2025-04-11 16:49:33
问题1:dp[i]表示背包最大容量为i的情况下,能装下的最多价值。由于完全背包中,每个物品可以选择无数次。一种比较简单的思路是,每一个物品都copy足够多次,多到单独选择任意一个物品都能够填满整个背包。这样将物品数量增加,将问题转换为0 1背包。但是这种思路会被卡。另外的思路:考虑在0 1背包中,是
展开全文
秋天Code
发表于 2023-08-31 13:21:35
与01 背包不同的是,一个物品可以无限次放入。我们可以在本次物品的基础上继续放入,而不是在前一个物品的基础上放入,因此我们只需要在01背包的代码上稍作修改即可。例题:P1616 疯狂的采药二维数组 for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++)
展开全文
查看本题
查看本题讨论
相关比赛
75321-背包练习
进入比赛
86341-背包问题
进入比赛
86344-背包dp
进入比赛
87438-2023级 AI 暑假训练 - DP + 搜索专题
进入比赛
89329-Day_07
进入比赛
等你来战
查看全部
牛客挑战赛80
报名截止时间:2025-06-27 22:00
第五届上海理工大学程序设计全国挑战赛
报名截止时间:2025-06-28 17:30
牛客周赛 Round 98
报名截止时间:2025-06-29 21:00
2025牛客暑期多校训练营1
报名截止时间:2025-07-15 17:00
2025牛客暑期多校训练营2
报名截止时间:2025-07-17 17:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题