简单背包练习——0/1背包
2017-09-07 20:21
176 查看
问题 A: 0/1背包
时间限制: 1 Sec 内存限制: 128 MB提交: 63 解决: 26
[提交][状态][讨论版]
题目描述
一个旅行者有一个最多能用m公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn.若每种物品只有一件求旅行者能获得最大总价值。输入
第1行:两个整数,M(背包容量,M<=200)和N(物品数量,N<=30);第2..N+1行:每行二个整数Wi,Ci,表示每个物品的重量和价值。
输出
仅一行,一个数,表示最大总价值。样例输入
10 4 2 1 3 3 4 5 7 9
样例输出
12分析:简单01背包理解
详见本人的博文 背包九讲 http://blog.csdn.net/qq_38749759/article/details/77406397
代码如下
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N=1000+10; int m,n; int f ,w ,c ; int main() { cin>>m>>n; for(int i=1;i<=n;i++) cin>>w[i]>>c[i]; for(int i=1;i<=n;i++) for(int j=m;j>=w[i];j--) f[j]=max(f[j],f[j-w[i]]+c[i]);//状态转移方程 cout<<f[m]<<endl; return 0; }
相关文章推荐
- C语言学习笔记(八)---简单的背包加密算法练习
- 小白算法练习 简单背包问题专题001 hdu 01背包 dp
- 小白算法练习 简单背包专题002 01背包k优解 hdu dp
- 小白算法练习 简单背包专题003 完全背包 hdu lanqiao 包子凑数 dp
- 小白算法练习 简单背包问题专题004 多重背包 二进制化 POJ dp
- 简单背包练习——庆功会
- 简单背包练习—— 混合背包
- 简单背包练习——潜水员
- 简单背包练习——分组背包
- 一些简单的编程练习
- 简单正则表达式练习
- JSP简单练习-正则表达式
- 简单的背包程序
- JSP简单练习-包装类综合应用实例
- 周六日常训练,背包dp,树形dp,简单dp以及很多数学?
- 【数据结构练习】简单四则运算
- GCD实战练习:使用串行队列实现简单的预加载
- 简单线程系列6-练习单线程查询数据库
- socket简单练习
- 机器学习&数据挖掘笔记_19(PGM练习三:马尔科夫网络在OCR上的简单应用)