蓝桥杯
大柠丶
平芜尽处是青山
展开
-
蓝桥杯——2020年省赛——成绩统计
题目描述小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。输入描述输入的第一行包含一个整数n\ (1 \leq n \leq 10^4)n(1≤n≤104),表示考试人数。接下来nn行,每行包含一个 0 至 100 的整数,表示一个学生的得分。输出描述输出两行,每行一个百分...原创 2022-02-27 11:37:24 · 1017 阅读 · 0 评论 -
蓝桥杯——2020年省赛——单词分析
题目描述小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。输入描述输入一行包含一个单词,单词只由小写英文字母组成。对于所有的评测用例,输入的单词长度不超过 1000。输出描述输出两行,第一行包含一个英文字母,表示单词中出现得最多的.原创 2022-02-26 21:37:44 · 407 阅读 · 0 评论 -
蓝桥杯——算法训练——小明爬山
问题描述 你有个同学叫小明,他早听闻祖国河山秀丽,于是有一个爬山的计划,并列了一张所有山的高度表,而又因“人往高处走”的说法,所以他希望爬的每一座山都比前一座要高,并且不能改变山的高度表上的顺序,爬的山数还要最多,请贵系的你帮他解决这个问题。输入格式 输入第一行为num,代表山的个数 输入第二行有num个整数,代表每座山的高度输出格式 输出只有一个数,为符合要求的最大爬山数样例输入101 3 5 7 9 2 4 6 8 10样例输出6解法一、dp这.原创 2022-02-26 16:06:22 · 1558 阅读 · 3 评论 -
蓝桥杯——算法训练——粘木棍
问题描述 有N根木棍,需要将其粘贴成M个长木棍,使得最长的和最短的的差距最小。输入格式 第一行两个整数N,M。 一行N个整数,表示木棍的长度。输出格式 一行一个整数,表示最小的差距样例输入3 210 20 40样例输出10数据规模和约定 N, M<=7package com.study.蓝桥杯.算法训练;import java.util.Arrays;import java.util.Scanner;/** * @auth.原创 2022-02-25 14:38:17 · 7977 阅读 · 0 评论 -
蓝桥杯——基础练习——逗志芃的暴走
问题描述 逗志芃是有妹子的现充,但是有时候妹子就是烦恼。因为逗志芃太逗了,所以这段时间妹子对逗志芃发动了技能无理取闹,妹子要去玩很多的景点。由于逗志芃之前抽机花费了太多的时间,不久以后又要微积分考试了,所以现在被妹子搞成暴走状态了。但是妹子永远是上帝,所以逗志芃只能带妹子出去玩,不过为了节约时间,他希望找到一条花费时间最少的一次性游览线路。输入格式 第一行1个数n,表示逗志芃所在的城市有多少个景点,接下来是一个n*n的矩阵。a(i,j)表示i号景点到j号景点的路上花费的时间是多少。 接.原创 2022-02-25 12:00:35 · 493 阅读 · 0 评论 -
蓝桥杯——算法训练——进击的青蛙
问题描述 青蛙X正准备跳过一座桥,这座桥被划分为N段,记青蛙所在的起始点为0,桥的末端为N。桥上的一些点有一些石子,这些点是无法跳上去的。青蛙每次跳跃能向前跳跃+1,+2,+3段,现在请你算出跳到末端的总方法数。如果无法到达,请输出”No Way!"输入格式 输入数据共N行。 第一行一个数字N,代表桥的长度。 接下来N行,表示从点1~N的道路情况,每行一个数字0或1,1表示有石子。输出格式 输出一行,为一个整数,代表方法数,无法到达为“No Way!" 由于数据过大,.原创 2022-02-23 13:29:19 · 800 阅读 · 0 评论 -
蓝桥杯——算法训练——区间最大和
问题描述 给定一段长度为N的整数序列A,请从中选出一段连续的子序列(可以为0)使得这段的总和最大。输入格式 第一行一个整数N表示序列的长度 第二行N个整数Ai表示序列的第i个元素输出格式 一个整数表示选出的最大的和简单的dp问题,跟之前刷到的LeetCode——#53. 最大子数组和思路一模一样import java.util.Scanner;public class Main { public static void main(String[] ar.原创 2022-02-22 21:02:03 · 659 阅读 · 0 评论 -
蓝桥杯——算法训练——摆动序列
如果一个序列满足下面的性质,我们就将它称为摆动序列: 1. 序列中的所有数都是不大于k的正整数; 2. 序列中至少有两个数。 3. 序列中的数两两不相等; 4. 如果第i– 1个数比第i– 2个数大,则第i个数比第i– 2个数小;如果第i– 1个数比第i– 2个数小,则第i个数比第i– 2个数大。 比如,当k= 3时,有下面几个这样的序列: 1 2 1 3 2 1 2 1 3 2 3 2 3 1 3 1 3 2 一共有8种,给定k,请求...原创 2022-02-21 21:58:47 · 1971 阅读 · 0 评论 -
蓝桥杯——算法训练——P0804
编写一个函数void strcompress(char *s),输入一个字符串(只包含小写字母和空格,且长度小于1000),然后采用如下的规则对该字符串当中的每一个字符进行压缩: (1) 如果该字符是空格,则保留该字符。 (2) 如果该字符是第1次出现或第3次出现或第6次出现,则保留该字符。 (3) 否则,删除该字符。 例如,若用户输入occurrence,经过压缩后,字符c的第2次出现被删除,第1和第3次出现仍保留;字符r和e的第2次出现均被删除,因此最后的结果为:ocurenc。 .原创 2022-02-15 23:14:54 · 486 阅读 · 0 评论 -
蓝桥杯——算法训练——P0802
编写一个字符串表达式求解函数int expression(char* s); 输入一个字符串表达式,返回它的结果。表达式长度不会超过100。表达式最少有一项,且以等号=结束。表达式中只包含加法和减法,且运算均在整数范围之内。 编写main函数测试该函数的正确性。输入: 2+2345+913-3=输出: 3257package com.study.蓝桥杯.算法训练;import java.util.Scanner;/** * @author sjn * @date 2..原创 2022-02-15 21:56:20 · 3299 阅读 · 2 评论 -
蓝桥杯——算法训练——P0705
输入两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。交集、并集和余集的计算都要求写成一个单独的函数。 输入第一行为一个整数n,表示集合A中的元素个数。 第二行有n个按从小到大的顺序输入且互不相同的整数,表示集合A中的元素 第三行为一个整数m,表示集合B中的元素个数。 第四行有m个按从小到大的顺序输入且互不相同的整数,表示集合B中的元素 集合中的所有元素均为int范围内的整数,n、m<=1000。 输出第一行按从小到大的顺序输出A、B交集中的所有元素。 第二行按.原创 2022-02-15 18:16:02 · 419 阅读 · 0 评论 -
蓝桥杯——算法训练——P0702
在C语言中,有一个strcmp函数,其功能是比较两个字符串s1和s2。请编写一个你自己的字符串比较函数my_strcmp,来实现strcmp函数的类似功能。如果s1=s2,则返回0;否则返回s1 与s2 第一个不同字符的差值(如果s1<s2,该差值是一个负数;如果s1>s2,该差值是一个正数)。编写测试程序,输入两个长度小于1000的字符串(可能包含有空格,且长度不一定相等),然后调用my_strcmp函数来进行比较,并输出返回结果。输入: aBcDefgf aacdef 输出:.原创 2022-02-15 17:17:17 · 324 阅读 · 0 评论 -
蓝桥杯——算法训练——P0701
编写一个函数RegularPlural,其功能是实现一个英文单词的复数形式。复数的规则为: (1) 如果单词末尾为s,x,z,ch或sh,则在后面加es (2) 如果单词末尾为y,且前一个字母为辅音(除a, e, i, o, u以外的其它情况),则把y改成ies。 (3) 如果是其它情形,一律在后面加s。 编写测试程序,输入一个长度小于20的单词,输出该单词的复数形式。输入: box输出: boxes熟练掌握String类中的方法就行了import java.util..原创 2022-02-15 15:50:32 · 419 阅读 · 0 评论 -
蓝桥杯——算法训练——P0704
一个数如果从左往右读和从右往左读数字是完全相同的,则称这个数为回文数,比如898,1221,15651都是回文数。编写一个程序,输入两个整数min和max,然后对于min~max之间的每一个整数(包括min和max),如果它既是一个回文数又是一个质数,那么就把它打印出来。要求,回文数和质数的判断都必要要用函数的形式来实现。输入: 5 100 输出: 5 7 11import java.util.Scanner;/** * @author sjn * @date 2022-..原创 2022-02-14 20:44:01 · 1328 阅读 · 0 评论 -
蓝桥杯——算法训练——最小距离
问题描述 数轴上有n个数字,求最近的两个数,即min(abs(x-y))输入格式 第一行包含一个整数n。 接下来一行,表示n整数。输出格式 一个整数表示最小距离样例输入67 3 4 11 9 17样例输出1样例说明 取3和4数据规模和约定 n<=100000 所有整数<=10^7很简单,bf就行了import java.util.Scanner;/** * @author sjn * @date 202.原创 2022-02-14 18:58:52 · 1139 阅读 · 0 评论 -
蓝桥杯——算法训练——共线
问题描述 给定2维平面上n个整点的坐标,一条直线最多能过几个点?输入格式 第一行一个整数n表示点的个数 以下n行,每行2个整数分别表示每个点的x,y坐标。输出格式 输出一个整数表示答案。样例输入50 01 12 20 32 3样例输出3数据规模和约定 n<=1500,数据保证不会存在2个相同的点。 点坐标在int范围内import java.util.Scanner;/** * @author sjn * @dat.原创 2022-02-14 18:50:22 · 7393 阅读 · 14 评论 -
蓝桥杯——基础练习——P0801
编写一个数组求和函数void Add(int n, int* a1, int* a2, int* result); 其中n<100是数组长度,a1是第一个数组,a2是第二个数组,result是a1和a2的和。假设a1={2, 4, 5, 8}, a2={1, 0, 4, 6},则result={3, 4, 9, 14}; 编写main函数测试该函数的正确性。依次输入n, a1, a2, 输出result。输入: 4 2 4 5 8 1 0 4 6输出: 3 4 9 14i.原创 2022-02-14 17:27:49 · 780 阅读 · 0 评论 -
蓝桥杯——基础练习——数组移动
问题描述 初始数组A[N]中为1,2,..,N,N个数字,现要进行M次操作,每次操作给定一个数字i,记其在数组中的位置为Bi,将A[1]..A[Bi]移到数组末尾。输入格式 输入的第一行包含两个整数N,M。接下来M行,每行一个正整数,表示给定的数字i。输出格式 一行,输出M次操作后的A数组。一开始没读懂题,蓝桥杯题目给的解释太模棱两可了(@_@),其实题目讲了那么长,输入M行,只用考虑最后一行就行了,搞不懂输入M行的意义在哪。。。我这里用到的是队列来解决这个问题的,思路.原创 2022-02-13 18:59:00 · 928 阅读 · 1 评论 -
蓝桥杯——算法训练——计算众数
emmm,这题也很简单,直接看代码吧package com.study.蓝桥杯.算法训练;import java.util.Scanner;/** * @author sjn * @date 2022-1-27 *//*问题描述 编写一个程序,计算递增数组的众数。程序第一行输入n(1≤n≤20),表示数组的长度;第二行输入数组中各个元素的值。输出数组中出现次数最多的元素。如果有两个元素出现的次数相同,即并列第一,那么只输出较小的那个元素。(注:输入的数组是递增数组,已经排好序,原创 2022-01-27 17:44:00 · 412 阅读 · 0 评论 -
蓝桥杯——算法训练——区间k大数查询
我用的最笨的方法了~基本没用什么算法,思路很简单(@_@;)代码如下:package com.study.蓝桥杯.算法训练;import java.util.Arrays;import java.util.Scanner;/** * @author sjn * @date 2022-1-27 *//*问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包原创 2022-01-27 17:06:02 · 142 阅读 · 0 评论 -
蓝桥杯——算法训练——拿金币
只能通过90%,可以通过滚动数组来优化,目前还没想出来(@_@;)代码如下:package com.study.蓝桥杯.算法训练;import java.util.Scanner;/** * @author sjn * @date 2022-1-19 *//*问题描述 有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。请问如何走才能拿到最多的金币。输入格式 第一行输..原创 2022-01-26 14:49:56 · 151 阅读 · 0 评论 -
蓝桥杯——算法训练——印章
一开始入手,我打算用概率论的知识解决印章问题,但是发现我的公式推导,适应有一定的局限性package com.study.蓝桥杯.算法训练;/*问题描述 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。输入格式 一行两个正整数n和m输出格式 一个实数P表示答案,保留4位小数。 *//** * @author sjn * @date 2022-1-15 */import java.util.Scanner;public c原创 2022-01-19 17:08:46 · 776 阅读 · 0 评论 -
蓝桥杯——基础练习——十六进制转十进制
package com.study.蓝桥杯.基础练习;/*问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 */import java.util.Scanner;public class Main17 { public static void main(String[] args) { Scanner sc = new Scanner(Sys.原创 2022-01-15 00:03:28 · 1971 阅读 · 0 评论 -
蓝桥杯——基础练习——十六进制转八进制
package com.study.蓝桥杯.基础练习;/*问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。 【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。 */i.原创 2022-01-14 23:58:14 · 96 阅读 · 0 评论 -
蓝桥杯——基础练习——十进制转十六进制
package com.study.蓝桥杯.基础练习;/*问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。 给出一个非负整数,将它表示成十六进制的形式。输入格式 输入包含一个非负整数a,表示要转换的数。0<=a&.原创 2022-01-14 23:35:04 · 91 阅读 · 0 评论 -
蓝桥杯——基础练习——序列求和
package com.study.蓝桥杯.基础练习;/*问题描述求1+2+3+...+n的值。输入格式输入包括一个整数n。输出格式输出一行,包括一个整数,表示1+2+3+...+n的值。 */import java.util.Scanner;public class Main14 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); .原创 2022-01-14 21:55:33 · 2119 阅读 · 0 评论 -
蓝桥杯——基础练习——圆的面积
package com.study.蓝桥杯.基础练习;/*问题描述给定圆的半径r,求圆的面积。输入格式输入包含一个整数r,表示圆的半径。输出格式输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。 */import java.util.Scanner;public class Main12 { public static void main(String[] args) { Scanner sc = new Scanner(System.in).原创 2022-01-14 21:54:37 · 2143 阅读 · 0 评论 -
蓝桥杯——基础练习——Fibonacci数列
package com.study.蓝桥杯.基础练习;/*问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。 */import java.util.Scanner;public class Main11 { public static void main(Stri.原创 2022-01-14 21:52:00 · 293 阅读 · 0 评论 -
蓝桥杯——基础练习——闰年判断
package com.study.蓝桥杯.基础练习;/*问题描述给定一个年份,判断这一年是不是闰年。当以下情况之一满足时,这一年是闰年:1. 年份是4的倍数而不是100的倍数;2. 年份是400的倍数。其他的年份都不是闰年。输入格式输入包含一个整数y,表示当前的年份。输出格式输出一行,如果给定的年份是闰年,则输出yes,否则输出no。 */import java.util.Scanner;public class Main10 { public sta.原创 2022-01-13 20:44:52 · 157 阅读 · 0 评论 -
蓝桥杯——基础练习——01字串
package com.study.蓝桥杯.基础练习;/*问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01串。输入格式本试题没有输入。输出格式输出32行,按从小到大的顺序每行一个长度为5的01串。 */public class Main9 { public static void main(String[] args) {.原创 2022-01-13 20:39:06 · 88 阅读 · 0 评论 -
蓝桥杯——基础练习——字母图形
package com.study.蓝桥杯.基础练习;/*问题描述利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。输入格式输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。输出格式输出n行,每个m个字符,为你的图形。 */import java.util.Scanner;public class .原创 2022-01-13 20:23:20 · 164 阅读 · 0 评论 -
蓝桥杯——基础练习——数列特征
package com.study.蓝桥杯.基础练习;/*问题描述给出n个数,找出这n个数的最大值,最小值,和。输入格式第一行为整数n,表示数的个数。第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。输出格式输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。 */import java.util.Scanner;public class Main7 { public static void main.原创 2022-01-13 19:42:10 · 97 阅读 · 0 评论 -
蓝桥杯——基础练习——查找整数
package com.study.蓝桥杯.基础练习;/*问题描述给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。输入格式第一行包含一个整数n。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。第三行包含一个整数a,为待查找的数。输出格式如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。 */import java.util.Scanner;public class Main6 { publ.原创 2022-01-13 19:34:44 · 354 阅读 · 0 评论 -
蓝桥杯——基础练习——杨辉三角形
package com.study.蓝桥杯.基础练习;/*问题描述杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 下面给出了杨辉三角形的前4行: 1 1 1 1 2 1 1 3 3 1 给出n,输出它的前n行。输入格式输入包含一个数n。输出格式输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔.原创 2022-01-13 19:24:27 · 276 阅读 · 0 评论 -
蓝桥杯——基础练习——特殊的数字
package com.study.蓝桥杯.基础练习;/*问题描述 153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。输出格式 按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。 */public class Main4 { public static void main(String[] args) { for (int i=100; i<1000; i++.原创 2022-01-13 19:13:52 · 77 阅读 · 0 评论 -
蓝桥杯——基础练习——特殊回文数
package com.study.蓝桥杯.基础练习;/*问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式 输入一行,包含一个正整数n。输入格式 输入一行,包含一个正整数n。 */import java.util.Scanner;public class Main3 { public static void main(String[] args) .原创 2022-01-13 18:53:30 · 95 阅读 · 0 评论 -
蓝桥杯——基础练习——回文数
package com.study.蓝桥杯.基础练习;/*问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。输出格式 按从小到大的顺序输出满足条件的四位十进制数。 */public class Main2 { public static void main(String[] args) { for (int i=1000; i<=9999; i++) { if (isPalindro.原创 2022-01-13 18:37:50 · 63 阅读 · 0 评论 -
蓝桥杯——基础练习——数列排序
package com.study.蓝桥杯.基础练习;/*问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式 输出一行,按从小到大的顺序输出排序后的数列。 */import java.util.*;public class Main1 { public static void main(String args[].原创 2022-01-13 17:56:27 · 288 阅读 · 0 评论