news 2026/5/26 15:26:31

通天之分组背包(洛谷P1757 )

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通天之分组背包(洛谷P1757 )

题目背景

直达通天路·小 A 历险记第二篇

题目描述

自 01 背包问世之后,小 A 对此深感兴趣。一天,小 A 去远游,却发现他的背包不同于 01 背包,他的物品大致可分为 k 组,每组中的物品相互冲突,现在,他想知道最大的利用价值是多少。

输入格式

两个数 m,n,表示一共有 n 件物品,背包能承受的最大重量为 m。

接下来 n 行,每行 3 个数 ai​,bi​,ci​,表示物品的重量,利用价值,所属组数。

输出格式

一个数,最大的利用价值。

输入输出样例

输入 #1复制运行

45 3 10 10 1 10 5 1 50 400 2

输出 #1复制运行

10

说明/提示

0≤m≤1000,1≤n≤1000,1≤k≤100,ai​,bi​,ci​ 在int范围内。

/* //二维数组写法 #include <iostream> #include <vector> using namespace std; vector<vector<int>> w(101);//第i组第j件物品的重量 vector<vector<int>> v(101);//第i组第j件物品的利用价值 int dp[101][1001];//面对第i组物品 背包容量为j时的最大价值 int main(){ int m,n;//背包容量 物品件数 cin>>m>>n; for(int i=1;i<=n;i++){ int a,b,c; cin>>a>>b>>c; w[c].push_back(a); v[c].push_back(b); } for(int l=1;l<=100;l++){//遍历所有组 for(int i=1;i<=m;i++){//遍历背包容量 dp[l][i]=dp[l-1][i];//默认不选第l组物品 for(int j=0;j<w[l].size();j++){//遍历一组内所有物品 //可以选的时候比较选还时不选 if(i>=w[l][j]) dp[l][i]=max(dp[l][i],dp[l-1][i-w[l][j]]+v[l][j]); } } } cout<<dp[100][m]; return 0; } */ //一维数组写法 #include <iostream> #include <vector> using namespace std; vector<vector<int>> w(101);//第i组第j件物品的重量 vector<vector<int>> v(101);//第i组第j件物品的利用价值 int dp[1001];//背包容量为j时的最大价值 int main(){ int m,n;//背包容量 物品件数 cin>>m>>n; for(int i=1;i<=n;i++){ int a,b,c; cin>>a>>b>>c; w[c].push_back(a); v[c].push_back(b); } for(int l=1;l<=100;l++){//遍历所有组 for(int i=m;i>=0;i--){//遍历背包容量 要逆序 因为每个物品只能选择一次 for(int j=0;j<w[l].size();j++){//遍历一组内所有物品 //可以选的时候比较选还时不选 if(i>=w[l][j]) dp[i]=max(dp[i],dp[i-w[l][j]]+v[l][j]); } } } cout<<dp[m]; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/24 15:34:51

5大理由让你爱上这款HTML5游戏存档编辑器

5大理由让你爱上这款HTML5游戏存档编辑器 【免费下载链接】savegame-editors A compilation of console savegame editors made with HTML5 technologies. 项目地址: https://gitcode.com/gh_mirrors/sa/savegame-editors 还在为游戏进度丢失而烦恼吗&#xff1f;想要轻…

作者头像 李华
网站建设 2026/5/22 19:12:11

Android开发期末大作业:新手的终极通关手册

Android开发期末大作业&#xff1a;新手的终极通关手册 【免费下载链接】Android开发期末大作业资源文件 本仓库提供了一个Android开发期末大作业的资源文件&#xff0c;文件名为android开发期末大作业.zip。该资源文件包含了项目源码、任务书、实验大报告以及apk文件。通过这些…

作者头像 李华
网站建设 2026/5/15 10:11:13

如何利用德诺超声波(DELOK)技术提升医疗产品焊接的效率与品质?

在医疗产品焊接效率和质量的提升过程中&#xff0c;德诺超声波&#xff08;DELOK&#xff09;技术发挥着至关重要的作用。本文将介绍多个医疗产品超声波焊接案例&#xff0c;通过具体实例展示这一技术如何应用于实际生产中。我们将重点分析这些案例中所体现的技术亮点&#xff…

作者头像 李华
网站建设 2026/5/18 15:22:22

数据库可视化神器DBeaver:5个隐藏功能让你工作效率翻倍

数据库可视化神器DBeaver&#xff1a;5个隐藏功能让你工作效率翻倍 【免费下载链接】lottie-ios airbnb/lottie-ios: Lottie-ios 是一个用于 iOS 平台的动画库&#xff0c;可以将 Adobe After Effects 动画导出成 iOS 应用程序&#xff0c;具有高性能&#xff0c;易用性和扩展性…

作者头像 李华
网站建设 2026/5/25 13:17:03

java计算机毕业设计社区防疫管理系统 基于SpringBoot的基层社区疫情防控信息平台 JavaWeb智慧社区防疫事务一体化系统

计算机毕业设计社区防疫管理系统87mcn9&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 2020 年以来&#xff0c;疫情反复让社区成为阻断病毒传播的最前线&#xff0c;纸质登记、…

作者头像 李华
网站建设 2026/5/23 9:07:08

ZooKeeper性能优化实战:从内存瓶颈到高效连接池的完整解决方案

ZooKeeper性能优化实战&#xff1a;从内存瓶颈到高效连接池的完整解决方案 【免费下载链接】zookeeper Apache ZooKeeper 项目地址: https://gitcode.com/gh_mirrors/zo/zookeeper 在大规模分布式系统运维中&#xff0c;ZooKeeper客户端的内存瓶颈已成为制约系统扩展性的…

作者头像 李华