【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 recently, it is reported that he hides in Hang Zhou of China! 
“Oh, God! How terrible! ” 



Don’t be so afraid, guys. Although he hides in a cave of Hang Zhou, he dares not to go out. Laden is so bored recent years that he fling himself into some math problems, and he said that if anyone can solve his problem, he will give himself up! 
Ha-ha! Obviously, Laden is too proud of his intelligence! But, what is his problem? 
“Given some Chinese Coins (硬币) (three kinds-- 1, 2, 5), and their number is num_1, num_2 and num_5 respectively, please output the minimum value that you cannot pay with given coins.” 
You, super ACMer, should solve the problem easily, and don’t forget to take $25000000 from Bush! 

Input

Input contains multiple test cases. Each test case contains 3 positive integers num_1, num_2 and num_5 (0<=num_i<=1000). A test case containing 0 0 0 terminates the input and this test case is not to be processed. 

Output

Output the minimum positive value that one cannot pay with given coins, one line for one case. 

Sample Input

1 1 3
0 0 0

Sample Output

4

题目大意:

给你cnt1个一元硬币,cnt2个两元硬币,cnt3个五元硬币,问不能凑出来的第一个面额是多少。

解题报告:

         母函数。

AC代码:

#include<cstdio>
#include<queue>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int a[8005],b[8005];//b是中间值 
int c[3];//1  2  5的数量
int d[3] = {1,2,5}; 
int n,m;
int main()
{int t;while(cin>>c[0]>>c[1]>>c[2]) {if(c[0] + c[1] + c[2] == 0) break;memset(a,0,sizeof a);memset(b,0,sizeof b);for(int i = 0; i<=c[0]; i++) {a[i]=1,b[i]=0;} int maxx = c[0] + c[1]*2 + c[2]*5;for(int i = 1; i<=2; i++) {for(int j = 0; j<=maxx; j++) {if(a[j]==0) continue;//剪枝 for(int k = 0; k<=c[i]; k++) {b[j+k*d[i]] += a[j];}}for(int j = 0; j<=maxx; j++) {a[j]=b[j];b[j]=0;}
//			for(int i = 0; i<=m; i++) printf("%d ",a[i]);
//			printf("\n");}int flag = 0;for(int i = 0; i<=maxx; i++) {if(a[i] == 0) {flag=1;printf("%d\n",i);break;}}if(flag ==0) printf("%d\n",maxx+1);}return 0;
}

稍微优化一点的代码:(但是还是15ms)

#include <iostream>
#include <cstring>
using namespace std;
int n[3],a[9000],b[9000],i,j,k,last,last2;
int v[3]={1,2,5};
int main()
{while ((cin>>n[0]>>n[1]>>n[2])&&(n[0]!=0||n[1]!=0|n[2]!=0)){a[0]=1;last=0;for (i=0;i<=2;i++){last2=last+n[i]*v[i];memset(b,0,sizeof(int)*(last2+1));for (j=0;j<=n[i];j++)for (k=0;k<=last;k++)b[k+j*v[i]]+=a[k];memcpy(a,b,sizeof(int)*(last2+1));last=last2;}for (i=0;i<=last;i++)if (a[i]==0)break;cout<<i<<endl;}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html超链接点不了_HTML、CSS、JS都有哪些区别?不看必悔

划重点HTML、CSS、及JS的区别有哪些&#xff1f;在日常学习中&#xff0c;html&#xff0c;css和js我们都学过&#xff0c;起初分不清这三者的区别和联系&#xff0c;随着知识的增长&#xff0c;有了一些体会。看一下这三项技术都是什么&#xff0c;能干什么&#xff1f;web前端…

2019游戏 f1_2019年F1中国大奖赛激情开跑,这款手游带你体验真实F1的魅力

不知不觉&#xff0c;F1中国大奖赛进入第16个年头。你是否还记得2018年的F1中国大奖赛&#xff0c;真是跌宕起伏&#xff0c;红牛队车手里卡多在第三次练习赛中爆缸&#xff0c;之后在车队技师的努力下才赶上排位赛&#xff0c;结果他在正赛时第6位发车&#xff0c;竟然超出对手…

docker jenkins 公钥_代码自动发布docker(20.10.1)+k8s(1.20.1)

PaaS平台Docker版本(20.10.1) 2020-12-15 k8s版本(1.20.1) 2020-12-19代码托管&#xff1a;https://github.com/kubernetes/官方网址&#xff1a;https://kubernetes.io/pod--容器外壳service--不是真正的服务是iptables或ipvs中的规则先创建pod&#xff0c;后创建service…

【HDU - 1272】小希的迷宫 (并查集判环)

题干&#xff1a; 上次Gardon的迷宫城堡小希玩了很久&#xff08;见Problem B&#xff09;&#xff0c;现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样&#xff0c;首先她认为所有的通道都应该是双向连通的&#xff0c;就是说如果有一个通道连通了房间A和B&…

东北育才高中2021年高考成绩查询,东北育才学校国际部2021年招生计划

学校每年的招生计划都会发生变化&#xff0c;并不是一成不变的&#xff0c;所以大家一定要时刻关注招生计划。在报考一所学校的时候&#xff0c;大家要有计划性的选择报考学校&#xff0c;要先去了解学校大概招收多少学生&#xff0c;这样大家在报考学校时候的才能更好地去选择…

html启动word程序,Word工具栏直接启动外部程序

Word工具栏直接启动外部程序互联网 发布时间&#xff1a;2008-10-06 15:13:37 作者&#xff1a;佚名 我要评论从Word工具栏中也能直接启动外部程序&#xff0c;这样操作起来非常方便。我们以从Word启动计算器举例说明。单击“工具”菜单下的“自定义”命令&#xff0c;打…

linux ip brd不一致_3 个方便的命令行网速度测试工具 | Linux 中国

用这三个开源工具检查你的互联网和局域网速度。-- Ben Nuttall能够验证网络连接速度使您可以控制计算机。使您可以在命令行中检查互联网和网络速度的三个开源工具是 Speedtest、Fast 和 iPerf。SpeedtestSpeedtest 是一个旧宠。它用 Python 实现&#xff0c;并打包在 Apt 中&am…

语言nomogram校准曲线图_R语言实现Cox模型校准度曲线绘制

01研究背景这是关于cox模型的第二篇文章&#xff0c;上一篇文章分享了运用Lasso回归如何筛选变量&#xff0c;将筛选后的变量绘制Nomogram图&#xff0c;本章分享构建模型后&#xff0c;如何绘制校准曲线。cox模型的验证不同于Logistic回归&#xff0c;cox的结局包括时间和状态…

转成数组_JavaScript之数组扁平化

今天给大家分享一下JavaScript的数组扁平化。1. 扁平化数组的扁平化&#xff0c;就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。举个例子&#xff0c;假设有个名为 flatten 的函数可以做到数组扁平化&#xff0c;效果就会如下&#xff1a;知道了效…

【POJ - 2676】Sudoku (经典深搜,dfs数独)

题干&#xff1a; Sudoku is a very simple task. A square table with 9 rows and 9 columns is divided to 9 smaller squares 3x3 as shown on the Figure. In some of the cells are written decimal digits from 1 to 9. The other cells are empty. The goal is to fill…

overleaf表格_latex 表格制作

在制作latex表格时遇到了以下问题&#xff1a;一、合并单元格包括多行合并、多列合并、多行多列同时合并。多行合并&#xff1a; \multirow{2}{*}{Multi-Row}多列合并&#xff1a; \multicolumn{2}{|c|}{Multi-Column}多行多列同时合并&#xff1a;\multicolumn{2}{|c|}{\multi…

【HihoCoder - 1268】九宫 (dfs,深搜)

题干&#xff1a; 小Hi最近在教邻居家的小朋友小学奥数&#xff0c;而最近正好讲述到了三阶幻方这个部分&#xff0c;三阶幻方指的是将1~9不重复的填入一个3*3的矩阵当中&#xff0c;使得每一行、每一列和每一条对角线的和都是相同的。 三阶幻方又被称作九宫格&#xff0c;在…

河北师范大学计算机应用技术分数线,2019年河北师范大学各专业录取分数线

高考总分达到或超过某一分数线的考生档案&#xff0c;才有资格被招生高校调阅并选择录取。各高校不同专业每一年的录取分数线有所区别&#xff0c;下文是小编给大家整理的2019年河北师范大学各省各专业高考录取分数线详情&#xff0c;供参考&#xff01;2019河北师范大学各省各…

计算机英语反思总结,计算机在英语教学中辅助作用的反思

计算机在英语教学中辅助作用的反思 (3页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;9.9 积分题目&#xff1a;计算机在英语教学中辅助作用的反思科目&#xff1a; SS 学校&#xff1a; 灵石第一职…

极限脱出 量子计算机,《极限脱出3:零时困境》难点解密攻略 剧情通关密码一览...

《极限脱出3&#xff1a;零时困境》这款解密游戏很多时候会卡住&#xff0c;如何通关呢&#xff1f;下面小编就给大家分享一下《极限脱出3&#xff1a;零时困境》中几个难点解密&#xff0c;需要过关密码的朋友可以收藏一下哦。游戏过程中经常会卡在三处&#xff1a;1.玩家发现…

mysql缓存淘汰机制_聊聊缓存淘汰算法-LRU 实现原理

前言我们常用缓存提升数据查询速度&#xff0c;由于缓存容量有限&#xff0c;当缓存容量到达上限&#xff0c;就需要删除部分数据挪出空间&#xff0c;这样新数据才可以添加进来。缓存数据不能随机删除&#xff0c;一般情况下我们需要根据某种算法删除缓存数据。常用淘汰算法有…

三个月计算机培训班,三个月复盘:学完两个设计软件,并开始学画画

从4月1日开始明确目标&#xff0c;到6月30日&#xff0c;整整三个月的时间&#xff0c;我一直在努力前行。其中有多次的调整&#xff0c;但整体方向不变。来梳理一下这三个月所做的事&#xff1a;4.1-5.26 完成PS学习(75课)5.27-6.26 完成CDR学习(65课)5.27 从零基础开始学习画…

pythonjson实例_python:JSON的两种常用编解码方式实例解析

概念JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写。在日常的工作中&#xff0c;应用范围极其广泛。这里就介绍python下它的两种编解码方法&#xff1a;使用json函数使用 JSON 函数需要导入 json 库&#xff1a;import json。函数…

caxa计算机编程,CAXA软件编程实例1

课时&#xff1a;75节课时长&#xff1a;24.1小时课级&#xff1a;中级提高课程从基础讲起&#xff0c;仅贴实际生产实践&#xff0c;适合职业院校教师、企业技术员、学生学习&#xff0c;讲解细致、全面&#xff0c;带你学习带你飞、软件使用常见问题及解决方法和使用技巧详细…

python中常用的函数有哪些_Python 最常用的语句、函数有哪些?

一、常用语句1、条件语句&#xff1a;if else一句话概括该语句作用&#xff1a;非此即彼。python中的 if else 的语句功能更加强大、更加灵活。2、循环语句&#xff1a;for & while循环语句中&#xff0c;还有两个关键字至为重要&#xff1a;continue 与 break。这两个关键…