杭电acm 1085 Holding Bin-Laden Captive!
来源:互联网 发布:淘宝开店铺 编辑:程序博客网 时间:2024/05/12 16:15
Holding Bin-Laden Captive!
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 16934 Accepted Submission(s): 7620
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!
`
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
这道题目也是用母函数,但也可以用其他方法做。由于这几天比较忙,具体的细节就不注释了,大家如果有什么问题可以留言,我每天都会登上去看一下,看到会回复的。
母函数:
#include <iostream>using namespace std;int num[8004],d[3004];int main(){ int A,B,C; while(cin>>A>>B>>C){ if(A==0 && B==0 && C==0) break; int n=0; memset(num,0,sizeof(num)); memset(d,0,sizeof(d)); for(int i=0;i<=A;i++) for(int j=0;j<=B;j++) d[i+j*2]=i+j*2; for(int i=0;i<3004;i++) for(int j=0;j<=C;j++) num[d[i]+j*5]=d[i]+j*5; int i; for(i=1;i<8004;i++) if(num[i]==0) break; cout<<i<<endl; } return 0;}
其他方法:
#include <iostream>using namespace std;int main(){ int A,B,C; while(cin>>A>>B>>C){ if(A==0 && B==0 && C==0) break; if(A==0) cout<<"1"<<endl; else if(B<=1) cout<<A+B*2+1<<endl; else cout<<A+B*2+C*5+1<<endl; } return 0;}
- 杭电 HDU ACM 1085 Holding Bin-Laden Captive!
- 杭电acm 1085 Holding Bin-Laden Captive!
- 杭电 acm 1085 Holding Bin-Laden Captive!
- 杭电(1085)Holding Bin-Laden Captive!
- 杭电acm1085 Holding Bin-Laden Captive!
- 杭电ACM hdu 1085 Holding Bin-Laden Captive! 解题报告(母函数)
- 杭电ACM 1085 Holding Bin-Laden Captive!(母函数)
- 1085 Holding Bin-Laden Captive!
- 杭电acm1085.Holding Bin-Laden Captive!(母函数)
- HDU ACM 1085 Holding Bin-Laden Captive! 母函数?
- HDU ACM 1 1085 Holding Bin-Laden Captive!
- Holding Bin-Laden Captive!
- Holding Bin-Laden Captive!
- Holding Bin-Laden Captive!
- Holding Bin-Laden Captive!
- Holding Bin-Laden Captive!
- Holding Bin-Laden Captive!
- Holding Bin-Laden Captive!
- 5.3.5 Convert Sorted List to Binary Sear Tree
- 信息系统项目管理师目录
- 欢迎使用CSDN-markdown编辑器
- matches()
- 23种设计模式全解析
- 杭电acm 1085 Holding Bin-Laden Captive!
- linux uniq 命令详解
- google guava中定义的String操作
- HDU 2600 war
- oracle 主键 外键
- Java(Android)线程池
- c#.NET中容易混淆的委托与接口
- N-Queens(N皇后问题) --Java版
- pintos线程转换机制