hdu3591The trouble of Xiaoqian 多重背包+完全背包
来源:互联网 发布:mac asp文件用什么打开 编辑:程序博客网 时间:2024/05/21 09:44
//给出Xiaoqian的钱币的价值和其身上有的每种钱的个数//商家的每种钱的个数是无穷,xiaoqian一次最多付20000//问怎样付钱交易中钱币的个数最少//Xiaoqian是多重背包//商家是完全背包#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 20010 ;const int inf = 0x3f3f3f3f ;int dp[maxn] ;int dp_1[maxn] ;int c[maxn],v[maxn] ;int n , t ;int cas = 0 ;int main(){ //freopen("in.txt" ,"r" , stdin) ; while(scanf("%d%d",&n , &t) &&(n+t)) { for(int i = 1;i <= n;i++) scanf("%d" , &v[i]) ; for(int i = 1;i <= n;i++) scanf("%d" , &c[i]) ; for(int i = 1;i < maxn;i++) dp[i] = dp_1[i] = inf ; dp_1[0] = 0 ; dp[0] = 0 ; for(int i = 1;i <= n;i++) for(int j = v[i] ; j < maxn ;j++) dp_1[j] = min(dp_1[j], dp_1[j-v[i]] + 1) ; for(int i = 1;i <= n;i++) { for(int k = 1;k <= c[i];k*=2) { for(int j = maxn - 1;j >= k*v[i];j--) dp[j] = min(dp[j] , dp[j-k*v[i]] + k) ; c[i]-=k; } for(int j = maxn-1;j >= c[i]*v[i];j--) dp[j] = min(dp[j] , dp[j - c[i]*v[i]] + c[i]) ; } int ans = inf; for(int i = t; i <= maxn -10;i++) if(dp[i] != inf && dp_1[i - t] != inf) ans = min(dp[i] + dp[i-t] , ans) ; printf("Case %d: " ,++cas) ; if(ans == inf)puts("-1") ; else cout<<ans<<endl; }}
0 0
- hdu3591The trouble of Xiaoqian 多重背包+完全背包
- 【多重背包+完全背包】HDU3591The trouble of Xiaoqian
- hdu3591The trouble of Xiaoqian(多重背包)
- hdu3591The trouble of Xiaoqian【多重背包】
- hdu 3591 The trouble of Xiaoqian(多重背包+完全背包)
- hdu 3591 The trouble of Xiaoqian ( 多重背包 + 完全背包 )
- HDU3591 - The trouble of Xiaoqian(多重背包+完全背包)
- hdu 3591 The trouble of Xiaoqian 多重背包+完全背包
- HDU 3591 The trouble of Xiaoqian(多重背包+完全背包)
- hdu 3591 The trouble of Xiaoqian 多重背包+完全背包。。。
- HDU 3591 The trouble of Xiaoqian (多重背包+完全背包)
- hdu3591 The trouble of Xiaoqian(多重背包 + 完全背包)
- HDU3591:The trouble of Xiaoqian(多重背包+完全背包)
- HDU 3591 The trouble of Xiaoqian 混合背包(完全背包和多重背包混合)
- HDU 3591 The trouble of Xiaoqian (多重背包+完全背包)
- hdu 3591 The trouble of Xiaoqian( 多重背包+完全背包)
- hdu 3591 The trouble of Xiaoqian 多重背包(二进制)+完全背包!
- HDU 3591.The trouble of Xiaoqian【完全背包+多重背包】【4月24】
- nandflash读写是以page为单位的测试
- activity小结——知晓当前是在哪一个活动
- Eclipse 使用 && 快捷键
- cocos2d-x AnchorPoint锚点
- JVM讲解
- hdu3591The trouble of Xiaoqian 多重背包+完全背包
- 《深入浅出struts2》--第十章 ModelDriven拦截器
- 文件管理器与设计模式-单例模式
- SQL SERVER 2008 R2 远程备份数据库
- C# int和byte的位移相互转换
- nagios利用NRPE监控CPU、负载、磁盘IO
- Android功能自动化之MokeyRunner
- 强连通分量(kosaraju)
- 自动释放池autoreleasepool