动态规划(算法竞赛、蓝桥杯)--混合背包DP

1、B站视频链接:E14 背包DP 混合背包_哔哩哔哩_bilibili

de716fb893234c29bd0e4ca9e098db1c.png

305cbea99daa410d84a6d68e511d9138.png

#include <bits/stdc++.h> 
using namespace std;
const int N=1010,M=10000;
int a[M],b[M],c[M];//体积、价值、类型 
int f[N];

int main(){
	int n,m,v,w,s;
	cin>>n>>m;
	int num=1;
	
	for(int i=1;i<=n;i++){
		scanf("%d%d%d",&v,&w,&s);
		if(s==0){//完全背包 
			a[num]=v;
			b[num]=w;
			c[num++]=0;//背包类型 
		}else{
			if(s==-1){
				s=1;
			}
			int j=1;
			int k=1;
			while(s>=k){
				a[num]=k*v;
				b[num]=k*w;
				c[num++]=1;
				s-=k;
				k<<=1;
			}
			if(s){
				a[num]=s*v;
				b[num]=s*w;
				c[num++]=1;
			}
		}
	}
	for(int i=1;i<num;i++){
		if(c[i]==1){
			for(int j=m;j>=a[i];j--){
				f[j]=max(f[j],f[j-a[i]]+b[i]);
			}
		}else{
			for(int j=a[i];j<=m;j++){
				f[j]=max(f[j],f[j-a[i]]+b[i]);
			}
		}
	}
	cout<<f[m];
	return 0;
}

009d6cb07363432db0ed9ddbd4b82a09.png

#include <bits/stdc++.h> 
using namespace std;
int f[1010],g[1010];
int n,m;
int q[1010];

void ZeroOnePack(int v,int w){
	for(int j=m;j<=v;j--){
		f[j]=max(f[j],f[j-v]+w);
	}
}
void CompletePack(int v,int w){
	for(int j=v;j<=m;j++){
		f[j]=max(f[j],f[j-v]+w);
	}
}
void MultiplePack(int v,int w,int s){
	memcpy(g,f,sizeof(f));
	for(int j=0;j<v;j++){
		int h=0,t=-1;
		for(int k=j;k<=m;k+=v){
			if(h<=t&&q[k]<k-s*v)h++;
			if(h<=t)f[k]=max(g[k],g[q[h]]+(k-q[h])/v*w);
			while(h<=t&&g[k]>=g[q[t]]+(k-q[t])/v*w)t--;
			q[++t]=k;
		}
	}
}
int main(){
	int v,w,s;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		scanf("%d %d %d",&v,&w,&s);
		if(s==-1){
			ZeroOnePack(v,w);
		}else if(s==0){
			CompletePack(v,w);
		}else{
			MultiplePack(v,w,s);
		}
	}
	cout<<f[m];
	return 0;
}

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

精准杜绝医疗设备漏费的智慧防线

19339904493&#xff08;康&#xff09; 医疗设备漏费管理系统&#xff0c;如同医疗设备的智慧守望者&#xff0c;时刻守护着患者的权益与医院的利益。它运用先进的人工智能算法&#xff0c;深度读取设备内部图像与项目信息&#xff0c;通过深度学习图像并分析患者的检查部位、…

如何保护服务器的安全

互联网的迅速发展&#xff0c;让很多企业都很重视网络技术的使用&#xff0c;但是网络的传播速度比较快&#xff0c;同时容易造成数据、隐私方面的泄露现在每个企业基本有自己的服务器。有几点需要注意&#xff0c;可以参考&#xff1a; 1.基础密码安全 最基本的安全就是密码安…

Docker数据卷-自定义镜像

一.数据卷 1.1数据卷的基本使用 数据卷是一个特殊的目录&#xff0c;用于在Docker容器中持久化和共享数据。 数据卷的主要特点包括&#xff1a; 数据持久性&#xff1a;数据卷允许您在容器的生命周期之外保持数据的持久性。即使容器被删除&#xff0c;数据卷中的数据依然存在&…

礼遇派兑|神工坊龙年豪礼大放送,千元惊喜等你来领

新年伊始 万象更新 转眼间 已全面复工复学啦&#xff01; 前方警告⚠️&#xff1a;“年后再说”已无退路 万千“子涵”在线求助 别担心&#xff01;神工坊替你解决&#xff01; 神工坊高性能工业仿真平台 以国家超级计算无锡中心 丰富的软件资源和海量的硬件资源为支撑…

接口测试实战--mock测试、日志模块

一、mock测试 在前后端分离项目中,当后端工程师还没有完成接口开发的时候,前端开发工程师利用Mock技术,自己用mock技术先调用一个虚拟的接口,模拟接口返回的数据,来完成前端页面的开发。 接口测试和前端开发有一个共同点,就是都需要用到后端工程师提供的接口。所以,当…

本届挑战赛季军方案:构建由大模型辅助的基于多模态数据融合的异常检测、根因诊断和故障报告生成系统

