ACwing 4. 多重背包问题 I(DP)
文章目录
- 1. 题目
- 2. 解题
1. 题目
有 N 种物品和一个容量是 V 的背包。
第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。
求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。
输出最大价值。
输入格式
第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。
接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第 i 种物品的体积、价值和数量。
输出格式
输出一个整数,表示最大价值。
数据范围
0<N,V≤100
0<vi,wi,si≤100
输入样例
4 5
1 2 3
2 4 1
3 4 3
4 5 2
输出样例:
10
题目来源:https://www.acwing.com/problem/content/description/4/
2. 解题
dp[v]
表示体积为 v 时装的最大价值- 时间复杂度 O(NVS)O(NVS)O(NVS),空间复杂度 O(V)O(V)O(V)
#include<bits/stdc++.h>
using namespace std;int main()
{int N, V, vi, wi, si, maxprice = 0;cin >> N >> V;vector<int> dp(V+1, -1);dp[0] = 0;// dp[v] 表示体积为 v 时装的最大价值for(int i = 0; i < N; ++i){cin >> vi >> wi >> si;vector<int> temp(V+1, -1);for(int j = 0; j <= V; ++j){if(dp[j] == -1)//状态不存在continue;for(int s = 0; s <= si; ++s){ //当前的物品可以拿 s 次if(j+s*vi > V)//体积超了,不行break;temp[j+s*vi] = max(temp[j+s*vi], dp[j]+s*wi);maxprice = max(maxprice, temp[j+s*vi]);}}swap(dp, temp);}cout << maxprice << endl;return 0;
}
18 ms C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
ACwing 4. 多重背包问题 I(DP)相关推荐
- ACwing 5. 多重背包问题 II(二进制拆分+DP)
文章目录 1. 题目 2. 解题 1. 题目 有 N 种物品和一个容量是 V 的背包. 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi. 求解将哪些物品装入背包,可使物品体积总和不超过 ...
- ACwing 3. 完全背包问题(DP)
文章目录 1. 题目 2. 解题 1. 题目 有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用. 第 i 种物品的体积是 vi,价值是 wi. 求解将哪些物品装入背包,可使这些物品的总体 ...
- ACwing 2. 01背包问题(DP)
文章目录 1. 题目 2. 解题 1. 题目 有 N 件物品和一个容量是 V 的背包.每件物品只能使用一次. 第 i 件物品的体积是 vi,价值是 wi. 求解将哪些物品装入背包,可使这些物品的总体积 ...
- AcWing 5. 多重背包问题 II(二进制优化)
题目链接 https://www.acwing.com/problem/content/5/ 思路 part1 受了完全背包和01背包的启发我们不难想到,一种高效的方法来优化,我们讲物品的次数做一个二 ...
- AcWing 4. 多重背包问题(多重背包 朴素版)
题目链接 https://www.acwing.com/problem/content/4/ 思路 对于每一个物品我们在选择的时候是有限制的,所以我们进行选择的时候需要枚举一下可以选择的情况,注意的是 ...
- 动态规划:多重背包问题
一.多重背包问题1 ACwing 4.多重背包问题I 一.状态表示 f[i][j],表示从前i个物品当中选,总体积不超过j的选法,求解的是最大值 二.集合划分 f[i][j]根据第i见物品选择的数量进 ...
- poj 1384 Piggy-Bank 多重背包问题
题目:点击打开链接 题意:小猪存钱罐,知道一些钱币的总重量,和这些钱币的币值以及单个重量,问这些钱最少是多少? 分析:很明显的一道多重背包问题,dp[v],表示重量为i的钱的币值和,对于达不到给定那个 ...
- 多重背包问题以及二进制优化
2020.12.30开始学习AcWing算法<算法竞赛进阶指南>: 上传博客方便复习. 多重背包问题(N<= 100): //Wecccccccc //2020.12.31 #inc ...
- P03: 多重背包问题
P03: 多重背包问题 题目 有N种物品和一个容量为V的背包.第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和 ...
最新文章
- 统计数据库中所有表的基本信息
- 使用Xpand XAF创建项目产生Quartz错误的解决方法
- SAP S/4HANA extensibility扩展原理介绍
- python中的参数函数_python中函数与参数的简介
- 0x80070659系统策略禁止这个安装_教你如何将电脑C盘设置成禁止安装任何软件
- JavaScript重难点解析1(数据类型——var、let、const区别,类型补充,“===”、“typeof”、“instanceof”区别,Symbol数据类型)
- c语言中row和col的意思,这段c代码的含义时什么,怎么理解?
- Python 代码覆盖率统计工具 coverage.py
- 1039. 到底买不买(20)-PAT乙级真题
- java虚拟机(八)--java性能监控与故障处理工具
- python表格控件_tkinter 控件 Treeview 表格数据
- java自动化测试之开发工具eclipse安装配置
- Github emoji 表情包大全
- asp毕业设计——基于asp+access的工资管理系统设计与实现(毕业论文+程序源码)——工资管理系统
- 一起学爬虫(Python) — 07
- 不已0开头的数字正则
- Oblog最新注入漏洞分析
- python金融基础知识_python金融实务从入门到精通(23节课)
- 大学计算机长文档排版教学视频教程,大学计算机基础中Word长文档排版的教学思考...
- py.test --pep8 vsearch.py报错解决办法
热门文章
- 快速傅里叶变换python_FFT快速傅里叶变换的python实现过程解析
- excel合并两列内容_还在为合并WPS表格(Excel)中两列内容而犯愁?此方法简单高效...
- 【python】Flask视图
- 宏定义函数container_of的解释
- 新高考不选物理可以学计算机吗,新高考选科中物理真的那么重要吗?没有选物理是不是完了?...
- 5类6类7类网线对比_孩子们长高的黄金时期是从3月到5月,这阶段多吃6类食物长得快...
- WPF 开源项目 【watcher】 守望者,一款监控,统计,分析你每天在自己电脑上究竟干了什么的软件...
- java gui 连接mysql数据库
- CSS常用的元素居中方法
- Java 配置maven及阿里云镜像