当前位置: 首页 > news >正文

背包问题(三)

文章目录

    • 一、二维费用的背包问题
    • 二、潜水员
    • 三、机器分配
    • 四、开心的金明
    • 五、有依赖的背包问题

一、二维费用的背包问题

题目链接
在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
const int M = 110;
int n,m,kg;
int f[M][M];int main()
{cin >> n >> m >> kg;for(int i = 0;i < n;i ++){int v,M,w;cin >> v >> M >> w;for(int j = m;j >= v;j --)for(int k = kg;k >= M;k --){f[j][k] = max(f[j][k], f[j - v][k - M] + w);}}cout << f[m][kg];return 0;
}

二、潜水员

题目链接
在这里插入图片描述
题解来源:小呆呆 ,

这个题相较于二维费用的背包问题,稍稍有一点改变,二维费用的背包模板是体积不超过V,重量不超过M,但是这个题是体积至少为V,重量至少为M。

对比两题的思路,二维费用的背包问题,求的是不能超过体积V,重量M的情况下,能拿到价值的最大值。而本题是至少需要体积V,重量M的情况下,能拿到价值的最小值。就拿体积来说,至少需要多少体积,也就是说有体积比需要的体积大的物品还是能用得到,例如f[3][5],至少需要3个体积,5个重量,求能拿到价值的最小值,现在只有一个物品,体积是4,重量是4,价值w,它说至少需要3个体积,那么体积是4还是可以用到,只是多了1个体积没用占着而已,不影响其价值。因此若用了这个物品,则变成了求f[0][1] + w,表示体积已经不再需求了,只需要0个体积即可

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;int n,m,k;
const int M = 25, N = 82;
int f[M][N];
const int INF = 0x3f3f3f3f;int main()
{cin >> m >> n;cin >> k;memset(f, 0x3f, sizeof f);f[0][0] = 0;for(int i = 1;i <= k;i ++){int a,b,c;cin >> a >> b >> c;for(int j = m;j >= 0;j --)for(int x = n;x >= 0;x --){f[j][x] = min(f[j][x], f[max(0,j - a)][max(0, x - b)] + c);}}cout << f[m][n];return 0;
}

三、机器分配

题目链接
在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;int n,m;
const int N = 12, M = 18;
int f[N][M];
int ne[M];
int w[N][M];
int way[M];int main()
{cin >> n >> m;for(int i = 1;i <= n;i ++)for(int j = 1;j <= m;j ++)cin >> w[i][j];for(int i = 1;i <= n;i ++){for(int j = 0;j <= m;j ++){for(int k = m;k >= j;k --)f[i][k] = max(f[i][k], f[i - 1][k - j] + w[i][j]);}}cout << f[n][m] << endl;int j = m;for(int i = n;i >= 1;i --)for(int k = 0;k <= m;k ++)if(f[i][j] == f[i - 1][j - k] + w[i][k]){way[i] = k;j -= k;break;}for(int i = 1;i <= n;i ++) cout << i << " " << way[i] << endl;return 0;
}

四、开心的金明

在这里插入图片描述

这个题很容易,就是一个01背包问题

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 30100;
int n,m;
int f[N];int main()
{cin >> n >> m;for(int i = 1;i <= m;i ++){int v,w;cin >> v >> w;for(int j = n;j >= v;j --)f[j] = max(f[j], f[j - v] + v * w);}cout << f[n];return 0;
}

五、有依赖的背包问题

题目链接
在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 110;
int head[N],e[N],ne[N],idx;
int n,m;
int v[N],w[N],p;
bool st[N];
int f[N][N];void add(int a,int b)
{e[idx] = b, ne[idx] = head[a], head[a] = idx ++;
}void dfs(int u)
{for(int i = head[u]; ~i;i = ne[i]){int son = e[i];dfs(e[i]);for(int j = m - v[u];j >= 0;j --){for(int k = 0;k <= j;k ++)f[u][j] = max(f[u][j], f[u][j - k] + f[son][k]);}}for(int i = m;i >= v[u];i --) f[u][i] = f[u][i - v[u]] + w[u];for(int i = 0;i < v[u];i ++) f[u][i] = 0;
}int main()
{cin >> n >> m;memset(head, -1,sizeof head);int root;for(int i = 1;i <= n;i ++){cin >> v[i] >> w[i] >> p;if(p == -1) {   root = i;continue;}add(p, i);st[i] = true;}dfs(root);cout << f[root][m];return 0;
}

