HDU 3591 多重背包
给出N种钱币和M
给出N种钱币的面值和个数
NPC拿着这N些钱币去买价值M的物品,能够多付。然后被找零,找零的钱也为这些面值。但没有数量限制
问最少经手的钱币数量
对于NPC做一个付款多重背包
然后对于找零做一个全然背包
ans=Min(dp1[i]+dp2[i-m],ans);
- #include "stdio.h"
- #include "string.h"
- int n,m;
- int dp1[20010],dp2[20010],c[20010],v[20010];
- void onezero_pack(int v,int k)
- {
- int i;
- for (i=20000;i>=v;i--)
- if (dp1[i-v]!=-1 && (dp1[i-v]+k<dp1[i] || dp1[i]==-1) )
- dp1[i]=dp1[i-v]+k;
- }
- void complete_pack(int v)
- {
- int i;
- for (i=v;i<=20000;i++)
- if (dp1[i-v]!=-1 && (dp1[i-v]+1<dp1[i] || dp1[i]==-1) )
- dp1[i]=dp1[i-v]+1;
- }
- void multiple_pack(int v,int c)
- {
- int k;
- if (v*c>=20000)
- complete_pack(v);
- else
- {
- k=1;
- while (k<c)
- {
- onezero_pack(k*v,k);
- c-=k;
- k*=2;
- }
- if (c>0) onezero_pack(c*v,k);
- }
- }
- int Min(int a,int b)
- {
- if (a<b) return a;
- else return b;
- }
- int main()
- {
- int Case,i,j,ans;
- Case=0;
- while (scanf("%d%d",&n,&m)!=EOF)
- {
- if (n+m==0) break;
- for (i=1;i<=n;i++)
- scanf("%d",&v[i]);
- for (i=1;i<=n;i++)
- scanf("%d",&c[i]);
- memset(dp1,-1,sizeof(dp1));
- dp1[0]=0;
- for (i=1;i<=n;i++)
- multiple_pack(v[i],c[i]);
- memset(dp2,-1,sizeof(dp2));
- dp2[0]=0;
- for (i=1;i<=n;i++)
- for (j=0;j<=20000-v[i];j++)
- {
- if (dp2[j]!=-1 && (dp2[j]+1<dp2[j+v[i]] || dp2[j+v[i]]==-1) )
- dp2[j+v[i]]=dp2[j]+1;
- }
- ans=0x3f3f3f3f;
- for (i=m;i<=20000;i++)
- if (dp1[i]!=-1 && dp2[i-m]!=-1)
- ans=Min(dp1[i]+dp2[i-m],ans);
- printf("Case %d: ",++Case);
- if (ans==0x3f3f3f3f)
- printf("-1\n");
- else
- printf("%d\n",ans);
- }
- return 0;
- }
HDU 3591 多重背包的更多相关文章
- hdu 5445 多重背包
Food Problem Time Limit: 3000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)To ...
- HDU 3591 (完全背包+二进制优化的多重背包)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3591 The trouble of Xiaoqian Time Limit: 2000/1000 M ...
- hdu 2191 多重背包 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
http://acm.hdu.edu.cn/showproblem.php?pid=2191 New~ 欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院关于2015年杭电ACM暑期集训队的 ...
- Big Event in HDU(HDU 1171 多重背包)
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- HDU 1171 Big Event in HDU (多重背包)
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- HDU1171--Big Event in HDU(多重背包)
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Big Event in HDU(多重背包套用模板)
http://acm.hdu.edu.cn/showproblem.php?pid=1171 Big Event in HDU Time Limit: 10000/5000 MS (Java/Othe ...
- hdu 1059 (多重背包) Dividing
这里;http://acm.hdu.edu.cn/showproblem.php?pid=1059 题意是有价值分别为1,2,3,4,5,6的商品各若干个,给出每种商品的数量,问是否能够分成价值相等的 ...
- 题解报告:hdu 1171 Big Event in HDU(多重背包)
Problem Description Nowadays, we all know that Computer College is the biggest department in HDU. Bu ...
随机推荐
- .net中数据缓存使用
今天 遇到一个问题 访问一个接口数据 基本上是固定的,于是想把数据 缓存下来...于是版本1 诞生了 private static ConcurrentDictionary<int, List& ...
- Android布局中match_parent和fill_parent的差别
今天在做项目的一个新功能的时候,从网上查找资源,发现android2.2中出现的MATCH_PARENT感到不明确.过去仅仅有FILL_PARENT和WRAP_CONTENT那么match_paren ...
- vc2010, fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt解决办法
是因为安其它软件的时候更新了.net framework,导致vc2010出了问题. 解决办法是在系统里搜索cvtres.exe,会搜到很多,把其中 Microsoft Visual Studio 1 ...
- Subversion和TortoiseSVN安装与配置(转)
Subversion为版本控制软件的服务器端. TortoiseSVN为版本控制软件的客户端. 1.下载Subversion与TortoiseSVN. Subversion的地址:http://sub ...
- Spring mvc 注解@ResponseBody 返回内容编码问题
@ResponseBody 在@Controller 类方法中能够让字符串直接返回内容. 其返回处理的类是org.springframework.http.converter.StringHttpMe ...
- 阻塞赋值与非阻塞赋值(verilog篇)
阻塞赋值与非阻塞赋值(verilog篇) 2017-09-30 竹海 相约电子ee 相信刚刚接触verilog的读者,多少对阻塞赋值和非阻塞赋值仍有一些困惑.笔者在这篇文章,带领大家深入的理解这两者的 ...
- C++语言基础(8)-引用
(重要)使用引用的一些注意点: 1.引用不能绑定临时数据,也不能绑定任何无法获取内存地址的常量,表达式,或值,常引用除外. 第一种写法:(错误) int func_int(){ ; return n; ...
- C# Type.GetConstructor() 根据构造函数参数获取实例对象(一)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- grub手动引导win7
grub>rootnoverify (hd0,0)--->win7系统安装盘号 grub > chainloader +1 grub > makeactive ---& ...
- stylelint — css书写规范
sass lint guidance 一.安装:npm intsall -g stylelint 二.配置:http://stylelint.io/user-guide/rules/ (以下规则文件配 ...