![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯
算法
Buns.
这个作者很懒,什么都没留下…
展开
-
第十一届蓝桥杯第二次模拟 7.螺旋
【问题描述】对于一个 n 行 m 列的表格,我们可以使用螺旋的方式给表格依次填上正整数,我们称填好的表格为一个螺旋矩阵。例如,一个 4 行 5 列的螺旋矩阵如下:1 2 3 4 514 15 16 17 613 20 19 18 712 11 10 9 8【输入格式】输入的第一行包含两个整数 n, m,分别表示螺旋矩阵的行数和列数。第二行包含两个整数 r, c,表示要求的行号和列号。【输出格式】输出一个整数,表示螺旋矩阵中第 r 行第 c 列的元素的值。【样例输入】4 52 2【样例输出】15【评测用例规模原创 2020-08-08 16:57:25 · 286 阅读 · 0 评论 -
蓝桥杯 算法训练 最短路
问题描述给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。输入格式第一行两个整数n, m。接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。输出格式共n-1行,第i行表示1号点到i+1号点的最短路。样例输入3 31 2 -12 3 -13 1 2样例输出-1-2数据规模与约定对于10%的数据,n = 2,m = 2。对于30%的数据,n <= 5,m <= 10原创 2020-06-12 15:59:30 · 216 阅读 · 0 评论 -
蓝桥杯 算法训练 K好数(java实现)解析
资源限制时间限制:1.0s 内存限制:256.0MB问题描述如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。输入格式输入包含两个正整数,K和L。输出格式输出一个整数,表示答案对1000000007取模后的值。样例输入4 2样例输出7数据规模与约定对于原创 2020-06-11 14:48:48 · 287 阅读 · 0 评论 -
蓝桥杯: 基础练习 十六进制转八进制
题目:资源限制时间限制:1.0s 内存限制:512.0MB问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。样例输入 2 3原创 2020-06-07 21:25:58 · 453 阅读 · 0 评论 -
蓝桥杯:青蛙跳杯子
X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。*WWWBBB其中,W字母表示白色青蛙,B表示黑色青蛙,*表示空杯子。X星的青蛙很有些癖好,它们只做3个动作之一:跳到相邻的空杯子里。隔着1只其它的青蛙(随便什么颜色)跳到空杯子里。隔着2只其它的青蛙(随便什么颜色)跳到空杯子里。对于上图的局面,只要1步,就可跳成下图局面:WWW*BBB本题的任务原创 2020-05-20 01:33:28 · 200 阅读 · 0 评论 -
蓝桥杯:合根植物
w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗?输入格式:第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<m,n<1000)。接下来一行,一个整数k,表示下面还有k行数据(0<k<100000)接下来k行,第行两个整数a,b,表示编原创 2020-05-20 00:21:06 · 111 阅读 · 0 评论 -
蓝桥杯:分酒问题
有4个红酒瓶子,它们的容量分别是:9升, 7升, 4升, 2升开始的状态是 [9,0,0,0],也就是说:第一个瓶子满着,其它的都空着。允许把酒从一个瓶子倒入另一个瓶子,但只能把一个瓶子倒满或把一个瓶子倒空,不能有中间状态。这样的一次倒酒动作称为1次操作。假设瓶子的容量和初始状态不变,对于给定的目标状态,至少需要多少次操作才能实现?本题就是要求你编程实现最小操作次数的计算。输入:最终状...原创 2020-04-23 18:37:36 · 526 阅读 · 0 评论 -
蓝桥杯:迷宫问题
如上图的迷宫,入口,出口分别:左上角,右下角“1"是墙壁,”."是通路求最短需要走多少步?public class Maze { //from:触发位置 goal:目标位置 static int f(char[][] data, Set<String> from, String goal) { if(from.contains(goal)) return 0; S...原创 2020-04-23 01:06:06 · 586 阅读 · 0 评论 -
蓝桥杯:环形涂色
如图,组成环形的格子需要涂3种颜色。它们的编号分别是1~14相邻的格子不能用相同的颜色。涂色方案的数目是:16386当格子数目为50的时候,求涂色方案总数。public class RingColor { // 递归解法 /* static long f(int n) { if(n==2) return 6; if(n==3) return 6; return 2...原创 2020-04-22 01:23:10 · 3274 阅读 · 1 评论 -
蓝桥杯:大数乘法
用串的形式表示大数的乘法。即求类似: “23234845847839461464158174814792” * “6457847285617487843234535”要求结果返回一个串。public class LargeNumberMultiply { static String zero(int n) { String s = ""; for(int i=1; i<=n;...原创 2020-04-21 23:39:36 · 285 阅读 · 0 评论 -
蓝桥杯:最大序列和
题目:数组中整数有正有负求一连续子段,使得和最大化例如:2,4,-7,5,2,-1,2,-4,3最大连续段:5,2,-1,2其最大和为8public class MaximumSequenceSum { static int work(int[] a, int begin, int end) { if(end-begin==1) { if(a[begin]>0) ...原创 2020-04-20 22:23:00 · 276 阅读 · 0 评论 -
蓝桥杯:二分查找
已知有序的序列,比如:2,3,3,5,9,9,9,12,12,13,15,22,22,22,22,25,25,91,95有整数x,比如: x=23要求找到一个刚好比x稍微大一点的元素位置当数组较大的时候,需要二分查找加快速度。public class BinarySearch { static int f(int[] a, int begin, int end, int n) { i...原创 2020-04-20 01:16:09 · 497 阅读 · 0 评论 -
蓝桥杯:火柴游戏
这是一个纵横火柴棒游戏。如图1,在3x4的格子中,游戏的双方轮流放置火柴棒。其规则是:不能放置在已经放置了火柴棒的地方(即只能在空格中放置)。火柴棒的方向只能是竖直或水平放置。火柴棒不能与其它格子中的火柴“连通”。所谓连通是指两根火柴棒可以连成一条直线,且中间没有其它不同方向的火柴“阻拦”。例如:图1所示的局面下,可以在C2位置竖直放置(为了方便描述格子位置,图中左、下都添加了...原创 2020-04-17 23:56:05 · 265 阅读 · 0 评论 -
蓝桥杯:高斯日记
大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12...原创 2020-04-17 17:27:48 · 110 阅读 · 0 评论 -
蓝桥杯:excel地址
Excel单元格的地址表示很有趣,它使用字母来表示列号,比如:A表示第1列,B表示第2列,Z表示第26列,AA表示第27列,AB表示第28列,BA表示第53列,…当然Excel的最大列号是有限度的,所以转换起来不难。如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列呢?本题目既是要求对输入的数字, 输出其对应的Excel地址表示方式。例如,输入:26则程...原创 2020-04-17 16:34:12 · 217 阅读 · 0 评论 -
蓝桥杯:古代赌局(概率实验)
俗话说:十赌九输。因为大多数赌局的背后都藏有阴谋。不过也不尽然,有些赌局背后藏有的是:“阳谋”。有一种赌局是这样的:桌子上放六个匣子,编号是1至6。多位参与者(以下称玩家)可以把任意数量的钱押在某个编号的匣子上。所有玩家都下注后,庄家同时掷出3个骰子(骰子上的数字都是1至6)。输赢规则如下:1.若只有1个骰子上的数字与玩家所押注的匣子号相同,则玩家拿回自己的押注,庄家按他押注的数目赔付...原创 2020-04-16 21:13:02 · 401 阅读 · 0 评论 -
蓝桥杯:高僧斗法
题目:古时丧葬活动中经常请高僧做法事。仪式结束后,有时会有“高僧斗法”的趣味节目,以舒缓压抑的气氛。节目大略步骤为:先用粮食(一般是稻米)在地上“画”出若干级台阶(表示N级浮屠)。又有若干小和尚随机地“站”在某个台阶上。最高一级台阶必须站人,其它任意。两位参加斗法的法师分别指挥某个小和尚向上走任意多级的台阶,但会被站在高级台阶上的小和尚阻挡,不能越过。两个小和尚也不能站在同一台阶,也不...原创 2020-04-16 20:54:07 · 308 阅读 · 0 评论 -
蓝桥杯:填字母
题目:轮到某人填的时候,只能在某个空格中填入L或O谁先让字母组成了“LOL”的字样,谁获胜。如果所有格子都填满了,仍无法组成LOL,则平局。小明试验了几次都输了,他很惭愧,希望你能用计算机帮他解开这个谜。本题的输入格式为:第一行,数字n(n<10),表示下面有n个初始局面。接下来,n行,每行一个串,表示开始的局面。比如:“******”, 表示有6个空格。“L****”,...原创 2020-04-15 23:09:45 · 106 阅读 · 0 评论 -
蓝桥杯:取球博弈
今盒里有n个小球,A、B两人轮流从盒中取球。每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个。两人都很聪明,不会做出错误的判断。每个人从盒子中取出的球的数目必须是:1,3,7或者8个。轮到某一方取球时不能弃权!A先取球,然后双方交替取球,直到取完。被迫拿到最后一个球的一方为负方(输方)编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A是否能赢?public ...原创 2020-04-15 18:23:26 · 256 阅读 · 0 评论 -
蓝桥杯:日期问题
问题1:2015-3-2 距离 1979-12-15 多少天?计算有相差多少天可以用Data类,但由于Data类会有时区上的问题,所以自己创建计算方法public class DataCompute { static int day_count(int year1,int month1,int day1, int year2,int month2,int day2) { ...原创 2020-04-14 17:47:39 · 230 阅读 · 0 评论 -
蓝桥杯:素数
求101-200之间的所有素数public class Sushu { public static void main(String[] args) { a1:for(int i = 101; i<=200; i++) { for(int j=2; j<(int)Math.sqrt(i); j++) { if(i%j==0) continue a1; } ...原创 2020-04-14 14:58:28 · 183 阅读 · 0 评论 -
蓝桥杯:奇怪的捐赠
地产大亨Q先生临终的遗愿是:拿出100万元给X社区的居民抽奖,以稍慰藉心中愧疚。麻烦的是,他有个很奇怪的要求:100万元必须被正好分成若干份(不能剩余)。每份必须是7的若干次方元。比如:1元, 7元,49元,343元,…相同金额的份数不能超过5份。在满足上述要求的情况下,分成的份数越多越好!请你帮忙计算一下,最多可以分为多少份?public class Donate...原创 2020-04-13 17:20:11 · 570 阅读 · 0 评论 -
蓝桥杯:有理数
如果求 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + … + 1/100 = ?要求绝对精确,不能有误差。思路:使用double计算会丢失精度,需要自己创建有理数类public class Rati { private BigInteger zi = BigInteger.ZERO; private BigInteger mu = BigInteger.ONE; st...原创 2020-04-12 21:53:17 · 156 阅读 · 0 评论 -
蓝桥杯:一步之遥
从昏迷中醒来,小明发现自己被关在X星球的废矿车里。矿车停在平直的废弃的轨道上。他的面前是两个按钮,分别写着“F”和“B”。小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。按F,会前进97米。按B会后退127米。透过昏暗的灯光,小明看到自己前方1米远正好有个监控探头。他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。或许,通过多次操作F和B可以办到。矿车上的动力已经...原创 2020-04-10 23:17:10 · 120 阅读 · 0 评论 -
蓝桥杯:公约数公倍数
求两数的最大公约数,最小公倍数欧几里得定理:gcd(A,B) = gcd(B,A%B)质因数分解唯一性: n = p1^n1 * p2^ n2…public class CommonDivisorAndMultiple { static int gcd(int a, int b) { if(b==0) return a; return gcd(b, a%b); } stat...原创 2020-04-10 16:31:06 · 91 阅读 · 0 评论 -
蓝桥杯:尼姆堆(详细解说 )
题目:有3堆硬币,分别是3,4,5二人轮流取硬币。每人每次只能从某一堆上取任意数量。不能弃权。取到最后一枚硬币的为赢家。求先取硬币一方有无必胜的招法。思路:使用尼姆堆的模2加(异或)解法意思是:设先手的人是a,后手的人是b。将a准备抓所以堆的数量进行异或,结果为0的话,那么a必输(既无论如何抓,b都有办法让a输);如果不为0,那就a抓堆后让b的所有堆的数量异或为0,a便无论如何都有...原创 2020-04-10 15:16:17 · 810 阅读 · 0 评论 -
蓝桥杯:天平称重
用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。如果只有5个砝码,重量分别是1,3,9,27,81则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。本题目要求编程实现:对用户给定的重量,给出砝码组合方案。例如:用户输入:5程序输出:9-3-1用户输入:19程序输出:27-9+1要求程序输出的组合总是大数在前小数在后。可以假设用户的输...原创 2020-04-08 23:20:44 · 244 阅读 · 0 评论 -
蓝桥杯:扑克序列
A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。请填写出所有符合要求的排列中,字典序最小的那个。例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。public class Poker { static Set<String> set...原创 2020-04-08 22:18:31 · 324 阅读 · 0 评论 -
蓝桥杯:组合重复
有重复的字母中求取出m个所有组合例如: “AAABBCCCCDD” 中取3个字母的所有组合public class CombinationRepeat { static void work(int[] x) { for(int i=0; i<x.length;i++) { for(int k=0; k< x[i];k++) { System.out.print(...原创 2020-04-07 01:21:04 · 268 阅读 · 0 评论 -
蓝桥杯:搭积木
小明最近喜欢搭数字积木。一共有10块积木,每个积木上有一个数字,0~9。搭积木规则:每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。最后搭成4层的金字塔形,必须用完所有的积木。下面是两种合格的搭法:01 23 4 56 7 8 903 17 5 29 8 6 4请你计算这样的搭法一共有多少种?public class BuildingBlocks { ...原创 2020-04-06 02:01:14 · 115 阅读 · 0 评论 -
蓝桥杯:字符串全排列
题目:已知不同字母构成的串,求它的全排列方法一:public class FullArray { static List<String> f(String s){ List<String> list = new ArrayList<>(); if(s.length()==1) { list.add(s); return list...原创 2020-04-02 09:30:34 · 233 阅读 · 0 评论 -
蓝桥杯:39级台阶
小明刚刚看完电影《第39级台阶》。离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?请你利用计算机的优势,帮助小明寻找答案。public class ClimbingStairs { //i表示走的台阶级...原创 2020-03-29 16:57:06 · 357 阅读 · 0 评论 -
蓝桥杯:找钱问题
公园票价为5角。假设每位游客只持有两种币值的货币:5角、1元。再假设持有5角的有m人,持有1元的有n人。由于特殊情况,开始的时候,售票员没有零钱可找。我们想知道这m+n名游客以什么样的顺序购票则可以顺利完成购票过程。显然,m < n的时候,无论如何都不能完成;m>=n的时候,有些情况也不行。比如,第一个购票的乘客就持有1元。请计算出这m+n名游客所有可能顺利完成购票的不同情...原创 2020-03-28 22:41:07 · 284 阅读 · 0 评论 -
蓝桥杯:算式符号
某批警察叔叔正在进行智力训练:1 2 3 4 5 6 7 8 9 = 110请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号)。之间没有填入符号的数字组合成一个数,例如:12+34+56+7-8+9 就是一种合格的填法;123+4+5+67-89 是另一个可能的答案。请你利用计算机的优势,帮助警察叔叔快速找到所有答案。每个答案占一行。形如:12+...原创 2020-03-28 01:26:54 · 192 阅读 · 0 评论 -
蓝桥杯:出栈次序问题
X星球特别讲究秩序,所有道路都是单行线。一个甲壳虫车队,共16辆车,按照编号先后发车,夹在其它车流中,缓缓前行。路边有个死胡同,只能容一辆车通过,是临时的检查站,如图所示。X星球太死板,要求每辆路过的车必须进入检查站,也可能不检查就放行,也可能仔细检查。如果车辆进入检查站和离开的次序可以任意交错。那么,该车队再次上路后,可能的次序有多少种?为了方便起见,假设检查站可容纳任意数量的汽车。...原创 2020-03-26 18:25:43 · 151 阅读 · 0 评论 -
蓝桥杯:罗马数字
题目:古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了。之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原因,当时的宗教禁止在数字中出现 0 的概念!罗马数字的表示主要依赖以下几个基本符号:I --> 1V --> 5X --> 10L --> 50C --&...原创 2020-03-25 22:30:46 · 268 阅读 · 0 评论