poj--1664--放苹果(递归好体)
2024-08-31 04:30:44
Time Limit: 1000MS | Memory Limit: 10000KB | 64bit IO Format: %I64d & %I64u |
Description
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
Input
第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。
Output
对输入的每组数据M和N,用一行输出相应的K。
Sample Input
1
7 3
Sample Output
8
Source
lwx@POJ
(1)只有一个盘子的时候就只有把所有的苹果都放在一个盘子里,没有苹果的时候也没办法放
(2)盘子数多于苹果数时,最多放在m个盘子中dfs(m,m)
(3)m个苹果可以放在n-1个盘子中,当然,递归的时候也是可以做到放在n-2个盘子中,而如果说放在n个盘子中的话每个盘子至少有一个,也就是dfs(m-n,n);
(1)只有一个盘子的时候就只有把所有的苹果都放在一个盘子里,没有苹果的时候也没办法放
(2)盘子数多于苹果数时,最多放在m个盘子中dfs(m,m)
(3)m个苹果可以放在n-1个盘子中,当然,递归的时候也是可以做到放在n-2个盘子中,而如果说放在n个盘子中的话每个盘子至少有一个,也就是dfs(m-n,n);
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int dfs(int m,int n)
{
if(m==0||n==1)
return 1;
if(n>m)
dfs(m,m);
else
return dfs(m,n-1)+dfs(m-n,n);
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,m;
scanf("%d%d",&m,&n);
printf("%d\n",dfs(m,n));
}
return 0;
}
最新文章
- C# 生成验证码图片时消除锯齿
- onethink上传图片(资源)和预览
- Linq查询操作语句学习
- 从 Eclipse 导入项目到 Android Studio
- JS基础知识(数据类型)
- Android -- ViewRoot,关于子线程刷新UI
- 真心崩溃了,oracle安装完成后居然没有tnsnames.ora和listener.ora文件
- IntelliJ IDEA于Make Project时报:子字符串不是票面金额的结束、非法的表达式显示启动
- 辞 = or != 一个新的起点!!!
- ImageIO.write不好用了
- 【 DCOS 】织云 CMDB 管理引擎技术详解
- 数据库中table 和 schema的区别
- 【朝花夕拾】Android安全之(一)权限篇
- kibi - join and filter data from multiple Elasticsearch indexes
- log4j-日志记录小结
- Q: Is Consul eventually or strongly consistent?
- asp.net mvc Session RedisSessionStateProvider锁的实现
- got positional argument after named arguments.原因
- [UE4]Child Widget中的事件调度器
- Delphi TMemoryStream写入到字符串和字符串写入到流
热门文章
- 【HTTP】长连接和短连接
- P1375 嵌套矩形
- nprogress进度条和ajax全局事件
- SQL SERVER 2000 如何提高大数据筛选GROUP BY 的效率
- android开源新闻小程序、3D翻转公告效果、小说检索、Kotlin开发TODO清单等源码
- THREE.js代码备份——webgl - custom attributes [lines](自定义字体显示、控制字图的各个属性)
- css单双行样式
- Type inference
- C# 聚合数据借口发短信的使用
- <;转>;c++引用与指针的区别(着重理解)