HDU 2844 coins
来源:互联网 发布:protty网络验证 编辑:程序博客网 时间:2024/06/05 03:27
做的第一个多重背包,看了背包九讲之后才把模板看懂,真心觉得背包九讲不错
#include <iostream>#include<stdio.h>#include<string>#include<cstring>#include<algorithm>#include<cmath>#define N 100010using namespace std;int vol[N],val[N];int n,m;int dp[N];void zeroonebag(int c,int w){ for(int i=m;i>=c;i--) dp[i]=max(dp[i],dp[i-c]+w);}void combag(int c,int w){ for(int i=c;i<=m;i++) dp[i]=max(dp[i],dp[i-c]+w);}void mulbag(int c,int w,int p){ if(c*p>m)combag(c,w); else { int k=1; while(k<p)//二进制转化思想 { zeroonebag(c*k,w*k); p-=k; k<<=1; } zeroonebag(p*c,p*w); }}int main(){ while(~scanf("%d%d",&n,&m)) { if(n+m==0)break; memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) scanf("%d",&val[i]); for(int i=1;i<=n;i++) scanf("%d",&vol[i]); for(int i=1;i<=n;i++) { mulbag(val[i],val[i],vol[i]); } int ans=0; for(int i=1;i<=m;i++) { if(dp[i]==i) ans++; } printf("%d\n",ans); } return 0;}
0 0
- HDU 2844 - Coins
- hdu 2844 Coins
- hdu 2844 Coins 背包
- hdu 2844 coins
- Hdu 2844 Coins
- HDU 2844 Coins
- hdu 2844 Coins
- hdu 2844 Coins
- HDU 2844 coins
- hdu 2844 Coins
- hdu 2844 coins
- HDU-2844-Coins
- hdu 2844 Coins
- hdu 2844 Coins
- HDU - 2844 Coins
- hdu 2844 Coins dp
- HDU 2844 Coins
- hdu 2844 Coins
- 函数可重入性及编写规范
- 母爱的温度
- jQuery动态添加的元素绑定事件处理函数
- 语言的学习基础,100个经典的算法
- OpenSSH的Chroot设置
- HDU 2844 coins
- malloc/free与new/delete的区别
- <<the architecture of open source applications>> 中关于虚拟机复制与迁移(上)
- PHP及Javascript 正则判断中文
- hdu 4871 Shortest-path tree(最短路+点分治)
- poj_1979 Red and Black
- javascript源码阅读推荐
- MYSQL数据库恢复记录
- leetcode 151: Container With Most Water