11083 旅游背包(优先做)

这个问题可以使用动态规划来解决。我们可以定义一个三维数组dp,其中dp[i][j][k]表示前i种物品,总体积不超过j,总重量不超过k的最大价值。

我们可以使用四重循环来填充这个数组。外层循环遍历所有的物品,第二层循环遍历所有可能的体积,第三层循环遍历所有可能的重量,内层循环遍历当前物品的所有可能的数量。

在填充数组的过程中,我们需要考虑两种情况:一种是不选择当前的物品,那么dp[i][j][k]就等于dp[i-1][j][k];另一种是选择当前的物品,那么dp[i][j][k]就等于dp[i-1][j-v[i]*l][k-w[i]*l] + t[i]*l,其中l是当前物品的数量。

以下是一个使用C++实现的解决方案:

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;const int MAXN = 55;
const int MAXV = 1005;
const int MAXW = 505;
int v[MAXN], w[MAXN], c[MAXN], t[MAXN];
int dp[MAXN][MAXV][MAXW];int main() {int n, V, W;cin >> n >> V >> W;for (int i = 1; i <= n; i++) {cin >> v[i] >> w[i] >> c[i] >> t[i];}for (int i = 1; i <= n; i++) {for (int j = 0; j <= V; j++) {for (int k = 0; k <= W; k++) {dp[i][j][k] = dp[i-1][j][k];for (int l = 1; l <= c[i] && l * v[i] <= j && l * w[i] <= k; l++) {dp[i][j][k] = max(dp[i][j][k], dp[i-1][j-l*v[i]][k-l*w[i]] + l*t[i]);}}}}cout << dp[n][V][W] << endl;return 0;
}


这个程序首先读取输入的n,V和W,然后读取每种物品的体积,重量,数量和价值。然后,它使用四重循环来填充dp数组。在填充数组的过程中,它会考虑两种情况:一种是不选择当前的物品,另一种是选择当前的物品。最后,它输出dp[n][V][W],即前n种物品,总体积不超过V,总重量不超过W的最大价值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024软件设计师笔记之考点版(一考就过):考试前一天 考点记忆版

软件设计师之一考就过&#xff1a;成绩版 1、栈区&#xff1a;函数调用和返回&#xff0c;由系统控制&#xff1b;存非静态局部变量&#xff1b;用栈实现嵌套调用&#xff08;递归调用&#xff09;&#xff0c;逆波兰式业绩也叫后缀式&#xff0c;用栈进行求值 2、堆区&#x…

Big Data Tools插件

一些介绍 在Jetbrains的产品中&#xff0c;均可以安装插件&#xff0c;其中&#xff1a;Big Data Tools插件可以帮助我们方便的操作HDFS&#xff0c;比如 IntelliJ IDEA&#xff08;Java IDE&#xff09; PyCharm&#xff08;Python IDE&#xff09; DataGrip&#xff08;SQL …

【RabbitMQ问题踩坑】RabbitMQ设置手动ack后,消息队列有多条消息,只能消费一条,就不继续消费了,这是为什么 ?

现象&#xff1a;我发送5条消息到MQ队列中&#xff0c;同时&#xff0c;我在yml中设置的是需要在代码中手动确认&#xff0c;但是我把代码中的手动ack给关闭了&#xff0c;会出现什么情况&#xff1f; yml中配置&#xff0c;配置需要在代码中手动去确认消费者消费消息成功&…

教学技能大赛包括哪些内容

在教育的广阔天地里&#xff0c;教师的角色至关重要。他们不仅是知识的传递者&#xff0c;更是学生心灵成长的引导者。那么&#xff0c;当教师们聚集一堂&#xff0c;参加一场教学技能大赛时&#xff0c;会有哪些内容成为他们展示自我、互相学习的舞台呢&#xff1f; 教学技能大…

瓦罗兰特报错57/error code59/报错903的解决办法

《无畏契约》在注重产品设计之预&#xff0c;也注重世界观、英雄性格的塑造&#xff0c;里面的英雄灵感来源于不同的国家和地区&#xff0c;有非常本土化的特色&#xff0c;每个英雄的性格人设非常鲜明。这些人物特色让这款游戏有了新的玩法。很多玩家都进入到游戏体验。然后有…

SeeSR: Towards Semantics-Aware Real-World Image Super-Resolution

CVPR2024 香港理工大学&OPPO&bytedancehttps://github.com/cswry/SeeSR?tabreadme-ov-file#-licensehttps://arxiv.org/pdf/2311.16518#page5.80 问题引入 因为有些LR退化情况比较严重&#xff0c;所以超分之后的结果会出现语义的不一致的情况&#xff0c;所以本文训…

Python入门 2024/7/1