相关文章:

背包问题(三)

文章目录 一、二维费用的背包问题二、潜水员三、机器分配四、开心的金明五、有依赖的背包问题 一、二维费用的背包问题 题目链接 #include<iostream> #include<algorithm> using namespace std; const int M 110; int n,m,kg; int f[M][M];int main() {cin >…...

linux之调度管理(2)-调度器 如何触发运行

一、调度器是如何在程序稳定运行的情况下进行进程调度的 1.1 系统定时器 因为我们主要讲解的是调度器&#xff0c;而会涉及到一些系统定时器的知识&#xff0c;这里我们简单讲解一下内核中定时器是如何组织&#xff0c;又是如何通过通过定时器实现了调度器的间隔调度。首先我们…...

深入理解 Vue 3 中的 Props

深入理解 Vue 3 中的 Props Vue 3 引入了 Composition API 等新特性&#xff0c;组件的定义和使用也变得更为灵活。而在组件通信中&#xff0c;Props&#xff08;属性&#xff09;扮演了重要角色&#xff0c;帮助父组件向子组件传递数据&#xff0c;形成单向的数据流动&#x…...

校园周边美食探索及分享平台

摘要&#xff1a; 美食一直是与人们日常生活息息相关的产业。传统的电话订餐或者到店消费已经不能适应市场发展的需求。随着网络的迅速崛起&#xff0c;互联网日益成为提供信息的最佳俱渠道和逐步走向传统的流通领域&#xff0c;传统的美食业进而也面临着巨大的挑战&#xff0…...

内网对抗-信息收集篇SPN扫描DC定位角色区域定性服务探针安全防护凭据获取

知识点&#xff1a; 1、信息收集篇-网络架构-出网&角色&服务&成员 2、信息收集篇-安全防护-杀毒&防火墙&流量监控 3、信息收集篇-密码凭据-系统&工具&网站&网络域渗透的信息收集&#xff1a; 在攻防演练中&#xff0c;当完成边界突破后进入内…...

石墨舟氮气柜:半导体制造中的关键保护设备

石墨舟是由高纯度石墨材料制成的&#xff0c;主要用于承载硅片或其他基板材料通过高温处理过程&#xff0c;是制造半导体器件和太阳能电池片的关键设备之一。 石墨舟在空气中容易与氧气发生反应&#xff0c;尤其是在高温处理后&#xff0c;表面可能更为敏感&#xff1b;石墨舟具…...

性能调优专题(7)之Innodb底层原理与Mysql日志机制深入剖析

一、MYSQL的内部组件结构 大体来说,Mysql可以分为Server层和存储引擎层两部分。 1.1 Server层 Server层主要包括连接器、查询缓存、词法分析器、优化器等。涵盖MYSQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功…...

量子计算及其在密码学中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 量子计算及其在密码学中的应用 量子计算及其在密码学中的应用 量子计算及其在密码学中的应用 引言 量子计算概述 定义与原理 发展…...

LSM树 (Log-Structured Merge Tree)、Cuckoo Hashing详细解读

一、LSM 树 (Log-Structured Merge Tree) LSM 树&#xff08;Log-Structured Merge Tree&#xff09; 是一种专为 高效写入和批量更新 设计的数据结构&#xff0c;特别适合于 高写入密度 的应用场景&#xff0c;如数据库和文件系统。它广泛用于 NoSQL 数据库&#xff08;如 Ca…...

VMware中的重要日志文件 vobd.log 学习总结

最近几天处理完毕存储的故障后&#xff0c;接着就是host方面的问题&#xff0c;Vmware无法访问到存储&#xff0c;其实存储的LUN和POOL 已经online ready了&#xff0c;但是主机还是访问不到存储。 这里介绍下Vmware中的一个重要的日志文件 vobd.log&#xff0c;该文件对于分析…...