DDopS团队荣获本届挑战赛季军。该团队来自中山大学计算机学院Intelligent DDS 实验室。实验室主要方向为云计算、智能运维(AIOps)、软件定义网络、分布式软件资源管理与优化、eBPF 性能监控与优化等。 选题分析 基于对竞赛数据的洞察和对时代趋势的考量&#xff0c;我们尝试应…

苹果Vision Pro芯片级拆解:339S01186传感器协处理器,电源管理芯片:343S00627、343S00628、343S00629

2月2日&#xff0c;苹果官方发售Vision Pro后&#xff0c;引发了抢购潮&#xff0c;产品“秒光”&#xff0c;甚至将起售价 3499 美元一度炒到近 9 万元人民币的代购价。 日前知名维修网站iFixit又一次“首拆”了苹果Vision Pro&#xff0c;每一块电路板、每一颗螺丝钉、每一颗…

阿里云4核16G服务器多少钱?幻兽帕鲁配置报价

2024阿里云幻兽帕鲁专用服务器价格表&#xff1a;4核16G幻兽帕鲁专用服务器26元一个月、149元半年&#xff0c;默认10M公网带宽&#xff0c;8核32G幻兽帕鲁服务器10M带宽价格90元1个月、271元3个月。阿里云提供的Palworld服务器是ECS经济型e实例&#xff0c;CPU采用Intel Xeon …

FPGA高端项目:FPGA基于GS2971的SDI视频接收转HDMI输出,提供3套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI图像缩放应用本方案的SDI纯verilog图像缩放视频拼接应用本方案的SDI HLS图像缩放视频拼接应用本方案的SDI视频编码动态字符叠加输出应用本方案的SDI视频编码多路视频融合视频叠加应用本方案的SDI视频…

npm 最新淘宝镜像配置 + nrm工具配置及使用

一、前言 npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com &#xff08;HTTPS 证书到期不能用了&#xff09; 二、直接命令配置 1、执行以下命令即可切换淘宝源 npm config set registry https://registry.npmmirror.com/2、执行以下命令即可…

学不动系列-eslint

ESLint 介绍在最简单的项目使用eslint,包括eslint的vscode插件的使用&#xff0c;自动化格式代码&#xff0c;自动化修复代码&#xff0c;和webpack&#xff0c;vite的配合使用 单独使用 第一步&#xff1a;构建一个空项目 npm init -y 在根目录新建文件./src/app.js&#…

C++重点---STL简介

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、STL简介 STL&#xff08;Standard Template Library&#xff09;是C标准库中的一个重要组成部分&#xff0c;它提供了…

跳跃游戏Ⅱ

问题 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n - …

SpringBoot整合rabbitmq-直连队列,没有交换机(一)

说明&#xff1a;本文章只是springboot和rabbitmq的直连整合&#xff0c;只使用队列生产和消费消息&#xff0c;最简单整合&#xff01; 工程图&#xff1a; A.总体pom.xml <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://…

压力测试工具Jmeter的下载与使用

1、进入官网下载Jmeter https://jmeter.apache.org/ 国内镜像&#xff08;下载的慢的话可以用国内镜像下载&#xff09; https://mirrors.cloud.tencent.com/apache/jmeter/binaries/ 2、跳转到下载页面 3、根据不同系统下载相应版本的Jmeter压缩包&#xff0c;Linux系统下载…

精品springboot校园失物招领系统

《[含文档PPT源码等]精品基于springboot校园失物招领系统[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; Java——涉及技术&#xff1a; 前端使用技术&#xff1a;HTML5,…

机器学习——CBOW基于矩阵(手动实操)

基于矩阵的CBOW基础算法&#xff0c;其实是负采样的前提算法。 主要是根据 预测准确率为22%左右 说实话。。。我已经很满意了&#xff0c;至少这个东西是可以去预测的&#xff0c;至于预测为什么不正确&#xff0c;我目前猜测主要还是跟词频有关。 在结果中&#xff0c;an…

前端架构: 脚手架之多package项目管理和架构

多package项目管理 1 &#xff09;多package项目管理概述 通常来说&#xff0c;当一个项目变大了以后&#xff0c;我们就要对这个项目进行拆分在前端当中&#xff0c;对于项目进行拆分的方式&#xff0c;通常把它称之为javascript包管理需要使用一个工具叫做 npm (Node Packag…

OpenCV实现目标追踪

目录 准备工作 语言&#xff1a; 软件包&#xff1a; 效果演示 代码解读 &#xff08;1&#xff09;导入OpenCV库 &#xff08;2&#xff09;使用 cv2.VideoCapture 打开指定路径的视频文件 &#xff08;3&#xff09;使用 vid.read() 读取视频的第一帧&#xff0c;ret…

clickhouse 随心所欲的聚合模型-AggregatingMergeTree

clickhouse 强大的 MergeTree 系列引擎令人信服&#xff0c;其 ReplacingMergeTree、SummingMergeTree 在数据唯一性和汇总场景中表现非凡。但你是否还有保留最小(大)、平均等预聚合需求&#xff0c;甚至在一个模型中既有唯一性语意也有汇总、最小、最大、平均值语意该如何处理…