news 2026/5/8 3:54:56

通天之分组背包(洛谷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/4/17 10:07:39

5分钟打造专属编辑器:60+主题让你的编程环境焕然一新

5分钟打造专属编辑器&#xff1a;60主题让你的编程环境焕然一新 【免费下载链接】colour-schemes Colour schemes for a variety of editors created by Dayle Rees. 项目地址: https://gitcode.com/gh_mirrors/co/colour-schemes 还在忍受编辑器默认的单调配色吗&#…

作者头像 李华
网站建设 2026/5/1 7:32:00

SwiftUI布局终极指南:从IceCubesApp掌握自适应界面开发

SwiftUI布局终极指南&#xff1a;从IceCubesApp掌握自适应界面开发 【免费下载链接】IceCubesApp A SwiftUI Mastodon client 项目地址: https://gitcode.com/GitHub_Trending/ic/IceCubesApp 在当今移动应用开发中&#xff0c;SwiftUI布局技术已成为iOS开发者必备的核心…

作者头像 李华
网站建设 2026/4/27 13:09:09

.NET MAUI Android平台深度优化:从性能瓶颈到原生体验的进阶策略

.NET MAUI Android平台深度优化&#xff1a;从性能瓶颈到原生体验的进阶策略 【免费下载链接】maui dotnet/maui: .NET MAUI (Multi-platform App UI) 是.NET生态下的一个统一跨平台应用程序开发框架&#xff0c;允许开发者使用C#和.NET编写原生移动和桌面应用&#xff0c;支持…

作者头像 李华
网站建设 2026/5/2 0:50:33

终极指南:如何用AI大模型快速构建智能网页数据提取系统

终极指南&#xff1a;如何用AI大模型快速构建智能网页数据提取系统 【免费下载链接】llm-scraper Turn any webpage into structured data using LLMs 项目地址: https://gitcode.com/GitHub_Trending/ll/llm-scraper 在当今信息爆炸的时代&#xff0c;你是否还在为从海…

作者头像 李华
网站建设 2026/5/6 6:39:48

java计算机毕业设计社区服务网站 基于SpringBoot的社区一站式服务平台 JavaWeb智慧社区在线服务系统

计算机毕业设计社区服务网站584it9&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。居委会每天被“在哪开居住证明”“怎么申请老年证”“昨晚楼道灯坏了”这类电话包围&#xff0…

作者头像 李华
网站建设 2026/5/2 9:43:14

Rocket.Chat桌面应用终极指南:跨平台团队协作的完美解决方案

还在为团队沟通效率低下而烦恼吗&#xff1f;是否厌倦了在浏览器和各类通讯工具之间频繁切换&#xff1f;Rocket.Chat桌面应用正是你需要的答案。这款基于Electron框架开发的跨平台即时通讯工具&#xff0c;将为你带来前所未有的团队协作体验。 【免费下载链接】Rocket.Chat.El…

作者头像 李华