poj 1276 Cash Machine 多重背包
2015-08-08 19:00
405 查看
[code]#include<stdio.h> #include<string.h> #include<string> #include<algorithm> using namespace std; int dp[100000+5],N; void zeroonepack(int cost,int weight) { for(int i=N;i>=cost;i--) dp[i]=max(dp[i],dp[i-cost]+weight); } void completepack(int cost,int weight) { for(int i=cost;i<=N;i++) dp[i]=max(dp[i],dp[i-cost]+weight); } void multiplepack(int cost,int weight,int amount) { if(amount*cost>=N) completepack(cost,weight); else { int k=1; while(k<amount) { zeroonepack(cost*k,weight*k); amount-=k; k*=2; } zeroonepack(cost*amount,weight*amount); } } int main() { int i,n,a[10],b[10]; while(~scanf("%d%d",&N,&n)) { memset(dp,0,sizeof(dp)); for(i=0;i<n;i++) scanf("%d%d",&a[i],&b[i]); for(i=0;i<n;i++) multiplepack(b[i],b[i],a[i]); printf("%d\n",dp ); } return 0; }
相关文章推荐
- poj 1276 Cash Machine 多重背包
- minecraft花生壳怎样开服
- “TCP:三次握手”分析——以一个简单的“服务器”和“客户端”为例
- Reverse Integer
- @Controller's and AOP Proxying
- 小鱼收纳app V1.0.6 安卓版
- 音频播放
- Bootstrap 准备工作
- 首次使用pod遇到问题后在stackoverflow寻找的解决方案
- HDU 4095 Y (树上计数问题)
- HDU 3172 Virtual Friends
- boostrape 栅栏总结
- redhat6.4 安装oracle 10g error
- 基于arm和ds18b20的系统
- CentOS操作系统基于Cmake编译安装MySQL
- fstream读写二进制文件的方法
- JS - 侧边导航收缩伸展
- POJ 1149 PIGS(最大流-Dinic)
- Intellij IDEA 14的注册机及源代码
- java(样品集成框架spring、spring mvc、spring data jpa、hibernate)