开心的金明(01背包)
2012-07-30 15:08
225 查看
描述
来源 noip2006普及组第二题金明有N元买m个物品,使每件物品的价值(价值=价格*重要度)总和最大。
设第j件物品的价格为v[j],重要度为w[j]
输入N m(其中N(<30000)表示总钱数,m(<25)为希望购买物品的个数。)
从第2行到第m+1行,每行有2个非负整数
v[j],w[j]
(其中v表示该物品的价格(v<=10000),w表示该物品的重要度(1~5))输出输出只有一个正整数,为不超过总钱数的物品的价值总和的最大值(<100000000)。样例输入1000 5
800 2
400 5
300 5
400 3
200 2
样例输出3900
#include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; int dp[30001], v[26], w[26]; int N, m; int main() { while(scanf("%d%d",&N,&m) != EOF) { int i, j; for(i = 0; i < m; i++) scanf("%d%d",&v[i],&w[i]); dp[0] = 0; for(i = 0; i < m; i++) for(j = N; j >= v[i]; j--) dp[j] = max(dp[j], dp[j-v[i]] + v[i] * w[i]); printf("%d\n",dp ); } return 0; }
相关文章推荐
- noip2006 开心的金明 (01背包)
- 蓝桥杯-开心的金明-01背包-java
- 【RQNOJ2】【DP】【01背包】 开心的金明
- 【01背包】开心的金明
- Luogu-p1060开心的金明(01背包)
- 开心的金明(01背包)
- [01背包]vijos1317 开心的金明
- NOIP 2006 开心的金明(01背包)
- 【01背包】开心的金明
- 洛谷OJ - P1060 - 开心的金明(01背包)
- 开心的金明(dp 01背包)
- 01背包【p1060】开心的金明
- rqnoj02 开心的金明(dp,01背包)
- rqnoj02 开心的金明(dp,01背包)
- codevs 1115 开心的金明--01背包
- 开心的金明
- [P1060]开心的金明
- A1156. 开心的金明
- [好类似]开心的金明
- 第十八道:开心的金明(今天玩了一天,没什么时间写博客了,来题简单的吧)