news 2026/4/3 5:03:50

通天之分组背包(洛谷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/3/30 0:37:04

数据资产管理实践白皮书6.0:三步掌握企业数据价值

数据资产管理实践白皮书6.0&#xff1a;三步掌握企业数据价值 【免费下载链接】数据资产管理实践白皮书6.0发布与解读PPT分享 数据资产管理实践白皮书6.0发布与解读PPT 项目地址: https://gitcode.com/Open-source-documentation-tutorial/cb9f0 价值主张&#xff1a;立…

作者头像 李华
网站建设 2026/3/24 14:04:17

ChatAI-Cpp终极指南:快速构建C++人工智能聊天应用

ChatAI-Cpp终极指南&#xff1a;快速构建C人工智能聊天应用 【免费下载链接】ChatAI-Cpp 基于openai-cpp项目&#xff0c;用于MSVC的仅供与AI聊天的轻量级库(C)。 项目地址: https://gitcode.com/user0x0001/ChatAI-Cpp 还在为C项目集成AI功能而烦恼吗&#xff1f;想要在…

作者头像 李华
网站建设 2026/3/22 19:20:10

PLabel:5个核心功能带你轻松实现高效数据标注

PLabel&#xff1a;5个核心功能带你轻松实现高效数据标注 【免费下载链接】PLabel 半自动标注系统是基于BS架构&#xff0c;由鹏城实验室自主研发&#xff0c;集成视频抽帧&#xff0c;目标检测、视频跟踪、ReID分类、人脸检测等算法&#xff0c;实现了对图像&#xff0c;视频的…

作者头像 李华
网站建设 2026/4/2 23:07:32

Pock高效使用指南:10个必学的Touch Bar管理技巧

Pock高效使用指南&#xff1a;10个必学的Touch Bar管理技巧 【免费下载链接】pock Widgets manager for MacBook Touch Bar 项目地址: https://gitcode.com/gh_mirrors/po/pock 作为MacBook Touch Bar的终极小部件管理器&#xff0c;Pock让您能够个性化定制触控栏&#…

作者头像 李华
网站建设 2026/4/3 1:22:37

Stats系统监控工具:告别性能焦虑的智能管理方案

Stats系统监控工具&#xff1a;告别性能焦虑的智能管理方案 【免费下载链接】stats exelban/stats: 这是一个跨平台的系统状态监控工具&#xff0c;可以实时显示CPU、内存、磁盘、网络等资源的使用情况&#xff0c;并以简洁美观的图形界面呈现给用户。 项目地址: https://git…

作者头像 李华
网站建设 2026/3/23 21:22:34

java计算机毕业设计社区分类信息管理系统 基于SpringBoot的社区生活信息共享平台 JavaWeb社区便民服务信息整合系统

计算机毕业设计社区分类信息管理系统n7yx39&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 小区里的招聘、租房、二手闲置、活动公告越贴越厚&#xff0c;风吹雨淋三天就掉&…

作者头像 李华