HDU 2844 Coins 多重背包+常数优化 -
2016-09-26 13:42
363 查看
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2844
常数优化 ,不然TLE
常数优化 ,不然TLE
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int val[100+5]; bool d[100000+5]; int main() { int n,m,num; while(scanf("%d%d",&n,&m)!=EOF) { if(n==0&&m==0) break; for(int i=0;i<n;i++) scanf("%d",&val[i]); memset(d,false,sizeof(d)); d[0]=true; int cnt=0; for(int i=0;i<n;i++){ scanf("%d",&num); int c=num,k=1; if(num*val[i]>m) { //加上这个可以快一半 for(int j=val[i];j<=m;j++) if(d[j-val[i]]&&d[j]==false) d[j]=true,cnt++; continue; } while(c>k){ for(int j=m;j>=k*val[i];j--) if(d[j-k*val[i]]&&d[j]==false) d[j]=true,cnt++; c-=k; k<<=1; } for(int j=m;j>=c*val[i];j--) if(d[j-c*val[i]]&&d[j]==false) d[j]=true,cnt++; } cout<<cnt<<endl; } return 0; }
相关文章推荐
- HDU 2844 Coins (二进制优化多重背包)
- [HDU 2844 Coins]DP+二进制优化+多重背包
- HDU-2844 Coins 多重背包 物品数量二进制优化
- hdu 2844 coins (多重背包+二进制优化)
- HDU 2844 Coins (多重背包+二进制优化模板)
- DP(分组背包两种二进制优化) Problem S:Coins(HDU 2844)
- HDU 2844 Coins (多重背包+二进制优化)
- HDU 2844 Coins(多重背包+完全背包优化)
- hdu 2844 Coins(dp 多重背包 二进制优化)
- hdu 2844 Coins 多重背包优化 很好
- hdu 2844 Coins(多重背包+二进制优化)
- hdu 2844 Coins 多重背包模板题 ,二进制优化。据说是楼教主的男人八题之一
- hdu(2844)——Coins(多重背包+优化)
- HDU-2844-Coins(多重背包 二进制优化)
- HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)
- HDU 2844 Coins(多重背包 + 二进制优化 + 01背包)
- hdu 2844 Coins(多重背包优化)
- hdu 2844 Coins(多重背包+二进制优化)
- Coins (HDU_2844) 二进制优化+多重背包
- HDU 2844 Coins(多重背包【二进制优化】)