打包 【SSL JudgeOnline 2294】
来源:互联网 发布:公交线路数据库 编辑:程序博客网 时间:2024/06/14 05:17
题目
Description
你现在拿到了许多的礼物,你要把这些礼物放进袋子里。你只有一个最多装下V 体积物品的袋子,你不能全部放进去。你也拿不动那么重的东西。你估计你能拿的最大重量为 G。现在你了解了每一个物品的完美值、重量和体积,你当然想让袋子中装的物品的完美值总和最大,你又得计划一下了。
Input
第一行:G 和 V 表示最大重量和体积。
第二行:N 表示拿到 N 件礼物。
第三到N+2行:每行3个数 Ti Gi Vi 表示各礼物的完美值、重量和体积
Output
输出共一个数,表示可能获得的最大完美值。
Sample Input
6 5
4
10 2 2
20 3 2
40 4 3
30 3 3
Sample Output
50
解题思路
这是一道二维的多重背包,就相当与在一维的情况下加多一层for语句。状态转移方程为 if (f[i][j
代码
#include<cstdio>#include<iostream>using namespace std; const int mm=100,mmm=1000; int f[mmm][mmm],a[mm],b[mm],c[mm]; int main(){ int g,v,n; scanf("%d%d\n%d",&g,&v,&n); for (int i=1;i<=n;i++) scanf("%d%d%d",&a[i],&b[i],&c[i]); //输入 for (int q=1;q<=n;q++) for (int i=g;i>=b[q];i--) for (int j=v;j>=c[q];j--)//加多一层for语句 { if (f[i][j]<f[i-b[q]][j-c[q]]+a[q]) f[i][j]=f[i-b[q]][j-c[q]]+a[q]; } printf("%d",f[g][v]); 输出 return 0; }
阅读全文
0 0
- 打包 【SSL JudgeOnline 2294】
- 加法最大【SSL JudgeOnline 1595】
- 乘积最大【SSL JudgeOnline 1007】
- 合并石子 【SSL JudgeOnline 2863】
- 砝码称重 【SSL JudgeOnline 1072】
- (ssl 2294)打包
- SSL JudgeOnline 2322——运输
- SSL JudgeOnline 1069——比赛安排
- SSL JudgeOnline 1030——麦森数
- SSL JudgeOnline 1868——谁是组长
- SSL JudgeOnline 1082——导弹拦截
- SSL JudgeOnline 2253——新型计算器
- SSL JudgeOnline 1456——骑士旅行
- SSL JudgeOnline 1194——最佳乘车
- SSL JudgeOnline 1786——麻将游戏
- SSL 2294——打包
- JudgeOnline
- SSL JudgeOnline 2244——国王的魔镜
- js导出excel表格
- Qt构建、运行、qmake的区别
- thrift/swift:ThriftMethodProcessor代码分析
- ssh免密码登陆
- C#_类和方法
- 打包 【SSL JudgeOnline 2294】
- centos6.5中搭建hadoop-2.6.0时使用rpm包安装mysql5.7.20 初始化出错解决方法
- 基础知识-域名与IP
- [UGUI][Unity插件]迷你地图小地图雷达系统及其使用方法
- SSM框架搭建(笔记迁移)
- 卷积网络原理理解
- 1. Two Sum
- C#_类的简单运用
- OpenCV. 环境搭建