HDU 2566 统计硬币

Posted Angel_Kitty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
分析:这题有点小坑啊!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 }

 

以上是关于HDU 2566 统计硬币的主要内容,如果未能解决你的问题,请参考以下文章

HDU 2844 多重背包

HDU 2844 Coins (多重背包问题DP)

HDU 5985 Lucky Coins(概率)

hdu 1698 Just a Hook

所有硬币组合问题——动态规划hdu2069

hdu 1284 钱币兑换问题