装箱I(01背包)
2024-08-30 03:00:30
描述
给两个有一定容量的箱子,往里面装宝石(宝石总容量不能超过箱子容量),不同的宝石有不同的容量和价值。求两个箱子里最大宝石的价值。
输入
line 1: Input n; n:表示宝石数量 1<n<100
line 2: Input C1,C2; C1:第一个箱子的容量 C2:第二个箱子的容量 1<C1,c2<100
line 3~n+3-1: Ci,Vi Ci:宝石容量 Vi:宝石价值
计算后的算有数据都在2^31内.
输出
两个箱子里的宝石的最大价值。
样例输入
4
10 20
5 20
11 15
6 8
8 9
6
10 20
6 8
4 15
8 9
4 16
15 20
3 15
样例输出
44
66
题目分析:
01背包,多开一维。
#include <bits/stdc++.h>
using namespace std;
int dp[][],w[],v[];
int main()
{
int n,c1,c2;
while(~scanf("%d",&n))
{
memset(dp,,sizeof dp);
scanf("%d%d",&c1,&c2);
for(int i=;i<=n;i++)
scanf("%d%d",&w[i],&v[i]);
for(int i=;i<=n;i++)
for(int j=c1;j>=;j--)
for(int k=c2;k>=;k--)
{
if(j>=w[i]) dp[j][k]=max(dp[j][k],dp[j-w[i]][k]+v[i]);
if(k>=w[i]) dp[j][k]=max(dp[j][k],dp[j][k-w[i]]+v[i]);
}
printf("%d\n",dp[c1][c2]);
}
return ;
}
最新文章
- Java实现Mysql数据库自动备份
- Hdu 1009 FatMouse&#39; Trade
- Fragment中添加ListView而不使用ListFragment
- hdu1158 dp经典题
- Windows Server 2008修改远程桌面连接数
- Qt编程之QImage类小结
- 查看文章strncpy()功能更好的文章
- 面向对象15.3String类-常见功能-转换
- JAVA的循环控制与循环嵌套
- JS学习笔记Day9
- 利用Android-FingerprintManager类实现指纹识别
- IIS部署发布flask网站
- WebSocket服务端和客户端使用
- C# NPOI 日期格式
- BZOJ1433或洛谷2055 [ZJOI2009]假期的宿舍
- Java多线程系列目录
- 在web.xml中设置全局编码
- MySQL--Checkpoint基础
- Git安装和基本使用(1)
- P&#183;C&#183;L 了解
热门文章
- 初识Spinner
- UIWebView全解
- COGS 147. [USACO Jan08] 架设电话线
- 关于 NetBackup 应答文件(/tmp/NBInstallAnswer.conf)
- MySql面试题、知识汇总、牛客网SQL专题练习
- bat文件设置环境变量
- targetcli save error
- python学习笔记-环境安装【1】
- 解决 cocos2dx iOS/mac 设置纹理寻址模式后纹理变黑的问题
- [LUOGU] 4149 [IOI2011]Race