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. poj2243

    Knight Moves Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13433   Accepted: 7518 Des ...

  2. Servlet & JSP - HttpSession

    关于 Session 的内容,参考 HTTP - Session 机制 创建和检索 HttpSession 通过 HttpServletRequest.getSession 方法可以获取 HttpSe ...

  3. ActiveMQ(5.10.0) - 使用 JDBC 持久化消息

    1. 编辑 ACTIVEMQ_HOME/conf/activemq.xml. <beans> <broker brokerName="localhost" per ...

  4. 第一回 认识Bootstrap

    Bootstrap 是Twitter推出的一个用于前端开发的开源工具包. Bootstrap是基于HTML5和CSS3开发的,它在jQuery的基础上进行了更为个性化和人性化的完善,形成一套自己独有的 ...

  5. sql常识-union

    SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每 ...

  6. php递归方法实现无限分类实例

    数组:  代码如下 复制代码 $items = array( array('id' => 1, 'pid' => 0, 'name' => '一级11' ), array('id' ...

  7. asp.net页面与页面之间传参数值

    一.利用POST传值 传值asp文件send.aspx  代码如下 复制代码 <form id="form1" runat="server" action ...

  8. mysql补集合计算

    mysql补集计算方法:   两表是1对多关系,user_id是关联字段,两表的数据量都是千万级别的     子查询实现 select count(*),sum(total_money) from A ...

  9. Oracle中NVARCHAR2字符集不匹配问题

    Oracle中在做字符匹配时 遇到 NVARCHAR2 类型时报错,提示 字符集不匹配. 对使用 NVARCHAR2 的地方,需要对字段进行字符转换,加上 to_char(nvarchar2 字段) ...

  10. 简单快速的伪Fractional Cascading

    Fractional Cascading算法是用于将零散的多个数组(亦可理解成比较高维的空间)中的数据的二分查找速度增加,用的是空间换时间的方法.然而这种方法并不是很好懂,而且中文文献很少.在这里介绍 ...