混合背包(01+完全+多重背包大杂烩)

因为我们知道求解多重背包时,是将其进行二进制优化为01背包问题,那么我们就将01背包和多重背包看成一种情况,然后只要处理,完全背包和01背包问题即可(详细看下方代码)

 

 

 

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int f[N],v[N],w[N],cnt,s[N],n,m,a,b,c;
void solve() {cin>>n>>m;for(int i=1; i<=n; i++) {cin>>a>>b>>c;if(c==-1) v[cnt]=a,w[cnt]=b,s[cnt++]=1;//01背包else if(c==0) v[cnt]=a,w[cnt]=b,s[cnt++]=0;//完全背包else { //多重背包二进制优化转化为01背包for(int k=1; k<=c; k<<=1) {v[cnt]=k*a;w[cnt]=k*b;s[cnt++]=1;//01背包标记为1c-=k;}if(c>0) {v[cnt]=c*a;w[cnt]=c*b;s[cnt++]=1;}}}for(int i=1; i<=cnt; i++) {if(s[i]==1) {//01背包情况for(int j=m; j>=v[i]; j--) {f[j]=max(f[j],f[j-v[i]]+w[i]);}} else { //完全背包for(int j=v[i]; j<=m; j--) {f[j]=max(f[j],f[j-v[i]]+w[i]);}}}cout<<f[m];
}
int main() {ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);solve();return 0;
}

over~

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

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

相关文章

淘宝API接口应用场景及介绍

淘宝API&#xff08;Application Programming Interface&#xff09;是淘宝提供的一组接口&#xff0c;允许开发者通过编程方式与淘宝平台进行交互。淘宝API提供了各种功能和服务&#xff0c;包括商品详情接口&#xff0c;为商家和开发者提供了丰富的应用场景。以下是淘宝API详…

【ArcGIS Pro二次开发】(47):要素类追加至空库(批量)

本工具主要是针对国空数据入库而做的。 如果你手头已经整理了一部分要素类数据&#xff0c;但是数据格式&#xff0c;字段值可能并没有完全按照规范设置好&#xff0c;需要将这些数据按规范批量和库&#xff0c;就可以尝试用这个工具。 准备数据&#xff1a;标准空库、你已做…

kubernetes 系列教程之部署 BusyBox 容器

文章目录 在 Kubernetes 上部署 BusyBox 容器步骤一&#xff1a;创建 BusyBox Pod步骤二&#xff1a;进入 BusyBox 容器结论 Kubernetes版本 v1.19.14 在 Kubernetes 上部署 BusyBox 容器 BusyBox 是一个轻量级的 Unix 工具集合&#xff0c;它将许多常用的 Unix 工具打包在一个…

Python、Selenium实现问卷星自动填写(内含适配个人问卷的方法)

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 &#x1f4d6;所属专栏&#xff1a;Py…

SpringMVC的数据响应-直接回写json字符串

一般我们操作对象&#xff0c;将对象转变为json 这时导入json 转换工具的包 包1 包2-json数据绑定 包3 返回的就是json字符串你直接返回就行了 返回一个json格式的字符串 直接回写就加这个res.... 内部字符串要进行相应的转意 能够看到json字符串 能不能你封装对象&#xff0c…

Web3代币基本token概念

上文 HTML页面通过Web3JS连接智能合约并调用其中接口我们算是小试牛刀 用html的web3连接到我们的 智能合约。 至少确定了 我们的开发路线是没问题的 那么 我们要先了解代币这个内容 代币在以太坊中 可以说像公司的股份资产 可以说像美元 可以说像黄金等等 这个币圈建议大家不要…

【蓝图】p28-p29按键+鼠标点击实现开关门

p28-p29按键鼠标点击实现开关门 p28&#xff0c;创建门的蓝图类创建一个Actor注意&#xff08;当门的中心点不在边角上时&#xff09; 蓝图三个旋转区别按E键开关门使鼠标点击也可以开门可能遇到的bug问题 p28&#xff0c;创建门的蓝图类 actor和组件的区别、门的轴心点修改 …

【Ajax】笔记-取消请求

在进行AJAX(Asynchronous JavaScript and XML) 请求时&#xff0c;有时候我们需要取消正在进行的请求。取消请求可以帮助我们提高用户体验&#xff0c;病减少不必要的网络流量和服务器负载。 取消请求的方法 在AJAX请求中&#xff0c;我们可以使用以下方法来取消正在进行的请求…

golang 日志库logrus和lumberjack 日志切割库实践

