HDU1085 Holding Bin-Laden Captive!(母函数)
来源:互联网 发布:卧室家具摆放设计软件 编辑:程序博客网 时间:2024/05/20 18:54
Holding Bin-Laden Captive!
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 22097 Accepted Submission(s): 9814
Problem Description
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!
“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 30 0 0
Sample Output
4
Author
lcy
思路:首先这道题目让求得是给定数量的1,2,5不能表示的最小正整数,首先要注意一点,当这三种钱币能够表示的最大值以及以内的数都能够表示的时候,则不能表示的最小正整数就是sum+1.
#include <cstdio>#include <cstring>using namespace std;int c1[10005],c2[10005],a[3]={1,2,5},num[3];int main(){while(~scanf("%d%d%d",&num[0],&num[1],&num[2])){if(!num[0] && !num[1] && !num[2])break;memset(c1,0,sizeof(c1));memset(c2,0,sizeof(c2));for(int i = 0; i <= num[0]; i ++){//对第一个表达式进行初始化 c1[i] = 1;}int sum = 0;for(int i = 0; i < 3; i ++){//求出能够表示的最大值 sum += num[i] * a[i];}for(int i = 1; i < 3; i ++){//剩下的表达式 for(int j = 0; j <= sum; j ++){//表示原先从c1项中存在的幂指数为j的元素 if(c1[j]){//幂指数为j的元素存在则可以相乘 for(int k = 0; k <= num[i]*a[i]; k += a[i]){//表示当前表达式中个元素的幂指数 if(k+j <= sum)//判断相乘后的幂指数是否超过能够表达的最大值 c2[k+j] += c1[j];}}}for(int j = 0; j <= sum; j ++){c1[j] = c2[j];c2[j] = 0;} }int i; for (i = 0; i <= sum; i++) { if (c1[i] == 0) break; } //如果sum以内的值都能够表示出来,则不能够表示的最小数是sum+1; printf("%d\n", i); }return 0;}
0 0
- HDU1085 Holding Bin-Laden Captive!,母函数
- HDU1085 Holding Bin-Laden Captive! 【母函数】
- 【HDU1085】Holding Bin-Laden Captive! 母函数
- HDU1085 Holding Bin-Laden Captive!(母函数)
- HDU1085 Holding Bin-Laden Captive!(母函数)
- Holding Bin-Laden Captive!(hdu1085)——母函数
- hdu1085-Holding Bin-Laden Captive!
- hdu1085 Holding Bin-Laden Captive!
- hdu1085 Holding Bin-Laden Captive!
- HDU1085 Holding Bin-Laden Captive!
- HDU1085 Holding Bin-Laden Captive!
- hdu1085(Holding Bin-Laden Captive!)
- hdu1085 Holding Bin-Laden Captive!
- (hdu1085)Holding Bin-Laden Captive!(母函数,打表)
- Holding Bin-Laden Captive!(母函数)
- Holding Bin-Laden Captive!(母函数)
- Holding Bin-Laden Captive!(母函数)
- Holding Bin-Laden Captive!(母函数)
- [PlantSimulation]User Interface应用(一)
- View & ViewGroup 之 事件分发
- Nginx的加强版Tengine的安装过程
- linux 基本操作(逐步累积)
- Python-pandas常用函数
- HDU1085 Holding Bin-Laden Captive!(母函数)
- 中英文对照 —— 网络与通信
- 数组最大元素与最后一位元素进行交换最小元素与第一位元素进行交换,
- F
- JavaBean简单及使用
- 项目中用到的sql语句(case when...then... end )
- Web.xml配置详解之context-param
- hihoCoder 1079 : 离散化(线段树之连续区间+离散化) 经典题型
- Java多线程编程核心(1)