千里码oj_老王装货
2015-12-13 11:17
295 查看
#include <iostream> using namespace std; struct DP { int weight; bool mark[16]; }dp[5001]; int main() { int good[16] = {0, 509, 838, 924, 650, 604, 793, 564, 651, 697, 649, 747, 787, 701, 605, 644 }; int i,j,k,flag; for(i=0; i<5001; ++i) { dp[i].weight = 0; for(j=0; j<16; ++j) dp[i].mark[j] = false; } for(i=1; i<16; ++i) { for(j=5000; j>=good[i]; --j) { if(dp[j].weight < dp[j-good[i]].weight + good[i]) { dp[j].weight = dp[j-good[i]].weight + good[i]; for(k=1; k<16; ++k) { dp[j].mark[k] = dp[j-good[i]].mark[k]; } dp[j].mark[i] = true; } } } flag = 1; for(i=1; i<16; ++i) { if(flag && dp[5000].mark[i]) { cout<<i; flag = 0; continue; } if(dp[5000].mark[i]) { cout<<"-"<<i; } } cout<<endl<<dp[5000].weight<<endl; return 0; }
简单0-1背包问题。。关键是如何输出装货号码
相关文章推荐
- Codeforces Round #335 (Div. 2)
- 有关solaris fmd服务下的命令fmdump的简单使用
- 移动开发的福音,BaaS后端云服务
- Lobes of the brain
- 二叉树反转(java版)
- 关于数组中的值拼接成字符串中间用逗号隔开的实现
- toeplitz--生成托普利兹矩阵
- POJ 2242|ZOJ 1090 The Circumference of the Circle
- Log4j2介绍和特性实例(二)--一个实例和初学注意事项(configuration标签中的 status 和 monitorInterval)
- 关于权限控制的讨论:操作与数据
- Android 启动模拟器是出现“Failed to allocate memory: 8”错误提示的原因及解决办法
- pascal--生成Pascal矩阵
- AngularJs实战(四)
- 接口回调的使用方法
- Javaweb工程找不到jquery问题
- [javase学习笔记]-4.2 定义函数的两个明确
- POJ3614与优先队列
- 析构函数为什么一定写成虚函数的形式 http://blog.sina.com.cn/s/blog_4b146a9c0100sgyg.html
- Android(零)基础-eclipse文件结构
- 关于java中的多态理解