蓝桥杯-未名湖边的烦恼(java)
算法训练 未名湖边的烦恼 时间限制:1.0s 内存限制:256.0MB问题描述每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式两个整数,表示m和n输出格式一个整数,表示队伍的排法的方案数。样例输入3 2样例输出5数据规模和约定m,n∈[0,18]问题分析
解题思路:这是一种类似汉诺塔问题的题目,首先要保证换鞋的人m 多于借鞋的人n。否则,无论怎么排序,都是会出现无鞋可借的尴尬局面。
所以,首先判断(m>n),否则返回0,表示没有方法来排序。
package com.sihai.advance;import java.util.Scanner;public class Mominghudeyoushang {public static int fun(int m,int n) { if(m<n) { return 0; } else if (n==0) { return 1; } else return fun(m-1,n)+fun(m,n-1); } public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int m = scanner.nextInt();int n = scanner.nextInt();System.out.println(fun(m,n));}
}
注意:这里的return fun(m-1,n)+fun(m,n-1) 前面的fun(m-1,n)意思是还鞋子的一个人站在最前面,之后剩下的哪些人再接着排序,fun(m,n-1) 意思是借鞋子的人站在最后面,剩下的再接着排序。
下面再看一个例子:
爬楼梯问题:
一段楼梯共n级台阶,每次只能走一级或两级,问共有多少种走法?列出n=10时的所有走法。
乍看知道问题感觉还是稍显的有些麻烦,我们这样子来想,假如 n = 7 时,最后一步是会有f(7) = f(5) + f(6)
得在 n = 1和2的时候,我们得到f(1),f(2)为1
所以,我们到下面的公式
说白了,这个其实就是斐波那契数列
package com.sihai.advance;public class ClimbStairs { public int stairs(int n) { if (n == 1) return 1; if (n == 2) return 2; else { return stairs(n - 1) + stairs(n - 2); } } public static void main(String[] args) { int n = 7; ClimbStairs cs = new ClimbStairs(); int sum = cs.stairs(n); System.out.println(sum); } }
蓝桥杯-未名湖边的烦恼(java)相关推荐
- 蓝桥杯 未名湖边的烦恼
蓝桥杯 未名湖边的烦恼 问题描述 每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩. 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个 ...
- 蓝桥杯 未名湖边的烦恼 引发的递归问题探讨
未名湖边的烦恼 问题描述 每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩. 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要 ...
- 蓝桥杯 未名湖边的烦恼
<span style="font-size:18px;">问题描述每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常 ...
- 2022年第十三届蓝桥杯大赛软件省赛Java学B组试题
第十三届蓝桥杯大赛软件省赛Java学B组试题 一.试题截图 1. 星期计算 这道题是可以直接用笔算起来的,我算出来的答案是5,(2022整除7 余6,六天后就是星期五)但目前官方答案还不知道是什么? ...
- 第十三届蓝桥杯模拟赛第二期JAVA组个人题解
第十三届蓝桥杯模拟赛第二期JAVA组个人题解 文章目录 第十三届蓝桥杯模拟赛第二期JAVA组个人题解 题目1 题目2 题目3 题目4 题目5 题目6 题目7 题目8 题目9 题目10 题目1 小蓝的I ...
- 蓝桥杯练习系统之基础训练Java版(2-26)—— 报时助手
蓝桥杯练习系统之基础训练Java版(2-26)-- 报时助手 **难度等级:普通****关键字:字符串 条件判断** 问题描述: 给定当前的时间,请用英文的读法将它读出来.时间用时h和分m表示,在英文 ...
- 蓝桥杯练习系统-入门训练java版
蓝桥杯练习系统-入门训练:http://lx.lanqiao.cn/problemset.page?code=BEGIN-&userid=301077 package 蓝桥杯系统入门训练;im ...
- 第十三届蓝桥杯大赛软件类决赛Java大学B组C题——左移右移
[问题描述] 小蓝有一个长度为 N 的数组,初始时从左到右依次是 1, 2, 3, . . . N. 之后小蓝对这个数组进行了 M 次操作,每次操作可能是以下 2 种之一: 左移 x,即把 x 移动到 ...
- 第六届蓝桥杯大赛个人赛省赛Java B组真题
文章目录 第六届蓝桥杯大赛个人赛省赛Java B组真题 1. 三角形面积(结果填空) 2. 立方自变身(结果填空) 3. 三羊献瑞(结果填空) 4. 循环节长度(代码填空) 5. 九数组分数(代码填空 ...
最新文章
- 代码之美——Doom3源代码赏析2
- C++ 常用函数方法
- Java学习day2
- vagrant 基本命令讲解
- 浏览器兼容CSS渐进增强 VS 优雅降级如何选择
- es 时间字段聚合_ES之五:ElasticSearch聚合
- 《天天数学》连载23:一月二十三日
- Python人脸识别的简要介绍(附实例、Python代码)
- python高阶函数(三分钟读懂)
- 【实物】端到端自动驾驶搭建教程(二)附完整资料
- 报错:1130-host ... is not allowed to connect to this MySql server
- 超 短 高精度 bign 模板
- SpringBoot 整合 JPA
- SkeyeARS 全景AR增强监视系统解决方案
- 氩弧焊机的电气图_氩弧焊机的工作原理以及接线图
- 微信公众号文章如何设置关键词自动回复链接
- ValueError: bad transparency mask
- Mongodb节点同步失败状态“ RECOVERING ”恢复
- 记录一次dns劫持及其解决办法
- springboot整合redis做缓存