package mainimport (log "github.com/Sirupsen/logrus""gopkg.in/natefinch/lumberjack.v2" )func main() {logger : &lumberjack.Logger{// 日志输出文件路径Filename: "/var/log/myapp/foo.log",// 日志文件最大 size, 单位是 MBMaxSiz…

【前端知识】React 基础巩固(二十五)——高阶组件

React 基础巩固(二十五)——高阶组件 高阶函数 定义&#xff1a;接收一个或多个函数作为输入 或 输出一个函数 的函数JS 中常用的map、filter、reduce都是高阶函数 高阶组件&#xff08;Higher-Order Components, HOC&#xff09; 定义&#xff1a;高阶组件是参数为函数&am…

数字 IC 设计职位经典笔/面试题(二)

共100道经典笔试、面试题目&#xff08;文末可全领&#xff09; FPGA 中可以综合实现为 RAM/ROM/CAM 的三种资源及其注意事项&#xff1f; 三种资源&#xff1a;BLOCK RAM&#xff0c;触发器&#xff08;FF&#xff09;&#xff0c;查找表&#xff08;LUT&#xff09;&#xf…

ROS:pluginlib

目录 一、前言二、概念三、作用四实际用例4.1需求4.2流程4.3准备4.4创建基类4.5创建插件4.6注册插件4.7构建插件库4.8使插件可用于ROS工具链4.8.1配置xml4.8.2导出插件 4.9使用插件4.10执行 一、前言 pluginlib直译是插件库&#xff0c;所谓插件字面意思就是可插拔的组件&…

河北幸福消费金融基于 Apache Doris 构建实时数仓,查询提速 400 倍!

本文导读&#xff1a; 随着河北幸福消费金融的客户数量和放贷金额持续上升&#xff0c;如何依托大数据、数据分析等技术来提供更好决策支持、提高工作效率和用户体验&#xff0c;成为了当前亟需解决的问题。基于此&#xff0c;公司决定搭建数据中台&#xff0c;从基于 TDH 的离…

Windows 如何锁定文件

一、背景 如果应用程序有操作本地文件的功能&#xff08;如&#xff1a;读、写、复制、移动、删除等等&#xff09;&#xff0c;那么在测试或调试该应用程序时&#xff0c;肯定需要测试文件被其他应用程序锁定时&#xff0c;你的应用程序是如何处理的。 那么如何在本地模拟文件…

Ceph(分布式文件系统)

Ceph(分布式文件系统) 1、存储基础 单机存储设备 ●DAS&#xff08;直接附加存储&#xff0c;是直接接到计算机的主板总线上去的存储&#xff09; IDE、SATA、SCSI、SAS、USB 接口的磁盘 所谓接口就是一种存储设备驱动下的磁盘设备&#xff0c;提供块级别的存储 ●NAS&#xf…

缓存滚动位置:解决keep-alive组件缓存滚动位置失败问题

怎样在vue中缓存组件&#xff1f;大家都知道&#xff0c;使用keep-alive组件即可&#xff0c;但是使用keep-alive缓存页面后&#xff0c;发现虽然页面缓存成功了&#xff0c;但是列表的滚动条又自动回到了最上方。 是的&#xff0c;keep-alive组件是不会缓存滚动位置的。 怎样…

基于springboot的地铁轨道交通运营系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

【网站搭建】3 更换博客主题—butterfly

可以到官网选择想要更换的主题Themes | Hexo 我选用的是butterflyzhangzeli/hexo-theme-butterfly: A Hexo Theme: Butterfly (github.com) 在Hexo根目录打开终端执行拉去操作 下载配套文件 npm install hexo-renderer-pug hexo-renderer-stylus 打开_config.yml文件&#xf…

TCP实现FTP功能

目录 server client makefile 运行顺序 FTP&#xff08;File Transfer Protocol&#xff09;是一种用于在计算机网络上传输文件的标准协议。 它允许用户通过网络将文件从一个计算机&#xff08;称为FTP服务器&#xff09;传输到另一个计算机&#xff08;称为FTP客户端&…

配置右键点击文件夹通过IDEA打开项目

0、 前言 你是不是每次打开idea项目时&#xff0c;都需要走一遍这样的流程&#xff1a; 1、先启动idea 2、然后手动选择项目路径 3、打开项目 于是在打开项目的路上就耗费了大量的时间。 这篇文章会教你通过配置&#xff0c;让项目可以直接通过右键打开&#xff0c;大大提升项…