HDU 1085 Holding Bin-Laden Captive! 活捉本拉登(普通型母函数)
题意:
有面值分别为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[]保存最后结果。
#include <iostream>
#define N 8100
using namespace std;
int num_1,num_2,num_5,ans[N],sup[N],tar;
int cal_and_search()
{//ans[]→sup[]→ans[]
int i,j,k;
num_2*=;
num_5*=;
memset(ans,,sizeof(ans)); //清零
memset(sup,,sizeof(sup));
for(i=;i<=num_1;i++) //初始化num_1+1个喔
ans[i]=;
for(j=;j<=num_2;j+=)//头两个括号相乘
for(k=;k<=num_1;k++)
sup[j+k]+=ans[k];
memset(ans,,sizeof(ans)); //ans置零
for(j=;j<=num_5;j+=) //上一步结果*第3个括号
for(k=;k<=num_1+num_2;k++)
ans[j+k]+=sup[k];
for(i=;i<=N;i++) //搜索
if(ans[i]==) return i;
}
int main()
{
while(scanf("%d%d%d",&num_1,&num_2,&num_5))
{
if(num_1==&&num_2==&&num_5==) return ; //结束
if(num_1==){printf("1\n");continue;}
tar=cal_and_search();
printf("%d\n",tar);
}
return ;
}
1085
HDU 1085 Holding Bin-Laden Captive! 活捉本拉登(普通型母函数)的更多相关文章
- HDU 1085 Holding Bin-Laden Captive! (母函数)
Holding Bin-Laden Captive! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...
- HDU 1085 Holding Bin-Laden Captive!(母函数,或者找规律)
Holding Bin-Laden Captive! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...
- HDU 1085 Holding Bin-Laden Captive!(DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1085 解题报告:有1,2,5三种面值的硬币,这三种硬币的数量分别是num_1,num_2,num_5, ...
- HDOJ/HDU 1085 Holding Bin-Laden Captive!(非母函数求解)
Problem Description We all know that Bin-Laden is a notorious terrorist, and he has disappeared for ...
- hdu 1085 Holding Bin-Laden Captive!
Problem Description We all know that Bin-Laden is a notorious terrorist, and he has disappeared for ...
- HDU 1085 Holding Bin-Laden Captive --生成函数第一题
生成函数题. 题意:有币值1,2,5的硬币若干,问你最小的不能组成的币值为多少. 解法:写出生成函数: 然后求每项的系数即可. 因为三种硬币最多1000枚,1*1000+2*1000+5*1000=8 ...
- hdu 1085 Holding Bin-Laden Captive! (母函数)
//给你面值为1,2,5的三种硬币固定的数目,求不能凑出的最小钱数 //G(x)=(1+x+...+x^num1)(1+x^2+...+x^2num2)(1+x^5+,,,+x^5num3), //展 ...
- hdu 1085 给出数量限制的母函数问题 Holding Bin-Laden Captive!
Holding Bin-Laden Captive! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...
- HDOJ 1085 Holding Bin-Laden Captive! (母函数)
Holding Bin-Laden Captive! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...
随机推荐
- MVC下使用日期控件
初学MVC,使用日期控件的时候发现不是特别理想,本来是想直接使用JQuery的日期控件的,发现支持的不是很好,type类型要改成date才能使用,而且编辑的时候使用@Html.EditFor也不能绑定 ...
- Open-source Tutorial - Material Design for WPF UI
安装 Material Design Themes 通过 NuGet 包管理器搜索自动安装 通过 NuGet 包管理器控制台手动安装 Install-Package MaterialDesignThe ...
- 虚拟创建失败之Dbus调试
DBus调试命令 查询连接名 ### 查询所有连接名 # dbus-send --system --print-reply --dest=org.freedesktop.DBus / org.free ...
- 【leetcode 5. 最长回文子串】解题报告
方法一:中心扩展算法 解题思路:从左到右每一个字符都作为中心轴,然后逐渐往两边扩展,只要发现有不相等的字符,则确定了以该字符为轴的最长回文串,但需要考虑长度为奇数和偶数的不同情况的处理(长度为偶数时轴 ...
- 《OD学storm》20160828
一.Storm项目 1. 架构 javasdk -> nginx -> 日志文件 -> flume agent(collector) -> hdfs -> kafka - ...
- ROS上利用usb_cam读取摄像头图像
电脑需要有USB3.0的接口 我使用的环境为:Ubuntu16.04LTS ROS版本是kinetic 一.usb_cam驱动的安装 1.创建ROS工作空间 mkdir -p myros/src cd ...
- 配置文件中取值: spring配置文件中util:properties和context:property-placeholder
转载大神 https://blog.csdn.net/n447194252/article/details/77498916 util:properties和context:property-plac ...
- APP测试常见功能测试点汇总
本文总结了一些APP功能测试中经常遇见测试点,仅供参考,是好早以前看哪位前辈总结的,一直在使用,所以也稍微的修改了下放到自己的博客中,以备日后温习.1.安装和卸载安装和卸载是任何一款APP中都属于最基 ...
- python3 下载 以及 练习1 以及 pycharm 专业版 安装
下载python: https://www.python.org/downloads/release/python-365/ ########sample 1 下载pycharm 社区版本,但是web ...
- java对象在内存中的分配
java对象在内存中的分配 http://blog.csdn.net/qq_30753945/article/details/54974899