MyBatis 返回 Map 或 List<Map>时,时间类型数据,默认为LocalDateTime,响应给前端默认含有‘T‘字符

一、问题 MyBatis 返回 Map 或 List时&#xff0c;时间类型数据&#xff0c;默认为LocalDateTime Springboot 响应给前端的LocalDateTime&#xff0c;默认含有’T’字符&#xff0c;如何统一配置去掉 二、解决方案 1、pom.xml 增加依赖&#xff08;2024.11.6 补充&#xff…...

ASR TP

ASR翱捷科技 ASR kernel 5.10 android14 ASR EVB平台 jd9365tr(jadard) spi 1.驱动: 跟mtk驱动一样,放进去,不用改 asr_android14.0_alpha\asr\kernel\linux\drivers\input\touchscreen\jadard makefile: asr_android14.0_alpha\asr\kernel\linux\drivers\input\t…...

Tomcat与Nginx之全面比较

概况 Apache Tomcat Apache Tomcat&#xff0c;通常简称为Tomcat&#xff0c;是一个开源的Web应用服务器&#xff0c;它主要用于运行Java Web应用程序。Tomcat实现了Java Servlet和JavaServer Pages&#xff08;JSP&#xff09;技术&#xff0c;这些是Java EE规范的一部分。To…...

这是一个bug求助帖子--安装kali 遇坑

第一个报错 介质&#xff1a;kali-linux-2024.1-live-amd64 环境&#xff1a;Dell笔记本 i510代cpu 现象及操作 安装完以后 然后我换了个国内的源进行了以下操作 apt-get update&#xff1a;更新源列表 apt-get upgrade&#xff1a;更新所有可以更新的软件包 然后进行清理。…...

IntelliJ Idea设置自定义快捷键

我IDEA的快捷键是自己修改成了和Eclipse相似&#xff0c;然后想要跳转到某个方法的上层抽象方法没有对应的快捷键&#xff0c;IDEA默认的是Ctrl U &#xff08;Windows/Linux 系统&#xff09; 或 Command U &#xff08;Mac 系统&#xff09;&#xff0c;但是我的不起作用&a…...

AlohaKit:一组.NET MAUI绘制的开源控件

前言 今天大姚给大家分享一组.NET MAUI绘制的开源、免费&#xff08;MIT License&#xff09;UI控件库&#xff1a;AlohaKit。 MAUI介绍 .NET MAUI是一个开源、免费&#xff08;MIT License&#xff09;的跨平台框架&#xff08;支持Android、iOS、macOS 和 Windows多平台运…...

Windows 实例磁盘空间管理

操作场景 本文以操作系统为 Windows Server 2012 R2 的腾讯云云服务器为例&#xff0c;介绍如何在 Windows 实例磁盘空间不足的情况下进行空间释放操作&#xff0c;及如何进行磁盘的日常维护。 操作步骤 释放磁盘空间 您可通过 删除容量较大文件 或 删除不需要的文件 &…...

【动手学电机驱动】STM32-FOC(6)基于 IHM03 的无感方波控制

STM32-FOC&#xff08;1&#xff09;STM32 电机控制的软件开发环境 STM32-FOC&#xff08;2&#xff09;STM32 导入和创建项目 STM32-FOC&#xff08;3&#xff09;STM32 三路互补 PWM 输出 STM32-FOC&#xff08;4&#xff09;IHM03 电机控制套件介绍 STM32-FOC&#xff08;5&…...

【数据结构】汇编语言和机器语言的‘数据结构‘

前言 汇编语言没有像高级语言&#xff08;如 C#、Java 等&#xff09;那样直接提供数据结构&#xff08;如数组、链表、树、栈等&#xff09;&#xff0c;但是可以通过对内存地址和寄存器的操作来实现这些数据结构。汇编语言的核心是直接操控计算机的内存&#xff0c;因此所有…...

hadoop+spark中8088,18080,19888,4040端口页面的区别

在hadoop集群中&#xff0c;本身就有 9870端口&#xff0c;8088端口&#xff0c;19888端口 这三个页面&#xff0c;当使用spark作为计算引擎时&#xff0c;会多出8080&#xff0c;4040&#xff0c;18080这三个页面&#xff0c;页面就很多了&#xff0c;现在明确的辨别一下。 单…...

