题意:

  有面值分别为1、2、5的硬币,分别有num_1、num_2、num_5个,问不能组成的最小面值是多少?(0<=每种硬币个数<=1000,组成的面值>0)

思路:

  母函数解决。只有3个括号要作乘法,分别代表面值1、2、5所能组成的情况。需要两个数组,所能组成的最大值为num_1+2*num_2+5*num_5。如果在这个范围内都能组成,那么最小不能组成的面值为num_1+2*num_2+5*num_5+1。若没有1分钱的硬币,那么不能组成的肯定是1了。

  数组的用法:ans[]保存第一个括号→sup保存前两个括号的结果→ans[]保存最后结果。

 1 #include <iostream>
 2 #define N 8100
 3 using namespace std;
 4 int num_1,num_2,num_5,ans[N],sup[N],tar;
 5 int cal_and_search()
 6 {//ans[]→sup[]→ans[]
 7     int i,j,k;
 8     num_2*=2;
 9     num_5*=5;
10     memset(ans,0,sizeof(ans));    //清零
11     memset(sup,0,sizeof(sup));
12     for(i=0;i<=num_1;i++)    //初始化num_1+1个喔
13         ans[i]=1;
14     for(j=0;j<=num_2;j+=2)//头两个括号相乘
15         for(k=0;k<=num_1;k++)
16             sup[j+k]+=ans[k];
17     memset(ans,0,sizeof(ans));    //ans置零
18     for(j=0;j<=num_5;j+=5)    //上一步结果*第3个括号
19         for(k=0;k<=num_1+num_2;k++)
20             ans[j+k]+=sup[k];
21     for(i=1;i<=N;i++)    //搜索
22         if(ans[i]==0)    return i;
23 }
24 int main()
25 {
26     while(scanf("%d%d%d",&num_1,&num_2,&num_5))
27     {
28         if(num_1==0&&num_2==0&&num_5==0)    return 0;    //结束
29         if(num_1==0){printf("1\n");continue;}
30         tar=cal_and_search();
31         printf("%d\n",tar);
32     }
33     return 0;
34 }

1085

转载于:https://www.cnblogs.com/xcw0754/p/4253456.html

HDU 1085 Holding Bin-Laden Captive! 活捉本拉登(普通型母函数)相关推荐

  1. hdu 1085 Holding Bin-Laden Captive!

    Description We all know that Bin-Laden is a notorious terrorist, and he has disappeared for a long t ...

  2. HDOJ/HDU 1085 Holding Bin-Laden Captive!(非母函数求解)

    Problem Description We all know that Bin-Laden is a notorious terrorist, and he has disappeared for ...

  3. HDU 1085 Holding Bin-Laden Captive!

    这是拿三种不同的数量的硬币组合,然后你随便拿几个硬币组合,那么这就个硬币组合在一起的价值,不能等于某个数的最小值. 用母函数数感觉挺简单的,数组也不必开多大50就够了,其实可以更小.你想一下前面50都 ...

  4. hdu 1085 Holding Bin-Laden Capt

    给你a个1,b个2,c个5,问你不能组成的最小整数是多少 简单母函数,算了下复杂度,1秒足够 #include<iostream> #include<cstring> #def ...

  5. 母函数的初识——本拉登 hdu 1085

    题目链接 :母函数--本拉登 #include <iostream> #include <cstdio> #include <algorithm>using nam ...

  6. 【HDU - 1085 】Holding Bin-Laden Captive! (母函数)

    题干: We all know that Bin-Laden is a notorious terrorist, and he has disappeared for a long time. But ...

  7. HDU - 1613 Ecological Bin Packing

    问题描述: Background Bin packing, or the placement of objects of certain weights into different bins sub ...

  8. hdu 1286 找新朋友 (容斥原理 || 欧拉函数)

    Problem - 1286 用容斥原理做的代码: 1 #include <cstdio> 2 #include <iostream> 3 #include <algor ...

  9. 都是大人物,看看你认识几个。

    突然找到一张老图,但是一直没能认识全部的人,下面名单是填的,不一定都正确. (想要原图留下邮件,我偶尔上来,如果看到会发给你的) =================================== ...

最新文章

  1. 分苹果问题的C++和Python实现
  2. 初涉c#设计模式-proxy pattern-从中国足球黑哨开始
  3. python yaml配置文件_python读取yaml配置文件
  4. 深入理解JAVA虚拟机 虚拟机性能监控和故障处理工具
  5. 【Android 事件分发】ItemTouchHelper 实现侧滑删除
  6. 计算机操作系统实验银行家算法,实验六 银行家算法(下)
  7. java学习(145):file常用方法2
  8. 数据结构与算法实战-C++实现
  9. LeetCode 1616. 分割两个字符串得到回文串
  10. 更司马懿学管理计算机,跟司马懿学管理(一)无悔的选择是好选择
  11. 算法练习——聪明的情侣
  12. 如何解决Mac启动盘已满的问题?MacBooster帮你清理20种垃圾文件!
  13. Android Studio 4.1一键生成代码Template
  14. oracle18cscott,Oracle 18c 数据库中scott用户不存在的解决方法
  15. 2021Java春招,java求职简历模板下载
  16. 西南科技大学OJ题 带权无向图存储判定1064
  17. 小程序开发:社区团购系统应该如何选择?
  18. 计算机图形学中划线的程序,计算机图形学划线实验报告
  19. 【实践案例分享】阿里文娱智能营销增益模型 ( Uplift Model ) 技术实践
  20. 幂乘法求最大特征值和特征向量

热门文章

  1. 计算机字处理表格如何计算,Word字处理表格怎么计算
  2. 淘宝首页代码html代码,Web前端
  3. python常用模块资料
  4. 分类器性能指标错误率、正确率、召回率
  5. 深圳五险(养老保险、工伤保险、生育保险、失业保险,医疗保险)的那些事儿~2020年梳理
  6. python火车票查询工具
  7. CAD标准图幅及加长图幅大小
  8. 中谷教育python精讲_中谷教育Python视频(课件、源码)推荐
  9. 2022年珠宝跟踪系统市场深度分析及发展研究预测报告
  10. python爬取网页时出现乱码(中文)