打包
2014-04-02 21:13
169 查看
Problem Description
你现在拿到了许多的礼物,你要把这些礼物放进袋子里。你只有一个最多装下V体积物品的袋子。你不能全部放进去。你也拿不动这么重的东西。你估计你能拿的最大重量为G。现在你了解了每一个物品的完美值、重量和体积,你当然想让袋子里装的物品的完美值总和最大,你又得计划一下了。
Input
输入有多组数据,每组数据的首行为V和G表示最大重量和体积,第2行为N表示拿到N件礼物,第3到N+2行每行3个数Ti、Vi、Gi表示各礼物的完美值、重量和体积(N,V,G,Ti,Vi,Gi<=380)。
Output
对于每组数据输出一个数,表示可能获得的最大完美值。
Sample Input
6 5 4 10 2 2 20 3 2 40 4 3 30 3 3
Sample Output
50
//关键字: 01背包
//标程:
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int dp[500][500]; int main() { // freopen("a.txt","r",stdin); int max_volume,max_weight,i,j,k; while(cin >> max_weight >> max_volume) { memset(dp,0,sizeof(dp)); int num, value, weight, volume; cin >> num; for(i = 0; i < num; i ++) { cin >> value >> weight >> volume; for(j = max_weight; j >= weight; j --) for(k = max_volume ; k >= volume; k --) if(dp[j][k] < dp[j-weight][k-volume] + value) dp[j][k] = dp[j-weight][k-volume] + value; } cout << dp[max_weight][max_volume] << endl; } return 0; }
相关文章推荐
- 软件测试第一课
- 虞锋共同发起
- typedef和#define的用法与区别
- android adt版本号问题
- WordPress源码解读
- fzu 2107 Hua Rong Dao(状压dp)
- Log4j具体级别及输出信息配置方法介绍
- Linux安装配置php+apache
- MFC入程序的分析
- 数据类型之间转换
- SRM 586 DIV1
- 好久不写ios代码,生疏了,以前的一些方法竟然被启用了,网上着了文章转载
- Android Intent 用法全面总结
- 利用nginx反向代理tomcat服务器
- Phone List
- spring学习前奏002
- java.util.queue
- [hdu 2001] 计算两点间的距离
- Net上传附件大小控控值(转)
- webService客户端参数为DataHandler类型时候的参数组装