问题描述
每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。
现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。
(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)
输入格式
两个整数,表示m和n
输出格式
一个整数,表示队伍的排法的方案数。
样例输入
3 2
样例输出
5
数据规模和约定
每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。
现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。
(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)
输入格式
两个整数,表示m和n
输出格式
一个整数,表示队伍的排法的方案数。
样例输入
3 2
样例输出
5
数据规模和约定
m,n∈[0,18]
#include<stdio.h>
int dfs(int m,int n)//还借同一窗口,是分步进行的
{
if(m < n)
return 0;
else if(n == 0)
return 1;
else return dfs(m-1,n) + dfs(m,n-1);//从上往下分为先借还是先还鞋子
}
int main()
{
int m,n;
scanf("%d",&m);
scanf("%d",&n);
printf("%d",dfs(m,n));
}
- 这题只要搞懂了是一个窗口进行的借还问题就没啥问题了