蓝桥杯
文章平均质量分 61
本专栏主要记录了蓝桥杯算法题的题解
daipuweiai
这个作者很懒,什么都没留下…
展开
-
历届试题 连号区间数
问题描述 小明这些天一直在思考这样一个奇怪而有趣的问题:在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。输入格式 第一行是一个正整数原创 2017-05-22 08:13:22 · 471 阅读 · 0 评论 -
基础练习 十六进制转八进制
问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。 【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制原创 2017-02-15 20:46:30 · 590 阅读 · 0 评论 -
算法提高 最大乘积
问题描述 对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢? 输入格式 第一行一个数表示数据组数 每组输入数据共2行: 第1行给出总共的数字的个数n和要取的数的个数m,1<=n<=m<=15, 第2行依次给出这n个数,其中每个数字的范围满足:a[i]的绝对值小于等于4。 输出格式 每组数据输出1行,为最大的乘积。 样例输入 1 5 5 1 2原创 2017-02-14 21:02:58 · 751 阅读 · 0 评论 -
算法提高 概率计算
问题描述 生成n个∈[a,b]的随机整数,输出它们的和为x的概率。 输入格式 一行输入四个整数依次为n,a,b,x,用空格分隔。 输出格式 输出一行包含一个小数位和为x的概率,小数点后保留四位小数 样例输入 2 1 3 4 样例输出 0.3333 数据规模和约定 对于50%的数据,n≤5. 对于100%的数据,n≤100,b≤100. import原创 2017-02-14 14:07:06 · 444 阅读 · 0 评论 -
算法提高 日期计算
问题描述 已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况。尤其是逢百年不闰,逢400年闰的情况。 输入格式 输入只有一行 YYYY MM DD 输出格式 输出只有一行 W 数据规模和约定 1599 <= YYYY <= 2999 1 <= MM <= 12 1 <= DD <= 31,且确保测试样例中YY原创 2017-02-14 13:30:28 · 611 阅读 · 0 评论 -
算法提高 扶老奶奶过街
一共有5个红领巾,编号分别为A、B、C、D、E,老奶奶被他们其中一个扶过了马路。 五个红领巾各自说话: A :我和E都没有扶老奶奶 B :老奶奶是被C和E其中一个扶过大街的 C :老奶奶是被我和D其中一个扶过大街的 D :B和C都没有扶老奶奶过街 E :我没有扶老奶奶 已知五个红领巾中有且只有2个人说的是真话,请问是谁扶这老奶奶过了街? 若有多个答案,在一行中输出,编号之间用空格隔开原创 2017-02-14 10:51:42 · 525 阅读 · 0 评论 -
算法训练 K好数
问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。输入格式 输入包含两个正整数,K和L。输出格式 输出一个整数,表示答案对1000000007取模后的值。原创 2017-03-01 19:03:40 · 471 阅读 · 0 评论 -
算法训练 未名湖边的烦恼
问题描述 每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法) 输入格式 两个整数,表示m和n 输出格式原创 2017-03-01 19:59:24 · 596 阅读 · 0 评论 -
算法训练 数字三角形
问题描述 (图3.1-1)示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。 ●每一步可沿左斜线向下或右斜线向下走; ●1<三角形行数≤100; ●三角形中的数字为整数0,1,…99; . (图3.1-1) 输入格式 文件中首先读到的是三角形的行数。 接下来描述整个三角形 输出格式 最大总和原创 2017-03-02 08:15:51 · 1448 阅读 · 0 评论 -
算法提高 01背包
问题描述 给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个. 输入格式 输入的第一行包含两个整数n, m,分别表示物品的个数和背包能装重量。 以后N行每行两个数Wi和Vi,表示物品的重量和价值 输出格式 输出1行,包含一个整数,表示最大价值。 样例输入 3 5 2 3 3 5 4 7 样例输出原创 2017-02-13 20:14:12 · 486 阅读 · 0 评论 -
算法训练 图形显示
问题描述 编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数): * * * * * * * * * * * * * * *package 图形显示;import java.util.Scanner;/* * 注意输入的数是否小于等于0。若是输出空格 */public class Main { public static vo原创 2017-01-31 21:49:13 · 647 阅读 · 0 评论 -
算法训练 安慰奶牛
问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路。道路被用来连接N个牧场,牧场被连续地编号为1到N。每一个牧场都是一个奶牛的家。FJ计划除去P条道路中尽可能多的道路,但是还要保持牧场之间 的连通性。你首先要决定那些道路是需要保留的N-1条道路。第j条双向道路连接了牧场Sj和Ej(1 <= Sj <= N; 1 <= Ej <= N; Sj != Ej),而且走完它转载 2017-02-04 19:57:30 · 397 阅读 · 0 评论 -
算法训练 最短路
问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。输入格式 第一行两个整数n, m。接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。输出格式 共n-1行,第i行表示1号点到i+1号点的最短路。 样例输入 3 3 1 2 -1 2 3 -1 3 1 2 样例输出 -1原创 2017-02-04 22:05:47 · 969 阅读 · 0 评论 -
算法训练 最大的算式
问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号。例如: N=5,K=2,5个数字分别为1、2、3、4、5,可以加成: 1*2*(3+4+5)=24 1*(2+3)*(4+5)=45 (1*2+3)*(4+5)=45原创 2017-03-05 13:39:18 · 907 阅读 · 0 评论 -
历届试题 分糖果
问题描述 有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一半给左手边的孩子。 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。 反复进行这个游戏,直到所有小朋友的糖果数都相同为止。 你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。 输入格式 程序首先读入一个整数N(2package 分原创 2017-01-29 19:48:17 · 502 阅读 · 0 评论 -
历届试题 兰顿蚂蚁
问题描述 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。 平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。 蚂蚁的头部朝向为:上下左右其中一方。 蚂蚁的移动规则十分简单: 若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格; 若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。 规则虽然简单,蚂蚁的行为却十分复杂。原创 2017-01-29 00:41:39 · 560 阅读 · 0 评论 -
历届试题 幸运数
问题描述 幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成。 首先从1开始写出自然数1,2,3,4,5,6,….1 就是第一个幸运数。我们从2这个数开始。把所有序号能被2整除的项删除,变为:1 _ 3 _ 5 _ 7 _ 9 ….把它们缩紧,重新记序,为:1 3 5 7 9 …. 。这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身原创 2017-05-22 08:53:42 · 759 阅读 · 0 评论 -
算法提高 金陵十三钗
金陵十三钗 本题难度:难 本题占分比例:5% 问题描述 在电影《金陵十三钗》中有十二个秦淮河的女人要自我牺牲代替十二个女学生去赴日本人的死亡宴会。为了不让日本人发现,自然需要一番乔装打扮。但由于天生材质的原因,每个人和每个人之间的相似度是不同的。由于我们这是编程题,因此情况就变成了金陵n钗。给出n个女人和n个学生的相似度矩阵,求她们之间的匹配所能获得的最大相似度。 所谓相似原创 2017-03-22 21:04:05 · 1097 阅读 · 2 评论 -
历届试题 核桃的数量
问题描述 小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:各组的核桃数量必须相同各组内必须能平分核桃(当然是不能打碎的)尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式 输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30) 输出格式 输出一个正整数,表示每袋原创 2017-03-07 10:35:39 · 925 阅读 · 1 评论 -
历届试题 最大子阵
问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大。 其中,A的子矩阵指在A中行和列均连续的一块。 输入格式 输入的第一行包含两个整数n, m,分别表示矩阵A的行数和列数。 接下来n行,每行m个整数,表示矩阵A。 输出格式 输出一行,包含一个整数,表示A中最大的子矩阵中的元素和。 样例输入 3 3 -1 -4 3 3 4 -1原创 2017-03-07 09:39:18 · 690 阅读 · 0 评论 -
历届试题 蚂蚁感冒
问题描述 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。 输入格式 第一行输入一个整数n (1 < n < 50),原创 2017-03-06 21:03:20 · 480 阅读 · 0 评论 -
扑克牌大小
题目描述 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):) 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 输入两手牌,两手牌之间用“-”连接,每手牌的每张牌以空格分隔,“-”两边没有空格,如:4 4 4 4-joker J原创 2017-03-09 19:34:22 · 584 阅读 · 0 评论 -
历届试题 错误票据
问题描述 某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。输入格式 要求程序首先输入一个整数N(N<100)表示后面数据行数。接着读入N行数据。原创 2017-03-09 19:00:56 · 660 阅读 · 0 评论 -
历届试题 回文数字
问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。 本题要求你找到一些5位或6位的十进制数字。满足如下要求: 该数字的各个数位之和等于输入的整数。 输入格式 一个正整数 n (10import java.util.Scanner;public class Main { static in原创 2017-03-19 19:54:51 · 692 阅读 · 0 评论 -
历届试题 大臣的旅费
问题描述 很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常做的原创 2017-03-19 18:51:47 · 724 阅读 · 0 评论 -
历届试题 翻硬币
问题描述 小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作,原创 2017-03-09 09:58:44 · 655 阅读 · 0 评论 -
历届试题 斐波那契
问题描述 斐波那契数列大家都非常熟悉。它的定义是: f(x) = 1 …. (x=1,2) f(x) = f(x-1) + f(x-2) …. (x>2) 对于给定的整数 n 和 m,我们希望求出: f(1) + f(2) + … + f(n) 的值。但这个值可能非常大,所以我们把它对 f(m) 取模。 公式如下 但这个数字依然很大,所以需要再对 p 求模。 输入格式原创 2017-03-05 18:24:07 · 3830 阅读 · 5 评论 -
历届试题 小朋友排队
问题描述 n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。 如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时,他的不高兴程度增加k。 请问,要让所有小朋原创 2017-01-30 00:11:13 · 1320 阅读 · 0 评论 -
算法提高 快乐司机
问题描述 “嘟嘟嘟嘟嘟嘟 喇叭响 我是汽车小司机 我是小司机 我为祖国运输忙 运输忙” 这是儿歌“快乐的小司机”。话说现在当司机光有红心不行,还要多拉快跑。多拉不是超载,是要让所载货物价值最大,特别是在当前油价日新月异的时候。司机所拉货物为散货,如大米、面粉、沙石、泥土…… 现在知道了汽车核载重量为w,可供选择的物品的数量n。每个物品的重量为gi,价值原创 2017-02-13 11:34:54 · 605 阅读 · 0 评论 -
算法提高 队列操作
问题描述 队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。 输入格式 第一行一个数字N。 下面N行,每行第一个数字为操作命令(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。 输出格式 若干行每行显示一个2或3命令的输出结果。注意:2.出队命令可能会出现空队出队(下溢),请输出“no”,并退出。 样例输入原创 2017-02-10 15:18:51 · 1258 阅读 · 3 评论 -
算法提高 盾神与条状项链
问题描述 有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n的项链。当他准备把项链首尾相接的时候,土方进来了。 “哇这么恶心的项链你也做得出来!!!” 盾神自知审美不是他的长项,于是他很谦虚地请教土方,怎么才能把项链做得漂亮。 “这个嘛~首先你要在这里加上一个这种颜色的珠子,然后在这里去掉原创 2017-02-12 17:59:44 · 654 阅读 · 0 评论 -
算法训练 区间k大数查询
问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式 第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。输出格式 总共输出m行,每行一个数,表示询问的答案。 样例输入 5 1原创 2017-02-05 16:06:14 · 465 阅读 · 0 评论 -
算法提高 12-1三角形
问题描述 为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2位数字。 样例输入 例: 0 0 1 0 0 1 样例输出 例如: 3.41 0.50 0.50 0.50 0.33 0.33解题思路: 给定三角形三个顶点的坐原创 2017-02-11 15:30:18 · 1474 阅读 · 3 评论 -
算法提高 9-3摩尔斯电码
问题描述 摩尔斯电码破译。类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文。请不要使用”zylib.h”,只能使用标准库函数。用’ * ‘表示’ . ‘,中间空格用’ | ‘表示,只转化字符表。 摩尔斯码定义见:http://baike.baidu.com/view/84585.htm?fromId=253988。 提示 清橙进行评测时,输入是以EOF结尾的,而不是换行原创 2017-02-11 16:24:55 · 969 阅读 · 0 评论 -
算法提高 9-2 文本加密
问题描述 先编写函数EncryptChar,按照下述规则将给定的字符c转化(加密)为新的字符:”A”转化”B”,”B”转化为”C”,… …”Z”转化为”a”,”a”转化为”b”,… …, “z”转化为”A”,其它字符不加密。编写程序,加密给定字符串。 样例输出 与上面的样例输入对应的输出。 例: 数据规模和约定 输入数据中每一个数的范围。 例:50个字符以内无空格字符串原创 2017-02-11 17:30:06 · 617 阅读 · 0 评论 -
算法提高 9-1九宫格
问题描述 九宫格。输入1-9这9个数字的一种任意排序,构成3*3二维数组。如果每行、每列以及对角线之和都相等,打印1。否则打印0。 样例输出 与上面的样例输入对应的输出。 例: 数据规模和约定 输入1-9这9个数字的一种任意排序。 package 九宫格;import java.util.Scanner;public class Main { public static原创 2017-02-11 18:43:48 · 2775 阅读 · 0 评论 -
算法提高 8-1因式分解
问题描述 设计算法,用户输入合数,程序输出若个素数的乘积。例如,输入6,输出2*3。输入20,输出2*2*5。 样例 与上面的样例输入对应的输出。 例: 数据规模和约定 输入数据中每一个数在int表示范围内。 package 因式分解;import java.util.ArrayList;import java.util.Scanner;public class原创 2017-02-11 19:35:34 · 1098 阅读 · 0 评论 -
算法提高 矩阵相乘
问题描述 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容。 当然,小明上课打瞌睡也没问题,但线性代数的习题可是很可怕的。 小明希望你来帮他完成这个任务。 现在给你一个ai行aj列的矩阵和一个bi行bj列的矩阵, 要你求出他们相乘的积(当然也是矩阵)。 (输入数据保证aj=bi,不需要判断) 输入格式 输入文件原创 2017-02-12 15:22:33 · 1589 阅读 · 0 评论 -
算法提高 P1001
当两个比较大的整数相乘时,可能会出现数据溢出的情形。为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法。具体来说,首先以字符串的形式输入两个整数,每个整数的长度不会超过8位,然后把它们相乘的结果存储在另一个字符串当中(长度不会超过16位),最后把这个字符串打印出来。例如,假设用户输入为:62773417和12345678,则输出结果为:774980393241726.输入: 627734原创 2017-02-12 15:35:49 · 598 阅读 · 0 评论 -
算法提高 简单加法
问题描述 小于10的自然数中有四个数字能除尽3或5(3, 5, 6, 9),它们的和为23。 请计算所有小于1000的自然数中能除尽3或5的数字的合。然后使用标准输出cout,输出你的结果。 输入格式 无。 输出格式 一行一个整数,表示你的结果。 package 简单加法;public class Main { public static void main(原创 2017-02-12 20:10:47 · 1152 阅读 · 0 评论