目录 第一个程序hello world 数据类型 注释 变量 用type类型查看数据类型 ​编辑 数据类型转换 ​编辑 标识符 运算符 字符串的三种定义方式 字符串拼接 ​编辑​编辑 字符串格式化 第一个程序hello world 区分c和python c是printf python是print print("h…

晶振在硬件系统中的位置选择与优化策略

在现代电子设备中&#xff0c;晶振扮演着至关重要的角色&#xff0c;它们提供稳定且精确的时钟信号&#xff0c;是系统心脏般的存在。然而&#xff0c;晶振的性能不仅取决于其本身的质量&#xff0c;还与它在硬件系统中的位置选择紧密相关。一个恰当的位置能够最大限度地减少外…

基于K线最短路径构造的非流动性因子

下载地址https://download.csdn.net/download/SuiZuoZhuLiu/89492221

nodejs--【Express基本使用】

10 【Express基本使用】 https://www.expressjs.com.cn/ 基于 Node.js 平台&#xff0c;快速、开放、极简的 web 开发框架。 1.Express的安装方式 Express的安装可直接使用npm包管理器上的项目&#xff0c;在安装npm之前可先安装淘宝镜像&#xff1a; npm install -g cnpm -…

领先Intel 旗舰60%,AMD锐龙9000系桌面CPU彻底杀疯了

早在月初台北国际电脑展上&#xff0c;Intel 公布了下一代低功耗移动端处理器 Lunar Lake。 也就是第二代移动版酷睿 Ultra。 而作为叫板王&#xff0c;AMD 丝毫不怂&#xff0c;不但掏出了 Ryzen AI 300 移动端处理器应对。 还抢在 Intel 之前带来了全新一代 Zen 5 架构 Ryz…

前端vue项目升级nodejs后无法运行了

问题描述&#xff1a; 运行、打包都正常的vue项目&#xff0c;在将nodejs升级到v20.14.0后&#xff0c;均报错了&#xff1a; Error: error:0308010C:digital envelope routines::unsupported opensslErrorStack: [ error:03000086:digital envelope routines::initializ…

制造业如何拥抱数字化?百数服务商的转型策略与实践

制造业作为实体经济的主体部分&#xff0c;也是核心部分&#xff0c;发挥着基础性、主导性和引领性作用。推动制造业数字化转型是实现经济高质量发展的必由之路。 在这场数字化浪潮中&#xff0c;低代码平台作为一种新兴的技术手段&#xff0c;逐渐受到了企业的青睐。其能够在…

Web基础与HTTP协议:

Web基础与HTTP协议 Web&#xff1a;就是我们所说的页面&#xff0c;打开网站所展示的页面。&#xff08;全球广域网&#xff0c;万维网&#xff09; 分布式图形信息系统。 http https &#xff08;加密的&#xff09;超文本传输协议 分布式&#xff1a;计算机系统或者应用程序…

vue3引入本地静态资源图片

一、单张图片引入 import imgXX from /assets/images/xx.png二、多张图片引入 说明&#xff1a;import.meta.url 是一个 ESM 的原生功能&#xff0c;会暴露当前模块的 URL。将它与原生的 URL 构造器 组合使用 注意&#xff1a;填写自己项目图片存放的路径 /** vite的特殊性…

SQL注入【1】——通用漏洞/SQL注入/mysql跨库/ACCESS偏移

一、知识点: 1、脚本代码与数据库前置知识 2、Access数据库注入-简易&偏移 3、MYSQL数据库注入-简易:权限跨库 二、前置知识: &#xff08;一&#xff09;SQL注入漏洞产生原理分析 SQL注入产生条件&#xff1a;根本条件&#xff1a;可控变量、特定函数。 脚本代码在实现…

教育行业的网络安全:保护学生数据与防范网络欺凌

在数字化的春风中&#xff0c;教育行业迎来了知识的繁花似锦&#xff0c;然而&#xff0c;随之而来的网络安全风暴也悄然逼近。学生数据的脆弱性与网络欺凌的阴影交织成一幅复杂的画卷&#xff0c;呼唤着教育工作者与技术专家共同编织一张密不透风的网络安全之网。本文深入探讨…

C++修饰符类型

一、存储类运算符 auto&#xff08;自动存储类&#xff0c;但在现代C中&#xff0c;它通常用于自动类型推导&#xff09; register&#xff08;建议编译器将变量存储在寄存器中&#xff0c;但现代编译器通常忽略此关键字&#xff09; static&#xff08;静态存储类&#xff…

国产压缩包工具——JlmPackCore SDK说明(二)——JlmPack_Create函数说明

一、JlmPack_Create函数说明 JlmPack_Create函数是创建jlm压缩文件的核心函数&#xff0c;最大允许CATALOG_MAX_LIMIT&#xff08;请参考Config.h&#xff09;个目录&#xff0c;意思是包括文件夹和文件在内&#xff0c;遍历整个列表最大允许CATALOG_MAX_LIMIT个目录对象&#…

《昇思25天学习打卡营第4天|数据集 Dataset》

文章目录 前言&#xff1a;今日所学&#xff1a;1. 数据集加载2. 数据集迭代3. 数据集常用操作与自定义数据集 前言&#xff1a; 今天学习的是数据集的内容。首先&#xff0c;数据是深度学习的基石&#xff0c;高质量的数据输入能够在整个深度神经网络中发挥积极作用。MindSpo…