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

通天之分组背包(洛谷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; }
http://www.cnnetsun.cn/news/40174.html

相关文章:

  • MOSES终极指南:快速构建药物发现分子生成模型的完整平台
  • GFPGAN人脸修复终极指南:从入门到精通的完整教程
  • 深度解析:Albumentations如何彻底解决实例分割数据增强难题
  • MissionControl终极使用指南:快速掌握开源项目部署
  • 老旧电脑AI终极方案:Paper2GUI让低配设备焕发新生
  • 深度解析链动2+1模式:私域新手的合规裂变破局之道
  • 大模型训练异常诊断终极指南:7个实操技巧快速定位问题
  • 初级菜鸟快速学习无人机电调教程:第2节
  • 解放搜索时间!SearchEngineJumpPlus让你告别重复复制粘贴
  • AI视频生成终极指南:腾讯HunyuanVideo 1.5完整部署教程
  • 46、Python 网络编程与套接字全解析
  • 微信自动答题小工具终极指南:Python开发者的效率利器
  • 实战指南:从零开始掌握Langflow自定义组件开发
  • FastAPI性能优化深度解析:从基础到高级实践
  • 5分钟掌握wandb:解决机器学习实验混乱的终极指南
  • ISO/IEC 27005:2022完整教程:信息安全风险管理终极指南
  • 巫妖易语言+js逆向+安卓逆向hook培训教程
  • 5个实用技巧彻底解决PhpSpreadsheet内存不足问题
  • JMeter接口测试之文件上传
  • 从零开始:5步搞定BDD100K数据集训练,新手也能轻松上手![特殊字符]
  • java计算机毕业设计陕西理工大学返校管理系统 高校学生返校审批与宿舍信息一体化平台 基于Vue+SpringBoot的校园返校及住宿服务系统
  • 36亿参数撬动韩国AI生态:Kakao Kanana-1.5-v-3b-instruct多模态模型深度解析
  • 如何用AI快速修复老旧视频?SeedVR2-7B让1080P修复仅需0.8秒
  • 轻量级AI新范式:重新定义企业智能部署的终极方案
  • OpenMower测试实战:从零到一的智能割草机器人验证指南
  • MotionGPT终极指南:用语言模型生成人类运动的完整方法
  • TL494 BUCK电路完整指南:从原理到PCB制作的实战教程
  • ZVT量化框架模块化设计终极指南:5步快速上手智能交易系统
  • 10、深入理解SELinux类型规则与Apol工具的使用
  • 视频生成技术革命:LightVAE如何重塑创作效率边界