AcWing算法提高课-1.3.11二维费用的背包问题

news/2025/1/16 16:51:58/

宣传一下算法提高课整理 <—

CSDN个人主页:更好的阅读体验 <—

f4e0159841ab450d861dde9e8fb5ba0d.gif

本题链接(AcWing)

点这里

题目描述

N N N 件物品和一个容量是 V V V 的背包,背包能承受的最大重量是 M M M

每件物品只能用一次。体积是 v i v_i vi,重量是 m i m_i mi,价值是 w i w_i wi

求解将哪些物品装入背包,可使物品总体积不超过背包容量,总重量不超过背包可承受的最大重量,且价值总和最大。
输出最大价值。

输入格式

第一行三个整数, N , V , M N,V, M N,V,M,用空格隔开,分别表示物品件数、背包容积和背包可承受的最大重量。

接下来有 N N N 行,每行三个整数 v i , m i , w i v_i, m_i, w_i vi,mi,wi,用空格隔开,分别表示第 i i i 件物品的体积、重量和价值。

输出格式

输出一个整数,表示最大价值。

数据范围

0 < N ≤ 1000 0 \lt N \le 1000 0<N1000
0 < V , M ≤ 100 0 \lt V, M \le 100 0<V,M100
0 < v i , m i ≤ 100 0 \lt v_i, m_i \le 100 0<vi,mi100
0 < w i ≤ 1000 0 \lt w_i \le 1000 0<wi1000

输入样例

4 5 6
1 2 3
2 4 4
3 4 5
4 5 6

输出样例:

8

思路

类比一维费用的01背包问题,二维费用的背包问题只是加入了一个花费。
因此,同样的,第二维的费用也是倒着循环,原理与普通一维背包相同。


A C AC AC C o d e Code Code:

C + + C++ C++

#include <iostream>using namespace std;const int N = 110;int n, V, M;
int f[N][N];int main()
{cin >> n >> V >> M;for (int i = 1; i <= n; i ++ ){int v, m, w;cin >> v >> m >> w;for (int j = V; j >= v; j -- )for (int k = M; k >= m; k -- )f[j][k] = max(f[j][k], f[j - v][k - m] + w);}printf("%d\n", f[V][M]);return 0; 
}

228aa7bed3e021faf24cf8560d3e47bb.gif

最后,如果觉得对您有帮助的话,点个赞再走吧!


http://www.ppmy.cn/news/94350.html

相关文章

优雅提交-Git-Commit-Message

title: 优雅提交 Git Commit Message date: 2023-05-15 09:54:27 description: tags: Message 规范 那么如何能优雅而又不失体面的提交你的代码呢&#xff1f;其实我们的 git commit message 是应该具备一些规范的。目前规范用的比较多的是 Angular 团队的规范 message 样例…

COLMAP中将旋转矩阵转为四元数的实现

instant-ngp中执行scripts/colmap2nerf.py时&#xff0c;在colmap_text目录下会生成cameras.txt、images.txt、points3D.txt三个文件: 1.cameras.txt&#xff1a; (1).该文件包含数据集中所有重构相机(all reconstructed cameras)的内在参数(intrinsic parameters)&#xff0c;…

自动化测试1

目录 1.什么是自动化测试 1.1自动化分类 1.1单元测试 1.2接口测试 1.3UI自动化测试 2.selenium 1.什么是selenium 2.selenium的特点 3.工作原理 3.seleniumJava 1.搭建 1.查看Chrome版本 2.下载Chrome浏览器驱动 3.配置,放到该目录下 2.验证是否搭建成功 1.什么是…

PCB 布线技术~PCB 基础

PCB量测的单位 • PCB设计起源于美国&#xff0c;所以其常用单位是英制&#xff0c; 而非公制 – 版子的大小通常使用英尺 – 介质厚度&导体的长宽通常使用英尺及英寸 • 1 mil 0.001 inches • 1 mil .0254 mm – 导体的厚度常使用盎司(oz) • 一平方英尺金属的重量 •…

【SA8295P 源码分析】05 - SA8295P QNX Host 上电开机过程 进一步梳理(结合代码)

【SA8295P 源码分析】05 - SA8295P QNX Host 上电开机过程 进一步梳理(结合代码) 一、APPS PBL(Application Primary Boot Loader):固化在CPU ROM中1.1 APPS PBL 加载 XBL Loader1.2 XBL Loader加载验证并运行SMSS进行自检,自检完成后触发Warm Reset1.3 WarmRest后,APPS…

Yolov5/Yolov7涨点技巧:MobileViT移动端轻量通用视觉transformer,MobileViTAttention助力小目标检测,涨点显著

1. MobileViT介绍 论文:https://arxiv.org/abs/2110.02178 现有博客都是将MobileViT作为backbone引入Yolov5,因此存在的问题点是训练显存要求巨大,本文引入自注意力的Vision Transformer(ViTs):MobileViTAttention MobileViT是一种基于Transformers的轻量级模型,它可以用于…

TIOBE 5 月榜单揭晓:哪些编程语言正在上升?

每年的 TIOBE 编程语言排行榜都是开发者们关注的焦点。在这个数字化时代&#xff0c;编程语言的重要性变得越来越不可忽视。作为一名开发者&#xff0c;了解什么样的编程语言最受欢迎&#xff0c;哪些语言正在兴起或正在走向衰落&#xff0c;是非常重要的。在本文中&#xff0c…

启动页/闪屏/引导页-你还傻傻分不清?

启动页/闪屏/引导页-你还傻傻分不清&#xff1f;&#xff08;转载&#xff09; - 知乎 今天就跟大家一起来认识一下开屏三姐妹&#xff1a;启动页/闪屏/引导页。 通常三姐妹出场顺序如下&#xff1a; 下面我们来深入认识一下这三姐妹&#xff1a; 1、启动页 定义&#xff1…