第十三届蓝桥杯大赛软件赛省赛
Java 大学 B 组
【考生须知】
考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试
题。
考试时间为 4 小时。考试期间选手可浏览自己已经提交的答案,被浏览的
答案允许拷贝。时间截止后,将无法继续提交或浏览答案。
对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
选手必须通过浏览器方式提交自己的答案。选手在其它位置的作答或其它
方式提交的答案无效。
试题包含“结果填空”和“程序设计”两种题型。
结果填空题:要求选手根据题目描述直接填写结果。求解方式不限。不要
求源代码。把结果填空的答案直接通过网页提交即可,不要书写多余的内容。
程序设计题:要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
所有源码必须在同一文件中。调试通过后,拷贝提交。
注意:不要使用 package 语句。
注意:选手代码的主类名必须为:Main,否则会被判为无效代码。
注意:如果程序中引用了类库,在提交时必须将 import 语句与程序的其
他部分同时提交。只允许使用 Java 自带的类库。
试题 A: 星期计算
本题总分:5 分
【问题描述】
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
试题 B: 山
本题总分:5 分
【问题描述】
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
试题 C: 字符统计
时间限制: 1.0s 内存限制: 512.0MB 本题总分:10 分
【问题描述】
【输入格式】
一个只包含大写字母的字符串 S
【输出格式】
若干个大写字母,代表答案。
【样例输入】
BABBACAC
【样例输出】
AB
【评测用例规模与约定】
对于 100% 的评测用例,1 ≤ |S | ≤ 106
试题 D: 最少刷题数
时间限制: 1.0s 内存限制: 512.0MB 本题总分:10 分
【问题描述】
【输入格式】
第一行包含一个正整数 N。
第二行包含 N 个整数:A1, A2, A3, . . . , AN.
【输出格式】
输出 N 个整数,依次表示第 1 . . . N 号学生分别至少还要再刷多少道题。
【样例输入】
5
12 10 15 20 6
【样例输出】
0 3 0 0 7
【评测用例规模与约定】
对于 30% 的数据,1 ≤ N ≤ 1000, 0 ≤ Ai ≤ 1000.
对于 100% 的数据,1 ≤ N ≤ 100000, 0 ≤ Ai ≤ 100000.
试题 E: 求阶乘
时间限制: 1.0s 内存限制: 512.0MB 本题总分:15 分
【问题描述】
【输入格式】
一个整数 K。
【输出格式】
一个整数代表答案。
【样例输入】
2
【样例输出】
10
【评测用例规模与约定】
对于 30% 的数据,1 ≤ K ≤ 106
对于 100% 的数据,1 ≤ K ≤ 1018
试题 F: 最大子矩阵
时间限制: 1.0s 内存限制: 512.0MB 本题总分:15 分
【问题描述】
【输入格式】
第一行输入两个整数 N,M,表示矩阵的大小。
接下来 N 行,每行输入 M 个整数,表示这个矩阵。
最后一行输入一个整数 limit,表示限制。
【输出格式】
输出一个整数,分别表示小明选择的子矩阵的最大面积。
【样例输入】
3 4
2 0 7 9
0 6 9 7
8 4 6 4
8
【样例输出】
6
【样例说明】
满足稳定度不大于 8 的且面积最大的子矩阵总共有三个,他们的面积都是
6(粗体表示子矩阵元素):
2 0 7 9
0 6 9 7
8 4 6 4
2 0 7 9
0 6 9 7
8 4 6 4
2 0 7 9
0 6 9 7
8 4 6 4
【评测用例规模与约定】
评测用例编号 N M
1, 2 1 ≤ N ≤ 10 1 ≤ M ≤ 10
3, 4 N = 1 M ≤ 100000
5 ∼ 12 1 ≤ N ≤ 10 M ≤ 10000
13 ∼ 20 1 ≤ N ≤ 80 1 ≤ M ≤ 80
对于所有评测用例,0 ≤ 矩阵元素值, limit ≤ 105。
试题 G: 数组切分
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
【输入格式】
第一行包含一个整数 N。第二行包含 N 个整数,代表 A 数组。
【输出格式】
输出一个整数表示答案。由于答案可能很大,所以输出其对 1000000007 取
模后的值
【样例输入】
4
1 3 2 4
【样例输出】
5
【评测用例规模与约定】
对于 30% 评测用例,1 ≤ N ≤ 20.
对于 100% 评测用例,1 ≤ N ≤ 10000.
试题 H: 回忆迷宫
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
【输入格式】
第一行一个正整数 N,表示爱丽丝回忆的步骤数量。
接下来一行 N 个英文字符,仅包含 UDLR 四种字符,分别表示上(Up)、
下(Down)、左(Left)、右(Right)。
【输出格式】
请通过字符画的形式输出迷宫地图。迷宫地图可能包含许多行,用字符 ‘*’
表示墙,用 ‘ ’(空格)表示非墙。
你的输出需要保证以下条件:
1、至少有一行第一个字符为 ‘*’。
2、第一行至少有一个字符为 ‘*’。
3、每一行的最后一个字符为 ‘*’。
4、最后一行至少有一个字符为 ‘*’。
【样例输入】
17
UUUULLLLDDDDRRRRU
【样例输出】
*****
* *
* *** *
* *** *
* *** *
* *
*****
【样例说明】
爱丽丝可以把第六行第六个字符作为起点。
外墙墙墙墙墙外
墙内内内内内墙
墙内墙墙墙内墙
墙内墙墙墙内墙
墙内墙墙墙内墙
墙内内内内内墙
外墙墙墙墙墙外
【评测用例规模与约定】
对于所有数据,0 < N ≤ 100.
试题 I: 红绿灯
时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分
【问题描述】
【输入格式】
第一行四个正整数 N、M、K、V,含义如题面所述。
接下来 M 行,每行三个正整数 Ai、Bi、Ci,含义如题面所述。
【输出格式】
输出一个正整数 T,表示爱丽丝到达公司最短需要多少秒。
【样例输入】
90 2 2 2
30 20 20
60 20 20
【样例输出】
80
【样例说明】
爱丽丝在最开始直接使用氮气喷射装置瞬间到达第一个红绿灯,然后绿灯通过,
以最高速行进 60 秒后到达第二个红绿灯,此时绿灯刚好变红,于是她等待20
秒再次变为绿灯后通过该红绿灯,此时氮气喷射装置冷却完毕,爱丽丝再次使用
瞬间到达公司,总共用时 80 秒。
【评测用例规模与约定】
对于 30% 的数据,N ≤ 100; M ≤ 10; M < K; V = 1.
对于 60% 的数据,N ≤ 1000; M ≤ 100; K ≤ 50; Bi,Ci ≤ 100; V ≤ 10.
对于 100% 的数据,0 < N ≤ 10的8次方; M ≤ 1000; K ≤ 1000; 0 < Bi,
Ci ≤ 10的6次方; 0 <V ≤ 10的6次方; 0 < Ai < N; 对任意 i < j, 有 Ai < Aj
试题 J: 拉箱子
时间限制: 1.0s 内存限制: 1.0GB 本题总分:25 分
【问题描述】
【输入格式】
第一行两个正整数 N 和 M,表示网格的大小。
接下来 N 行,每行 M 个由空格隔开的整数 0 或 1 描述给定的地形。其中
1 表示墙,0 表示未知的元素,未知元素可能是小人或箱子或空地或终点,但
不能是墙。
【输出格式】
输出一个正整数,表示可解的初始局面数量。
【样例输入】
2 4
0 0 0 0
1 1 1 0
【样例输出】
13
【样例说明】
13 种可解的初始局面示意图如下:
人终箱空
墙墙墙空
********
人终空箱
墙墙墙空
********
人空终箱
墙墙墙空
********
箱人终空
墙墙墙空
********
空人终箱
墙墙墙空
********
箱终人空
墙墙墙空
********
空终人箱
墙墙墙空
********
箱终空人
墙墙墙空
********
箱空终人
墙墙墙空
********
空箱终人
墙墙墙空
********
箱终空空
墙墙墙人
********
箱空终空
墙墙墙人
********
空箱终空
墙墙墙人
【评测用例规模与约定】
对于 30% 的数据,N, M ≤ 3.
对于 100% 的数据,0 < N, M ≤ 10.