HDU 2566 统计硬币

时间:2022-05-07
本文章向大家介绍HDU 2566 统计硬币,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

统计硬币

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7304    Accepted Submission(s): 5016

Problem Description

假设一堆由1分、2分、5分组成的n个硬币总面值为m分,求一共有多少种可能的组合方式(某种面值的硬币可以数量可以为0)。

Input

输入数据第一行有一个正整数T,表示有T组测试数据; 接下来的T行,每行有两个数n,m,n和m的含义同上。

Output

对于每组测试数据,请输出可能的组合方式数; 每组输出占一行。

Sample Input

2

3 5

4 8

Sample Output

1

2

Author

lemon

Source

绍兴托普信息技术职业技术学院——第二届电脑文化节程序设计竞赛

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2566

分析:这题有点小坑啊!WA了四次才过,三个for循环就可以搞定,搜索其中可能解,统计其可能解的个数!

下面给出AC代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int T,n,m;
 6     int a,b,c;
 7     while(cin>>T)
 8     {
 9         while(T--)
10         {
11             cin>>n>>m;
12             int ans=0;
13             for(a=0;a<=m;a++)
14             {
15                 for(b=0;b<=m/2;b++)
16                 {
17                     for(c=0;c<=m/5;c++)
18                     if(a*1+b*2+c*5==m&&(a!=0||b!=0||c!=0)&&a+b+c==n)
19                         ans++;
20                 }
21             }
22             cout<<ans<<endl;
23         }
24     }
25     return 0;
26 }