未名湖的烦恼的递归问题
2017-03-19 16:14
176 查看
未名湖的烦恼
每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。
每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)
输入格式
两个整数,表示m和n
输出格式
一个整数,表示队伍的排法的方案数。样例输入3 2样例输出5数据规模和约定 m,n∈[0,18]
以下是网上大牛们贴出的代码:
我一直都不能很清楚的理解这行代码:
在网上也没看到大牛们清晰的解释,反倒是看到很多人解释的意思完全不一样???
正好我刚学会一丢丢dfs,嘿嘿,本着现学现卖的原则我就用dfs做了一遍,各种yy,见笑:
每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。
每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)
输入格式
两个整数,表示m和n
输出格式
一个整数,表示队伍的排法的方案数。样例输入3 2样例输出5数据规模和约定 m,n∈[0,18]
以下是网上大牛们贴出的代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = sc.nextInt(); System.out.println(fun(m, n)); } public static int fun(int m, int n) { if (m < n) return 0; if (n == 0) return 1; return fun(m - 1, n) + fun(m, n - 1); } }
我一直都不能很清楚的理解这行代码:
return fun(m - 1, n) + fun(m, n - 1);
在网上也没看到大牛们清晰的解释,反倒是看到很多人解释的意思完全不一样???
正好我刚学会一丢丢dfs,嘿嘿,本着现学现卖的原则我就用dfs做了一遍,各种yy,见笑:
import java.util.Scanner; //dfs public class Main { static int[] mk = new int[100]; static int count = 0; public static void main(String 4000 [] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = sc.nextInt(); dfs(m, n); System.out.println(count); } public static void dfs(int m, int n) { if (m < n || m < 0 || n < 0) // 当借鞋子的人数大于还鞋子的人数时排序方法为0(同时解决边界问题) return; if (n == 0) { // 当借鞋子的人数为0时,只有一种排序方法。 count += 1; return; } // 继续向下搜索,从最后一位开始排序。 dfs(m - 1, n); // 当下一位为还鞋子的人时 dfs(m, n - 1); // 当下一位为借鞋子的人时 } }
相关文章推荐
- 蓝桥杯 未名湖边的烦恼 引发的递归问题探讨
- 关于未名湖边的烦恼问题
- 蓝桥杯--算法训练 未名湖边的烦恼 (递归)
- NYOJ 279 队花的烦恼二和NYOJ 176 整数划分(二)【dp问题或递归】
- 蓝桥杯--未名湖边的烦恼 --- 递归
- 递归算法之排队购票问题(未名湖边的烦恼)java实现
- 蓝桥杯算法训练——未名湖边的烦恼 (递归)
- 递归--未名湖边的烦恼
- 蓝桥杯--算法训练 未名湖边的烦恼 (递归)
- 蓝桥杯ALGO122 未名湖边的烦恼(递归 递推)
- 未名湖边的烦恼问题
- 蓝桥杯 算法训练 未名湖边的烦恼 (递推,递归)
- 蓝桥杯 - 未名湖边的烦恼(递归)
- 蓝桥杯 未名湖的烦恼(递归)
- 蓝桥杯 未名湖边的烦恼 (递归)
- 未名湖边的烦恼 动态规划+递归解法说明
- 租鞋排队问题(未名湖的烦恼)
- 蓝桥杯-未名湖边的烦恼-递归-java
- 递归完美解决"傻子造成的问题"
- 算法导论中间关于递归问题的master method的替代方法