POJ 1664 放苹果
来源:互联网 发布:淘宝如何提高搜索排名 编辑:程序博客网 时间:2024/05/29 14:12
Description
Input
Output
Sample Input
17 3
Sample Output
8
分析:
当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响。即if(n>m) fun(m,n) = fun(m,m)
当n<=m:不同的放法可以分成两类:
1、有至少一个盘子空着,即相当于f(m,n) = f(m,n-1);
2、所有盘子都有苹果,相当于可以从每个盘子中拿掉一个苹果,不影响不同放法的数目,即fun(m,n) = fun(m-n,n).
总的放苹果的放法数目等于两者的和,即 fun(m,n) =fun(m,n-1)+fun(m-n,n)
递归出口条件:
当n=1时,所有苹果都必须放在一个盘子里,所以返回1;
当没有苹果可放时,定义为1种放法;
递归有两条路,第一条n逐渐减少,最终到达n==1; 第二条m逐渐减少终会到达出口m==0.
#include <iostream>
using namespace std;
int getGroupNum(int m,int n)
{
if(n ==1|| m == 0 )
return 1;
if(n>m)
return getGroupNum(m,m);
else
return getGroupNum(m-n,n)+getGroupNum(m,n-1);
}
int main()
{
int t = 0;
cin>>t;
if(t >= 0 && t<= 20)
{
while(t--)
{
int m = 0;
int n = 0;
cin>>m>>n;
if(m>=1 && n<=10)
cout<<getGroupNum(m,n)<<endl;
}
}
return 0;
}
- poj 1664 放苹果
- poj 1664 放苹果
- poj 放苹果 1664
- POJ 1664 放苹果
- POJ 1664 放苹果
- POJ 1664 放苹果
- POJ-1664-放苹果
- poj - 1664 - 放苹果
- poj 1664 放苹果
- POJ-1664(放苹果)
- poj 1664 放苹果
- POJ 1664 放苹果
- POJ 1664 放苹果
- POJ 1664 放苹果
- POJ 1664 放苹果
- poj 1664 放苹果
- poj 1664 放苹果
- POJ 1664 放苹果
- day 028 qq输入框加载FaceView
- 黑马程序员_面向对象
- Linux: Linux操作系统及常用命令
- hdu1213+并查集模板(优化)
- HDU2051 10进制转化成2进制
- POJ 1664 放苹果
- 黑马程序员—C语言—运算符小结
- EditText的一些常用功能
- Android 编程下图片的内存优化
- TextView属性大全
- px、dp和sp,这些单位有什么区别?
- spark:学习杂记--36
- 黑马程序员——API常见对象
- 杭电ACM1025——Constructing Roads In JGShining's Kingdom