news 2026/4/16 11:56:07

通天之分组背包(洛谷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/16 11:55:01

Ruby爬虫框架Wombat:用优雅DSL轻松提取结构化数据

Ruby爬虫框架Wombat&#xff1a;用优雅DSL轻松提取结构化数据 【免费下载链接】awesome-crawler A collection of awesome web crawler,spider in different languages 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-crawler 还在为网页数据提取而烦恼吗&#x…

作者头像 李华
网站建设 2026/4/16 11:55:19

WinCC 7.4 完整安装指南与资源获取

WinCC 7.4 完整安装指南与资源获取 【免费下载链接】WinCC7.4安装包下载 本仓库提供SIMATIC WINCC 7.4 安装包的完整版下载。该安装包包含了WinCC 7.4的所有必要组件&#xff0c;适用于需要安装或升级WinCC 7.4的用户 项目地址: https://gitcode.com/Open-source-documentati…

作者头像 李华
网站建设 2026/4/16 7:22:10

Citybound道路系统完整指南:5步掌握智能路网设计技巧

Citybound道路系统完整指南&#xff1a;5步掌握智能路网设计技巧 【免费下载链接】citybound A work-in-progress, open-source, multi-player city simulation game. 项目地址: https://gitcode.com/gh_mirrors/ci/citybound Citybound道路系统是这款开源多玩家城市模拟…

作者头像 李华
网站建设 2026/4/16 10:39:56

终极hekate快捷启动指南:3分钟实现Switch一键直达

还在为Nintendo Switch每次启动时繁琐的系统选择而烦恼吗&#xff1f;传统启动方式不仅耗时费力&#xff0c;还容易在关键时刻选错选项。本指南将为你展示hekate快捷启动的实用技巧&#xff0c;让你告别重复操作&#xff0c;轻松实现一键直达常用系统或工具。 【免费下载链接】…

作者头像 李华
网站建设 2026/4/16 9:01:05

蛋白质工程新纪元:用AI精准预测氨基酸突变的结构影响

蛋白质工程新纪元&#xff1a;用AI精准预测氨基酸突变的结构影响 【免费下载链接】alphafold Open source code for AlphaFold. 项目地址: https://gitcode.com/GitHub_Trending/al/alphafold 你是不是也曾为这些问题困扰过&#xff1a;&#x1f914; 精心设计的蛋白质突…

作者头像 李华
网站建设 2026/4/15 12:09:15

腾讯Hunyuan3D-2mv终极指南:多视角3D生成效率提升40倍

腾讯Hunyuan3D-2mv终极指南&#xff1a;多视角3D生成效率提升40倍 【免费下载链接】Hunyuan3D-2mv Hunyuan3D-2mv是由腾讯开源的先进3D生成模型&#xff0c;基于Hunyuan3D-2优化&#xff0c;支持多视角图像控制的高质量3D资产生成。它采用扩散模型技术&#xff0c;能够根据用户…

作者头像 李华