poj 1276 Cash Machine
来源:互联网 发布:spss数据差异性分析 编辑:程序博客网 时间:2024/05/29 19:27
题目大意:
有一个容量一定的背包,具有不同价值的货币且有数量限制,问背包中最多能有多少价值的货币;
解题思路:
多重背包,用二进制进行优化,代码简单,方便,为什么用二进制可以转换成0-1背包做呢?这是因为这几种状态可以组合出所有状态,然后0-1背包即可;
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define maxn 100010int main(){int m,n;while(~scanf("%d%d",&m,&n)){int k=0;int dp[maxn]={0};int cost[110],val[110];for(int i=0;i<n;i++){int a,b;scanf("%d%d",&a,&b);int j=1;while(j<a){val[++k]=j*b;cost[k]=j*b;a-=j;j<<=1;}val[++k]=a*b;cost[k]=a*b;}for(int i=1;i<=k;i++)for(int j=m;j>=cost[i];j--)dp[j]=max(dp[j],dp[j-cost[i]]+val[i]);printf("%d\n",dp[m]);}}
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
- 【图像处理】基于OpenCV底层实现的滤波
- python3学习笔记1:python3与Python2中的差异
- POJ 1222 EXTENDED LIGHTS OUT 高斯消元 异或方程 (水
- 哇咔咔,我在CSDN的第一篇博客
- Docker 私有仓库恢复
- poj 1276 Cash Machine
- 线程属性(优先级):pthread_attr_t
- mysql explain用法
- chromium浏览器开发系列第一篇:如何获取最新chromium源码
- 自己制作Linux的镜像文件XXX.iso的大致组成
- DatePickerDialog 设置默认时间为当前系统时间
- 断言assert在debug版本与release版本中的区别
- STM32输入捕获简介
- 浅谈文本的相似度问题