POJ 1276 Cash Machine
来源:互联网 发布:淘宝 大麦网 编辑:程序博客网 时间:2024/04/30 21:29
多重背包
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>const int maxn = 100010;using namespace std;int c[maxn],v[maxn],dp[maxn],n1[maxn],V;void ZeroOnepack(int c,int v)//01背包{ for(int i = V ; i >= c ; i--) dp[i] = max(dp[i],dp[i-c]+v);}void CompletePack(int c, int v)//完全背包{ for(int i = c ; i <= V ; i++) dp[i] = max(dp[i],dp[i-c]+v);}void MultiplePack(int c,int v,int n1)//多重背包{ if(c*n1>=V) { CompletePack(c,v); return ; } else { int k = 1 ; while (k <= n1) { ZeroOnepack(c*k,v*k); n1 -= k; k <<= 1; } ZeroOnepack(c*n1,v*n1); }}int main(){ int n ; while(~scanf("%d%d",&V,&n)) { if(n == 0) printf("0\n"); else { for(int i = 0 ; i < n ; i++) { scanf("%d%d",&n1[i],&c[i]); v[i] = c[i]; } if(V == 0) printf("0\n"); else { memset(dp,0,sizeof(dp)); for(int i = 0 ; i < n ; i++) { MultiplePack(c[i],v[i],n1[i]); } printf("%d\n",dp[V]); } } } return 0;}
0 0
- poj 1276 Cash Machine
- poj 1276 Cash Machine
- poj 1276Cash Machine
- POJ 1276 Cash Machine
- poj 1276 Cash machine
- poj 1276 Cash Machine
- poj 1276 Cash Machine
- POJ 1276 Cash Machine
- POJ 1276 Cash Machine
- POJ 1276 Cash Machine
- poj 1276 Cash Machine
- POJ-1276Cash Machine
- POJ 1276 cash machine
- POJ 1276 Cash Machine
- POJ 1276 Cash Machine
- POJ 1276 Cash Machine
- POJ 1276 Cash Machine
- POJ-1276-Cash Machine
- Ojbective-C为什么不用@public
- HDU 2483 Counting square
- [oj.leetcode] #174 - Dungeon Game 一次特别的DP之旅
- hdu 1026 Ignatius and the Princess I
- Activity学习小结
- POJ 1276 Cash Machine
- Linux信号实践(2) --信号分类
- [轻松一刻] IT人的工资是这个样子滴
- 医疗行业大数据医疗分析案例
- jQuery on()方法
- MVC、KVO、KVC
- 【非常强大】 对各种语言的简单解析,带你走向编程之路
- hadoop2 hdfs命令
- 树莓派使用 (Raspberry)