(AcWing)多重背包问题 I,II
有 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
朴素算法:
#include<iostream>
#include<algorithm>
using namespace std;const int N = 110;
int v[N],w[N],s[N],f[N][N];
int n,m;int main()
{cin>>n>>m;for(int i=1;i<=n;i++) cin>>v[i]>>w[i]>>s[i];for(int i=1;i<=n;i++){for(int j=0;j<=m;j++){for(int k=0;k<=s[i]&&k*v[i]<=j;k++){f[i][j] = max(f[i][j],f[i-1][j-k*v[i]]+k*w[i]);}}}cout<<f[n][m]<<endl;
}
多重背包的二进制优化方法:
//本题考查多重背包的二进制优化方法
//将多重背包分成若干个01背包进行解题/*二进制优化(下方举例说明):
①假定物品件数s=200
②二进制形式k[n]={1,2,4,8,16,32,64,73} 其所有值相加是<=200 可以凑出[0~200]的所有数
③除开最后一个数不是二进制形式,73=200-(1+2+4+8+16+31+64)
④其余数,若定64,其中64+[0~63]->[0~127]
⑤最后一个数73,其中73+[0~127]->[0~200] */#include<iostream>
#include<algorithm>
using namespace std;const int N = 12010,M = 2010;
int v[N],w[N],f[N];
int n,m;int main()
{cin>>n>>m;int cnt = 0;for(int i=1;i<=n;i++){int a,b,s;cin>>a>>b>>s;// 输入第i种物品的体积a、价值b和数量sint k = 1;while(k<=s){cnt++;// 更新物品编号v[cnt] = k*a;// 将当前数量的物品拆分成指数级别的多个子问题,更新体积w[cnt] = k*b;// 同样更新价值s-=k;// 减去已经处理过的数量k*=2; // 指数倍增加数量}if(s>0)// 处理剩余的数量{cnt++;v[cnt] = s*a;w[cnt] = s*b;}}n = cnt;/*for(int i=1;i<=n;i++){cout<<"v[i]: "<<v[i]<<endl;cout<<"w[i]: "<<w[i]<<endl;cout<<endl;}*///变成若干个01背包问题for(int i=1;i<=n;i++){for(int j=m;j>=v[i];j--){f[j] = max(f[j],f[j-v[i]]+w[i]);}}cout<<f[m]<<endl;}
相关文章:
(AcWing)多重背包问题 I,II
有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。 输出最大价值。 输入格式 第一行两个整数 N,…...
如何把几个视频合并在一起?视频合并方法分享
当我们需要制作一个比较长的视频时,将多个视频进行合并可以使得整个过程更加高效。此外,合并视频还可以避免出现“剪辑断层”的情况,使得视频内容更加连贯,更加容易被观众理解和接受。再有,合并视频还可以减少视频文件…...
【MyBatis】初学MyBatis
目录 MyBatis 是什么?MyBatis框架搭建1.添加MyBatis框架2.设置MyBatis配置数据库的相关链接信息xml 保存路径和命名格式 根据MyBatis写法完成数据库的操作MyBatis插件MyBatis传递参数查询${} 和 #{} 有什么区别?SQL注入问题 MyBatis like查询MyBatis多表…...
深度学习训练营之DCGAN网络学习
深度学习训练营之DCGAN网络学习 原文链接环境介绍DCGAN简单介绍生成器(Generator)判别器(Discriminator)对抗训练 前置工作导入第三方库导入数据数据查看 定义模型初始化权重定义生成器generator定义判别器 模型训练定义参数模型训…...
自定义MVC增删改查
目录 mymvcdemo是自定义mvc框架的使用示例 1.1 实体类 1.2 dao方法 1.3 写Service / biz 三层架构 1.4 建action 相当于selvert 1.5 con连接MySQL 8.0 版本 1.6 配置文件 XML 1.7 主界面布局 1.8 增加界面布局 1.9 写tld配置文件 2.0 注意架包 我是已经打包好的 mymv…...
RabbitMQ 教程 | 第2章 RabbitMQ 入门
👨🏻💻 热爱摄影的程序员 👨🏻🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻🏫 一位高冷无情的编码爱好者 大家好,我是 DevO…...
双网卡如何配置DNS?我是一个仅主机模式配置静态(static)IP、一个NET或桥接(dhcp获取)
目录 一、所有主机初始化 二、135、136服务器,部署DNS调度服务器 1、更改主机主从DNS服务器的主机名称 2、安装bind软件、修改主配置文件 3、修改区域配置文件 4、修改数据文件 5、启动named服务、修改网卡信息 6、解析 7、双网卡的话记得注释以下内容、注…...
Android10: 动态隐藏导航栏和状态栏总结
(1)全屏相关设置 //(1)主题添加 <item name"android:windowFullscreen">true</item>//(2)setContentView之前添加 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCRE…...
roop 视频换脸
roop: one click face swap. 只用一张人脸图片,就能完成视频换脸。 项目地址: https://github.com/s0md3v/roopColab 部署: https://github.com/dream80/roop_colab 本文是本地部署的实践记录。 环境基础 OS: Ubuntu 22.04.2 LTSKernel: 5…...
Java类集框架(一)
目录 1.Collection集合接口 2.List 接口 (常用子类 ArrayList ,LinkedList,Vector) 3.Set 集合 接口(常用子类 HashSet LinkedHashSet,TreeSet) 4.集合输出(iterator , Enumeration) 1.Collection集合接口 Collection是集合中最大父接口,在接口中定义了核心的…...
Jsp+Ssh+Mysql实现的简单的企业物资信息管理系统项目源码附带视频指导运行教程
由jspssh(springstruts2mysql)实现的企业物资信息管理系统,系统功能比较简单,实现了基本的管理员、操作员等用户管理、物品分类管理、物品管理、入库管理、出库管理、库存预警、客户管理、供应商管理等基本功能需要的可以联系我分…...
【Spring】深究SpringBoot自动装配原理
文章目录 前言1、main入口2、SpringBootApplication3、EnableAutoConfiguration4、AutoConfigurationImportSelector4.1、selectImports()4.2、getAutoConfigurationEntry()4.3、getCandidateConfigurations()4.4、loadFactoryNames() 5、META-INF/spring.factories6、总结 前言…...
阿里云负载均衡SLB网络型NLB负载均衡架构性能详解
阿里云网络型负载均衡NLB是阿里云推出的新一代四层负载均衡,支持超高性能和自动弹性能力,单实例可以达到1亿并发连接,帮您轻松应对高并发业务。网络型负载均衡NLB具有超强性能、自动弹性伸缩、高可用、TCPSSL卸载、多场景流量分发和丰富的高级…...
JavaScript学习 -- SM4算法应用实例
SM4算法,也被称为国密算法,是中国公布的一种高效且安全的对称加密算法。在JavaScript中,我们可以通过使用CryptoJS库来实现SM4算法的加密和解密。本篇博客将为您介绍如何在JavaScript中使用SM4算法,并提供一个实际的案例。 首先&…...
【JVM】什么是双亲委派机制
文章目录 1、类加载机制2、双亲委派模型2.1、介绍2.2、为什么需要双亲委派2.3、源码解析 3、破坏双亲委派3.1、介绍3.2、破坏实现3.3、破坏双亲委派的例子 4、线程上下文类加载器 1、类加载机制 类加载阶段分为加载、连接、初始化三个阶段,而加载阶段需要通过类的全…...
网络安全 Day24-select高级用法和多表连接
select高级用法和多表连接 1. select 多子句单表高级实践1.1 select 多子句高级语法1.2 聚合函数1.3 group by 实践1.4 having 筛选1.5 order by 排序1.6 limit 2. 多表连接 1. select 多子句单表高级实践 1.1 select 多子句高级语法 where 和 having 区别是后者是分组后进行…...
JUC并发编程之volatile详解
目录 1. volatile 1.1 volatile关键字的作用 1.1.1 变量可见性 1.1.2 禁止指令重排序 1.2 volatile可见性案例 1.3 volatile非原子性案例 1.4 volatile 禁止重排序 1.5 volatile 日常使用场景 送书活动 1. volatile 在并发编程中,多线程操作共享的变量时&a…...
swing布局详解
1. 布局管理器接口 (1)说明 布局管理器接口为LayoutManager和LayoutManager2,LayoutManager2是LayoutManager的子类。 (2)常用方法 方法描述LayoutManageraddLayoutComponent(String name, Component comp) removeL…...
el-table某一列嵌套使用el-popover,使用click触发,导致页面下拉框组件无法触发弹框关闭(解决办法)
在弹框触发的方法里加上document.body.click() 即可 尝试了很多其他的方法都没用,只有这个解决了 完整代码: <el-select change"sourceChange" clearable ><el-optionv-for"option in list1":key"option.code":…...
正泰电力携手图扑:VR 变电站事故追忆反演
VR(Virtual Reality,虚拟现实)技术作为近年来快速发展的一项新技术,具有广泛的应用前景,支持融合人工智能、机器学习、大数据等技术,实现更加智能化、个性化的应用。在电力能源领域,VR 技术在高性能计算机和专有设备支…...
提升代码可读性的可视化注释工具推荐
1. 代码注释的艺术化工具推荐作为一名嵌入式开发者,我深知良好的代码注释对于项目维护和团队协作的重要性。但传统的纯文本注释往往枯燥乏味,缺乏直观性。今天我要分享几款能让你的代码注释"活起来"的神器,它们不仅能提升代码可读性…...
开源工具Wand-Enhancer功能增强技术解析与实战指南
开源工具Wand-Enhancer功能增强技术解析与实战指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 一、问题定位:WeMod功能增强的核心挑战 …...
成本控制实战:OpenClaw+Qwen3.5-9B的Token消耗优化指南
成本控制实战:OpenClawQwen3.5-9B的Token消耗优化指南 1. 为什么需要关注Token消耗? 第一次用OpenClaw执行整夜自动化任务时,早上看到账单差点从椅子上跳起来——单次任务消耗了接近18万Token。这让我意识到,如果不加控制&#…...
手把手教你复现phpMyAdmin 4.8.1本地文件包含漏洞(附详细payload)
深入解析phpMyAdmin 4.8.1文件包含漏洞的实战利用与防御 在Web应用安全领域,文件包含漏洞一直是攻击者青睐的攻击向量之一。phpMyAdmin作为全球最流行的MySQL数据库管理工具,其安全性直接影响数百万网站的数据安全。2018年曝光的phpMyAdmin 4.8.1版本本地…...
程序员副业指南:从技术到变现全攻略
CSDN程序员副业图谱技术文章大纲副业图谱概述副业图谱的定义与背景CSDN平台在程序员副业中的作用副业图谱的核心价值(技能变现、职业发展等)常见程序员副业类型技术博客与内容创作(如CSDN专栏、公众号)在线教育与课程开发…...
电力系统稳定器与静态无功补偿器联合提升暂态稳定性Simulink仿真模型研究
使用电力系统稳定器(PSS)和静态无功补偿器(SVC)提高暂态稳定性的simulink仿真模型电力系统这玩意儿最怕的就是突然来个大扰动,比如短路故障或者大负荷切换。这时候发电机的功角曲线要是收不住,分分钟全网停…...
[论文分享] ICLR 2026 Oral GEPA:反思性提示词演化可以超越强化学习
摘要 大型语言模型(LLMs)正越来越多地通过强化学习(RL)方法(如群体相对策略优化 GRPO)来适应下游任务,而这类方法通常需要数千次尝试(rollouts)才能学习新任务。我们认为…...
AI Memory 全景解析:让 Agent 真正记住你
AI Memory 全景解析:让 Agent 真正"记住"你 你有没有遇到过这种场景:明明昨天告诉 AI 助手你喜欢简洁的代码风格,今天它又开始写冗长的注释;或者你费心纠正了一个错误,下次对话它照犯不误。这就是 AI 没有记…...
Python爬虫实战:用Requests+Pandas批量抓取东方财富网全板块股票数据(附完整源码)
Python爬虫实战:构建东方财富网股票数据自动化采集系统 在金融数据分析领域,获取全面、准确的股票市场数据是量化交易、投资研究和市场监控的基础。对于Python开发者而言,如何高效地从东方财富网这类金融门户批量获取全板块股票数据ÿ…...
