http://acm.hdu.edu.cn/showproblem.php?pid=2566

假设一堆由1分、2分、5分组成的n个硬币总面值为m分,求一共有多少种可能的组合方式(某种面值的硬币可以数量可以为0)。
输入数据第一行有一个正整数T,表示有T组测试数据;
接下来的T行,每行有两个数n,m,n和m的含义同上。
对于每组测试数据,请输出可能的组合方式数;
每组输出占一行。
Sample Input
2
3 5
4 8
Sample Output
1
2
 
【题解】: 这里没有给出n,m的范围,建议使用第三种【code3】方式解
 
【code1】:暴力O(N*N)
 #include <iostream>
#include <stdio.h>
#include <string.h> using namespace std; int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int i,n,m,j;
scanf("%d%d",&n,&m);
int cnt=;
for(i=;i<=m/;i++)
{
for(j=;j<=m/;j++)
{
if(n-i-j+j*+i*==m&&n-i-j>=)
{
cnt++;
}
}
}
printf("%d\n",cnt);
}
return ;
}

【code2】:暴力 O(N)
  似乎只要1、2、5,硬币的个数中的一个固定了,另外两个也就一定

 #include <iostream>
#include <stdio.h>
#include <string.h> using namespace std; int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int i,n,m;
scanf("%d%d",&n,&m);
int cnt=;
for(i=;i<=m/;i++)
{
int ln = n-i;
int lm = m-i*;
if(lm>=ln&&lm<=*ln)
{
cnt++;
}
}
printf("%d\n",cnt);
}
return ;
}
 【code3】:优化(推荐)
 #include <iostream>
#include <stdio.h>
#include <string.h> using namespace std; int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,m,mins,maks;
scanf("%d%d",&n,&m);
if(m>=n) maks=(m-n)/;
else
{
puts("");
continue;
}
if(m-*n>=)
{
if((m-*n)% == )
mins=(m-*n)/;
else
mins=(m-*n)/ + ;
}
else mins=;
printf("%d\n",maks-mins+);
}
return ;
}

hdu 2566 统计硬币的更多相关文章

  1. HDOJ/HDU 2566 统计硬币(公式~遍历~)

    Problem Description 假设一堆由1分.2分.5分组成的n个硬币总面值为m分,求一共有多少种可能的组合方式(某种面值的硬币可以数量可以为0). Input 输入数据第一行有一个正整数T ...

  2. ACM: HDU 2563 统计问题-DFS+打表

    HDU 2563 统计问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u HDU 2 ...

  3. 统计硬币 HDU - 2566 (三种解法:线性代数解法,背包解法,奇思妙想解法 >_< )

    题号放这里自己去找吧. HDU-2566 这题最开始用的dp,然后,被同学用奇思妙想过了.  >_<  开心! -_- !! 然后,被我线性代数给过了. 方法一:dp 将其化为01背包,只 ...

  4. 【hdoj_2566】统计硬币(母函数?)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2566 本题可以借鉴母函数(组合数学)的思想. 题目可以这样理解:给一堆硬币,分别有1,2,5元的各无数个, ...

  5. hdu 1251 统计难题 (字典树入门题)

    /******************************************************* 题目: 统计难题 (hdu 1251) 链接: http://acm.hdu.edu. ...

  6. HDU 1251 统计难题(Trie模版题)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Subm ...

  7. HDU 1251 统计难题(字典树 裸题 链表做法)

    Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己 ...

  8. hdu 1251 统计难题(字典树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 统计难题 Time Limit: 4000/2000 MS (Java/Others)    M ...

  9. A题 hdu 1235 统计同成绩学生人数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1235 统计同成绩学生人数 Time Limit: 2000/1000 MS (Java/Others) ...

随机推荐

  1. hdu 2844 多重背包+单调队列优化

    思路:把价值看做体积,而价值的大小还是其本身,那么只需判断1-m中的每个状态最大是否为自己,是就+1: #include<iostream> #include<algorithm&g ...

  2. Jersey(1.19.1) - WebApplicationException and Mapping Exceptions to Responses

    Previous sections have shown how to return HTTP responses and it is possible to return HTTP errors u ...

  3. 160多个android开源代码汇总

    第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...

  4. contentProvider-联系人的CURD

    1.联系人的查找 返回一个ArrayList<HashMap<String,  String>>类型 //通过管理联系人的URI获取游标对象 Cursor cursor= ge ...

  5. 动态sql语句基本语法

    1 普通sql语句可以用exec执行,如: SELECT * FROM video EXEC ('SELECT * FROM video') EXEC sp_executesql N'SELECT * ...

  6. Agile.Net 组件式开发平台 - 数据报表组件

    Agile.Report.dll 文件为平台数据报表支持库,基于FasstReport.Net扩展重写,提供了非常强大的自定义报表的功能使开发者为应用程序快速有效地生成报表.报表类库提供了创建报表所需 ...

  7. Linux 命令行技巧

    这是一个linux常见命令的列表.那些有• 标记的条目,你可以直接拷贝到终端上而不需要任何修改,因此你最好开一个终端边读边剪切&拷贝.所有的命令已在Fedora和Ubuntu下做了测试 命令 ...

  8. asp.net sql无限极分类实例程序

    数据库结构  代码如下 复制代码 create table category(    id                  int,                    clsno         ...

  9. autolayout高度动态改变的一些体会

    autolayout这个东西就不在此说明了,网上已经有很多大神做了很详细的讲解,自己也看了不少好文章,在这里只是想记录一下自己初步的一些认识与体会,这个东西毕竟还是很强大,如果要用到更高级的用法还得在 ...

  10. 【转】C# 后台开启 cmd执行命令

    private void RunCmd(string cmd)     {         System.Diagnostics.Process p = new System.Diagnostics. ...