3D打印模型优化实战:从问题诊断到高效输出的完整指南

3D打印模型优化实战&#xff1a;从问题诊断到高效输出的完整指南 【免费下载链接】BlenderUSDZ Simple USDZ file exporter plugin for Blender3D 项目地址: https://gitcode.com/gh_mirrors/bl/BlenderUSDZ 1. 痛点定位&#xff1a;3D打印模型导出的四大核心障碍 诊断…...

用极空间 NAS 搭专属博客:Typecho 部署全攻略,把创作握在自己手里

前言 作为常年折腾各类私有部署工具的科技爱好者&#xff0c;我一直觉得「真正的创作自由」&#xff0c;藏在自己能掌控的服务器里。试过不少博客程序&#xff0c;要么配置繁琐&#xff0c;要么资源占用高&#xff0c;直到把 Typecho 和极空间 NAS 结合&#xff0c;才找到最舒…...

HunyuanVideo-Foley应用场景:播客自动化剪辑、TTS语音情感增强音效

HunyuanVideo-Foley应用场景&#xff1a;播客自动化剪辑与TTS语音情感增强音效 1. 镜像概述与核心能力 HunyuanVideo-Foley私有部署镜像是一款专为音视频生成任务优化的AI工具包&#xff0c;特别针对RTX 4090D 24GB显存显卡进行了深度优化。这个开箱即用的解决方案将视频生成…...

从4G到RedCap:手把手教你升级老旧工业设备的无线通信模块(附功耗测试数据)

从4G到RedCap&#xff1a;工业设备无线通信模块升级实战指南 在工业物联网快速发展的今天&#xff0c;老旧设备的通信模块升级成为许多工厂面临的现实挑战。传统4G模块虽然稳定可靠&#xff0c;但面对5G时代RedCap技术带来的低功耗、低成本优势&#xff0c;升级改造已成为提升设…...

京东云GPU服务器省钱攻略:如何根据业务需求灵活选择计费模式和虚拟化方案

京东云GPU服务器成本优化实战指南&#xff1a;精准匹配业务需求的选型策略 在AI与高性能计算领域&#xff0c;GPU服务器已成为企业技术基础设施的核心组件。然而&#xff0c;面对复杂的计费模式、多样的硬件配置以及差异化的虚拟化方案&#xff0c;许多技术决策者常常陷入"…...

收藏!AI大模型产品经理学习路线(2026最新),从零基础到专家,收藏这一篇就够

一、AI产品经理和和通用型产品经理的异同&#xff1a; 市面上不同的公司对产品经理的定位有很大的差别&#xff0c;一名合格的产品经理是能对软件产品整个生命周期负责的人。 思考框架相同&#xff1a; AI产品经理和通用型软件产品经理的底层思考框架是一样的&#xff0c;都是…...

League Akari:5大核心解决方案提升英雄联盟游戏体验

League Akari&#xff1a;5大核心解决方案提升英雄联盟游戏体验 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一…...

2026年小学英语学习小程序排行榜

对于小学生而言&#xff0c;英语学习早已打破“只背单词、只刷习题”的单一模式&#xff0c;听、说、读、写全方位同步训练&#xff0c;才是提升英语能力的关键。2026年&#xff0c;市面上涌现出多款优质小学英语学习小程序&#xff0c;覆盖单词记忆、听力训练、阅读提升、语法…...

英雄联盟智能工具League Akari:提升游戏体验的终极指南

英雄联盟智能工具League Akari&#xff1a;提升游戏体验的终极指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是…...

OpenClaw任务编排:GLM-4.7-Flash复杂流程设计

OpenClaw任务编排&#xff1a;GLM-4.7-Flash复杂流程设计 1. 为什么需要任务编排 去年我接手了一个市场分析项目&#xff0c;需要每周手动收集竞品动态并生成报告。重复性的复制粘贴和格式调整消耗了大量时间&#xff0c;直到发现OpenClaw可以通过编排GLM-4.7-Flash模型实现全…...