蓝桥杯
文章平均质量分 55
小西yu
这个作者很懒,什么都没留下…
展开
-
蓝桥杯国赛 2020-7 皮亚诺曲线距离
蓝桥杯赛题解读原创 2022-07-28 19:16:33 · 287 阅读 · 0 评论 -
蓝桥杯省赛前的复盘
蓝桥杯复盘原创 2022-07-02 16:50:46 · 431 阅读 · 0 评论 -
蓝桥杯 2013-6 三部排序
题目描述一般的排序有许多经典算法,如快速排序、希尔排序等。但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情况建立更好的解法。比如,对一个整型数组中的数字进行分类排序:使得负数都靠左端,正数都靠右端,0在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过1次线性扫描就结束战斗!!以下的程序实现了该目标。 static void sort(int[] x) { int p = 0; int l原创 2022-03-19 10:22:32 · 74 阅读 · 0 评论 -
蓝桥杯 2016-10 压缩变换
题目描述小明最近在研究压缩算法。他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比。然而,要使数值很小是一个挑战。最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面出现的数字很大可能是刚出现过不久的数字。对于这种特殊的序列,小明准备对序列做一个变换来减小数字的值。变换的过程如下:从左到右枚举序列,每枚举到一个数字,如果这个数字没有出现过,刚将数字变换成它的相反数,如果数字出现过,则看它在原序列中最后的一次出现后面(且在当前数前面)出现了几种数字,用这个种类数替换原来的原创 2022-03-18 11:57:08 · 393 阅读 · 0 评论 -
蓝桥杯 2016-9 取球博弈
题目描述两个人玩取球的游戏。一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一个数目。如果无法继续取球,则游戏结束。此时,持有奇数个球的一方获胜。如果两人都是奇数,则为平局。假设双方都采用最聪明的取法,第一个取球的人一定能赢吗?试编程解决这个问题。输入第一行3个正整数n1 n2 n3,空格分开,表示每次可取的数目 (0<n1,n2,n3<100)第二行5个正整数x1 x2 … x5,空格分开,表示5局的初始球数(0<xi<1000)输出一原创 2022-03-18 11:00:37 · 229 阅读 · 0 评论 -
蓝桥杯 2015-10 生命之树
题目描述:在X森林里,上帝创建了生命之树。他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值。上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都存在一个点列 {a, v1, v2, …, vk, b} 使得这个点列中的每个点都是S里面的元素,且序列中相邻两个点间有一条边相连。在这个前提下,上帝要使得S中的点所对应的整数的和尽量大。这个最大的和就是上帝给生命之树的评分。经过atm的努力,他已经知道了上帝给每棵树上每个节点上的整数。但是由于 atm原创 2022-03-18 10:01:09 · 97 阅读 · 0 评论 -
蓝桥杯 2014-10 矩阵翻硬币
小明先把硬币摆成了一个 n 行 m 列的矩阵。随后,小明对每一个硬币分别进行一次 Q 操作。对第x行第y列的硬币进行 Q 操作的定义:将所有第 ix 行,第 jy 列的硬币进行翻转。其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。当小明对所有硬币都进行了一次 Q 操作后,他发现了一个奇迹——所有硬币均为正面朝上。小明想知道最开始有多少枚硬币是反面朝上的。于是,他向他的好朋友小M寻求帮助。聪明的小M告诉小明,只需要对所有硬币再进行一次Q操作,即可恢复到最开始原创 2022-03-16 17:35:42 · 126 阅读 · 0 评论 -
蓝桥杯 2014-9 地宫取宝
X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这k件宝贝。输入输入一行3个整数,用空格分开:n m k原创 2022-03-16 16:18:46 · 76 阅读 · 0 评论 -
蓝桥杯 2014-1 武功秘籍
题目描述:小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走?这是个整数,请通过浏览器提交该数字,不要填写任何多余的内容。这个就是一个奇偶交替的问题,因为数据比较少,自己手推也是可以的。找规律,10,11在同一页,也就是偶+奇是同一页,那么一开始的81应该是和80是一页的,所以81独占一页后,连续两页都是原创 2022-03-15 21:18:05 · 145 阅读 · 0 评论 -
蓝桥杯 2014-2 切面条
一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。这个要找规律,但是只有三个数据,数据有点少,我们可以手推下一个数据是多少,但是实在画不出来,就找了个纸条,对折了三次后,从中间撕开,数一数,有九片。(一开始撕错了,撕成了5片)。值:2,3,5,9下标:1,2,3,4经验而言会是2的n次方,也不对原创 2022-03-15 20:59:55 · 361 阅读 · 0 评论 -
蓝桥杯 2014-3 猜字母
把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。一开始我用字符串写,发现我无法改变字符串中的某个位置的字符,但是可以用“”来替换某个字符实现删除某个字符。后来我用想用字符数组,但是字符数组不能实现简单的删除,删除很麻烦。最终用了List。还有原创 2022-03-15 20:48:07 · 71 阅读 · 0 评论 -
蓝桥杯 2014-4 大衍数列
中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。它的前几项是:0、2、4、8、12、18、24、32、40、50 …其规律是:对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2。以下的代码打印出了大衍数列的前 100 项。for(int i=1; i<100; i++){ if(________________) //填空 i % 2 == 0 System.out.println(i*i/2);原创 2022-03-15 20:34:04 · 74 阅读 · 0 评论 -
蓝桥杯 2014-5 圆周率
数学发展历史上,圆周率的计算曾有许多有趣甚至是传奇的故事。其中许多方法都涉及无穷级数。图1.png中所示,就是一种用连分数的形式表示的圆周率求法。下面的程序实现了该求解方法。实际上数列的收敛对x的初始值 并不敏感。结果打印出圆周率近似值(保留小数点后4位,并不一定与圆周率真值吻合)。double x = 111; for(int n = 10000; n>=0; n--){ int i = 2 * n + 1; x = 2 + (i*i / x);}System.out原创 2022-03-15 20:29:12 · 93 阅读 · 0 评论 -
蓝桥杯 2014-6 奇怪的分式
题目描述:上小学的时候,小明经常自己发明新算法。一次,老师出的题目是:1/4 乘以 8/5小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png)老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼!对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢?请写出所有不同算式的个数(包括题中举例的)。显然,交换分子分母后,例如:4/1 乘以 5/8 是满足要求的,这算做不同的算式。但对于分子分母相同的情况,2/2 乘以 3/3 这样的类型太多了,不原创 2022-03-15 19:58:48 · 101 阅读 · 0 评论 -
蓝桥杯 2014-7 扑克序列
题目描述:A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。请填写出所有符合要求的排列中,字典序最小的那个。例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。请通过浏览器提交答案。“A”一定不要用小写字母a,也不要用“1”代替。字符间一定不要留空格。其实其实这个自己就可以根据要求直接写出来的,字典序最小的是2,下一个不能还是2,因为2的中间要有两个牌,那原创 2022-03-15 19:42:03 · 126 阅读 · 0 评论 -
蓝桥杯 2014-8 分糖果
题目描述有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都把自己的糖果分一半给左手边的孩子。一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。反复进行这个游戏,直到所有小朋友的糖果数都相同为止。你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。输入程序首先读入一个整数N(2< N< 100),表示小朋友的人数。接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)输出要求程序输出一个整数,表示老原创 2022-03-15 19:31:06 · 141 阅读 · 0 评论 -
蓝桥杯 2017-10 k倍区间
题目描述给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。你能求出数列中总共有多少个K倍区间吗?输入:第一行包含两个整数N和K。(1 <= N, K <= 100000)以下N行每行包含一个整数Ai。(1 <= Ai <= 100000)输出:输出一个整数,代表K倍区间的数目。例如,输入:5 212345程序应该输出:6原创 2022-03-09 16:23:20 · 120 阅读 · 0 评论 -
蓝桥杯 2017-9 分巧克力
题目描述儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数大小相同例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?输入第一行包含两个整数N和K。(1 <= N, K <=原创 2022-03-09 15:54:26 · 57 阅读 · 0 评论 -
蓝桥杯 2017-8 包子取数
题目描述小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有3种蒸笼,分别能放4、5和6个包子。而顾客想买7个包子时,原创 2022-03-08 19:59:30 · 87 阅读 · 0 评论 -
蓝桥杯 2017-7 日期问题
我去,终于过了,没啥算法水准的题,我花了一个半小时才调试通过!!!!!!!!!!!题目描述小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。原创 2022-03-08 11:22:58 · 154 阅读 · 0 评论 -
蓝桥杯 2017-6 最大公共子串
题目描述最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少。比如:“abcdkkk” 和 “baabcdadabc”,可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。请分析该解法的思路,并补全划线部分缺失的代码。public class Main{ static int f(String s1, String s2) { char[] c1 =原创 2022-03-08 09:18:52 · 136 阅读 · 0 评论 -
蓝桥杯 2017-5 取数位
题目描述求1个整数的第k位数字有很多种方法。以下的方法就是一种。public class Main{undefinedstatic int len(int x){undefinedif(x<10) return 1;return len(x/10)+1;}// 取x的第k位数字static int f(int x, int k){undefinedif(len(x)-k==0) return x%10;return ______________________; //填空}原创 2022-03-07 19:47:06 · 88 阅读 · 0 评论 -
蓝桥杯 2017-3 承压计算
题目描述:X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每块金属原料的外形、尺寸完全一致,但重量不同。金属材料被严格地堆放成金字塔形。 7 5 8 7 8 8 9 2 7 2 8 1 4 9 1 8 1 8 8 4 1原创 2022-03-07 19:10:37 · 48 阅读 · 0 评论 -
蓝桥杯 2017-2 纸牌三角形
题目描述A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。下图就是一种排法(如有对齐问题,参看p1.png)。A9 64 83 7 5 2这样的排法可能会有很多。如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?请你计算并提交该数字。第一眼感觉就是全排列,但是不要忽略了一句话“考虑旋转、镜像后相同的算同一种”,说明我们求出了的个数还要除以一个数,但是问题是要除以几呢?三角形考虑旋转的话,有三种不同的排列方法(不原创 2022-03-07 18:35:43 · 65 阅读 · 0 评论 -
蓝桥杯 2018-9 全球变暖
你有一张某海域NxN像素的照片,".“表示海洋、”#"表示陆地,如下所示:….##….##……##.…####.…###.…其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。例如上图中的海域未来会变成如下样子:……………#………请你计算:依照科学家的预测,照片中有多少岛屿会被完原创 2022-03-05 15:50:24 · 41 阅读 · 0 评论 -
蓝桥杯 2018-6 递增三元组
题目描述给定三个整数数组A = [A1, A2, … AN],B = [B1, B2, … BN],C = [C1, C2, … CN],请你统计有多少个三元组(i, j, k) 满足:1 <= i, j, k <= NAi < Bj < Ck【输入格式】第一行包含一个整数N。第二行包含N个整数A1, A2, … AN。第三行包含N个整数B1, B2, … BN。第四行包含N个整数C1, C2, … CN。对于30%的数据,1 <= N <= 1原创 2022-03-05 15:04:01 · 85 阅读 · 0 评论 -
蓝桥杯 2018-5 快速排序
题目描述以下代码可以从数组a[]中找出第k小的元素。它使用了类似快速排序中的分治算法,期望时间复杂度是O(N)的。请仔细阅读分析源码,填写划线部分缺失的内容。注意:只提交划线部分缺少的代码,不要抄写任何已经存在的代码或符号。import java.util.Random;public class Main{ public static int quickSelect(int a[], int l, int r, int k) { Random rand = new Ran原创 2022-03-05 14:31:56 · 225 阅读 · 0 评论 -
蓝桥杯 2019-2 方格计数
题目:应该算是数学问题,但是我没想到。因为一直考虑找规律。从数学的角度看,完整的小方格它的右上角的顶点距圆心的距离不大于半径我们以圆心为坐标原点建立坐标系,检查每个点距离圆心的距离,我们可以只看第一象限的,最后结果乘4(不要忘了就行),有一点,不必考虑坐标轴上的点,因为他们不形成小方格具体看下图每一个点代表一个小方格。设每个点的坐标为(a,b),半径为r则aa+bb<=r*rpublic class okt2方格计数 { public static void main(String[原创 2022-03-05 13:59:57 · 102 阅读 · 0 评论 -
蓝桥杯 2019-8 滑动窗口之人物相关性分析
分别在左右设置l,r作为标记点,遍历一次字符串记录下Alice和Bob出现的下标,然后从Alice第一次出现的位置开始搜索,对于l,要找到Bob的位置第一次距离Alice小于k的位置,然后记录;对于r,找到Bob的位置第一次距离Alice大于k的位置。注意我把Alice和Bob的下标存在vector里面,所以Alice[l]中l表示的是第几个Alice,而Alice[l]表示的是Alice第l次出现在字符串中的下标。所以在这个Alice中,与它同时出现的Bob个数是r - l;之后再找下一个Alice,r原创 2022-02-27 10:27:13 · 311 阅读 · 0 评论 -
蓝桥杯 2018-10 堆的计数
我们知道包含N个元素的堆可以看成是一棵包含N个节点的完全二叉树。 每个节点有一个权值。对于小根堆来说,父节点的权值一定小于其子节点的权值。 假设N个节点的权值分别是1~N,你能求出一共有多少种不同的小根堆吗?由于数量可能超过整型范围,你只需要输出结果除以1000000009的余数。输入一个整数N。对于40%的数据,1<=N<=1000对于70%的数据,1<=N<=10000对于100%的数据,1<=N<=100000输出一个整数表示答案。样例输入复原创 2022-03-05 10:48:15 · 580 阅读 · 0 评论 -
蓝桥杯-2018-4 测试次数 dp
f[i][j]:i表示目前还剩余手机的个数,j表示楼层数为j时需要的测试次数。分割数k:我们从实际情况看这种测试,在只有一部手机的情况下,我们为了能完成测试,只能从最低的地方,一层一层的试(只有这样才能成功测试,否则随便一个地方摔碎了,我们并不知道手机是否在比这个地方低的地方还会碎),但是如果我们有多部手机,我们就可以大胆一点,从随便一个楼层尝试,来大幅度的降低我们要测试的楼层数,有点类似二分,但是手机数是有限的,我们并不能确定这个k值,也就是我们从哪一层开始测试测试的次数最少。所以就需要循环了。对第k原创 2022-03-05 13:37:47 · 149 阅读 · 0 评论