文章目录
- 发现宝藏
- 【考生须知】
- 试题 A: 重合次数
- 试题 B: 数数
- 试题 C: 左移右移
- 试题 D: 窗口
- 试题 E: 迷宫
- 试题 F : \mathrm{F}: F: 小球称重
- 试题 G: 背包与魔法
- 试题 H: 修路
- 试题 I: 围栏
- 试题J: 好数
发现宝藏
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。
【考生须知】
考试开始后, 选手首先下载题目, 并使用考场现场公布的解压密码解压试
考试时间为 4 小时。考试期间选手可汶览自己已经提交的答案, 被浏览的答案允许拷贝。时间截止后, 将无法继续提交或浏览答案。
对同一题目, 选手可多次提交答案, 以最后一次提交的答案为准。
选手必须通过浏览器方式提交自己的答案。选手在其它位置的作答或其它方式提交的答案无效。
试题包含 “结果填空” 和 “程序设计” 两种题型。
结果填空题: 要求选手根据题目描述直接填写结果。求解方式不限。不要求源代码。把结果填空的答案直接通过网页提交即可, 不要书写多余的内容。
程序设计题: 要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果才有机会得分。
注意: 在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的, 不能只对试卷中给定的数据有效。
所有源码必须在同一文件中。调试通过后,拷贝提交。
注意: 不要使用 package 语句。
注意: 选手代码的主类名必须为: Main, 否则会被判为无效代码。
注意: 如果程序中引用了类库, 在提交时必须将 import 语句与程序的其他部分同时提交。只允许使用 Java 自带的类库。
试题 A: 重合次数
本题总分: 5 分
【问题描述】
在同一天中, 从上午 6 点 13 分 22 秒到下午 14 点 36 分 20 秒, 钟表上的分针和秒针一共重合了多少次?
注意时针、分针、秒针都围绕中心做匀速运动。
【答案提交】
这是一道结果填空的题, 你只需要算出结果后提交即可. 本题的结果为一个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。
试题 B: 数数
本题总分: 5 分
【问题描述】
任何一个大于 1 的正整数都能被分解为若干个质数相乘, 比如 28 = 2 × 2 × 7 28=2 \times 2 \times 7 28=2×2×7被分解为了三个质数相乘。请问在区间 [ 233333 , 2333333 ] [233333,2333333] [233333,2333333] 中有多少个正整数可以被分解为 12 个质数相乘?
【答案提交】
这是一道结果填空的题, 你只需要算出结果后提交即可。本题的结果为一个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。
试题 C: 左移右移
时间限制: 3.0 s 3.0 \mathrm{~s} 3.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 10 分
【问题描述】
小蓝有一个长度为 N N N 的数组, 初始时从左到右依次是 1 , 2 , 3 , … N 1,2,3, \ldots N 1,2,3,…N 。
之后小蓝对这个数组进行了 M M M 次操作, 每次操作可能是以下 2 种之一:
- 左移 x x x, 即把 x x x 移动到最左边。
- 右移 x x x, 即把 x x x 移动到最右边。
请你回答经过 M M M 次操作之后, 数组从左到右每个数是多少?
【输入格式】
第一行包含 2 个整数, N N N 和 M M M 。
以下 M M M 行每行一个操作, 其中 “ L x \mathrm{L} x Lx ”表示左移 x x x, “ R x \mathrm{R} x Rx ” 表示右移 x x x 。
【输出格式】
输出 N N N 个数, 代表操作后的数组。
【样例输入】
53
L 3
L 2
R 1
【样例输出】
2 3 4 5 1 \begin{array}{lllll}2 & 3 & 4 & 5 & 1\end{array} 23451
【样例说明】
样例中的数组变化如下:
[ 1 , 2 , 3 , 4 , 5 ] → [ 3 , 1 , 2 , 4 , 5 ] → [ 2 , 3 , 1 , 4 , 5 ] → [ 2 , 3 , 4 , 5 , 1 ] [1,2,3,4,5] \rightarrow[3,1,2,4,5] \rightarrow[2,3,1,4,5] \rightarrow[2,3,4,5,1] [1,2,3,4,5]→[3,1,2,4,5]→[2,3,1,4,5]→[2,3,4,5,1]
【评测用例规模与约定】
对于 50 % 50 \% 50% 的评测用例, 1 ≤ N , M ≤ 10000 1 \leq N, M \leq 10000 1≤N,M≤10000.
对于 100 % 100 \% 100% 的评测用例, 1 ≤ N , M ≤ 200000 , 1 ≤ x ≤ N 1 \leq N, M \leq 200000,1 \leq x \leq N 1≤N,M≤200000,1≤x≤N.
试题 D: 窗口
时间限制: 3.0 s 3.0 \mathrm{~s} 3.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 10 分
【问题描述】
在平时使用电脑的过程中, 经常会打开各种各样的窗口, 各个窗口会在桌面上重叠, 并按照一定的层次关系显示。有的窗口能够看到全部内容, 而有的窗口只能看到局部。
现在给定一组操作桌面窗口的过程序列, 请你通过 ASCII 艺术图来绘制最后桌面的状态。
已知桌面的大小为 N × M N \times M N×M, 即桌面高度为 N N N 个像素, 宽度为 M M M 个像素,其中左上角坐标为 ( 0 , 0 ) (0,0) (0,0), 右下角坐标为 ( N − 1 , M − 1 ) (N-1, M-1) (N−1,M−1) 。
对于窗口的操作有如下 5 种:
- new 操作 - 打开一个新窗口
n e w new new [ P I D ] [PID] [PID] [ t o p ] [top] [top] [ l e f t ] [left] [left] [ h e i g h t ] [height] [height] [ w i d t h [width [width]
如: n e w new new 12 12 12 20 20 20 30 30 30 80 80 80 100 100 100
表示打开一个 P I D P I D PID 为 12 的窗口, 窗口左上角的坐标为 ( 20 , 30 ) (20,30) (20,30), 该窗口宽度为 100 个像素, 高度为 80 个像素; 新创建的窗口, 其层级为顶层。
- move 操作 - 移动一个窗口
m o v e move move [ P I D ] [PID] [PID] [ v e r t i c a l ] [vertical] [vertical] [ h o r i z o n t a l ] [horizontal] [horizontal]
如: m o v e move move 12 12 12 − 5 -5 −5 10 10 10
表示将 PID 为 12 的窗口在垂直方向上移动 -5 个像素, 在水平方向上移动 10 个像素。若窗口左上角原位置为 ( 20 , 30 ) (20,30) (20,30), 此时则在 ( 15 , 40 ) (15,40) (15,40); 移动后的窗口, 其层级为顶层。
- resize 操作 - 改变窗口大小
r e s i z e resize resize [ P I D ] [PID] [PID] [ h e i g h t ] [height] [height] [ w i d t h ] [width] [width]
如: r e s i z e resize resize 12 12 12 90 90 90 110 110 110
表示保持左上角坐标不变的情况下, 改变
P
I
D
PID
PID 为
12
12
12 的窗口大小, 调整为
高度 90 像素, 宽度 110 像素; 改变大小后的窗口, 其层级为顶层。
- close 操作 - 关闭窗口
close [PID]
如: close 12
表示关闭 P I D P I D PID 为 12 的窗口;
- active 操作 - 激活窗口
a c t i v e active active [ P I D ] [PID] [PID]
如: a c t i v e active active 12 12 12
表示激活 P I D PID PID 为 12 的窗口, 此时该窗口的层级被置为顶层。
【输入格式】
第 1 行: 2 个正整数 N , M N, M N,M, 表示桌面大小;
第 2 行: 1 个正整数 K K K, 表示操作序列的长度;
第 3 … K + 2 3 \ldots K+2 3…K+2 行: 每行一个操作, 格式见题目描述。
【输出格式】
第 1…N 行:每行 M 个字符,仅包含“,”,’+’, ’-‘, ‘|’,’ '五种字符。
‘.’ 表示桌面背景, 即该部分未被任何窗口覆盖, '十’ 表示窗口的四个角, ‘-'表示窗口的横边, ‘|’ 表示窗口的坚边, ‘’ 表示窗口内部。
【样例输入】
7 10 \begin{array}{lll}7 &10\end{array} 710
8 \begin{array}{lll}8\end{array} 8
new 1 0 3 2 5 \begin{array}{lllll}1 & 0 & 3 & 2 & 5\end{array} 10325
new 2 4 4 2 5 \begin{array}{llllll}2 & 4 & 4 & 2 & 5\end{array} 24425
new 3 3 3 4 6 \begin{array}{llllll}& 3 & 3 & 3 & 4 & 6\end{array} 33346
resize 3 3 6 \begin{array}{llllll}& 3 & 3 & 6 \end{array} 336
move 1 0 5 \begin{array}{lll}1 & 0 & 5\end{array} 105
close 2 \begin{array}{lll}2\end{array} 2
new 4 1 1 3 5 \begin{array}{llllll}4 & 1 & 1 & 3 & 5\end{array} 41135
【样例输出】
【评测用例规模与约定】
对于 100 % 100 \% 100% 的数据, 1 ≤ N , M ≤ 256 , 1 ≤ K ≤ 10000 1 \leq N, M \leq 256,1 \leq K \leq 10000 1≤N,M≤256,1≤K≤10000.
输入数据保证:
-
同一时间不会有两个相同 P I D P I D PID 的窗口存在, 可能存在关闭某个 P I D P I D PID 的窗口后, 再新建一个同样 P I D P I D PID 的窗口, P I D P I D PID 的取值范围为 1 ≤ P I D ≤ 100000 1 \leq P I D \leq 100000 1≤PID≤100000;
-
同时存在的窗口数量不超过 200 个:
-
窗口尺寸不会小于 2 × 2 2 \times 2 2×2, 即窗口高度和宽度均不会小于 2 , 不会大于 N × M N \times M N×M;
-
窗口在移动过程中, 可能有部分界面超出桌面显示范围;
-
所有输入的数值均不超过 ± 100000 \pm 100000 ±100000 。
-
move resize close 只会对未关闭的窗口操作。
试题 E: 迷宫
时间限制: 5.0 s 5.0 \mathrm{~s} 5.0 s 内存限制: 1.0 G B 1.0 \mathrm{~GB} 1.0 GB 本题总分: 15 分
【问题描述】
这天, 小明在玩迷宫游戏。
迷宫为一个 n × n n \times n n×n 的网格图, 小明可以在格子中移动, 左上角为 ( 1 , 1 ) (1,1) (1,1), 右下角 ( n , n ) (n, n) (n,n) 为终点。迷宫中除了可以向上下左右四个方向移动一格以外, 还有 m m m 个双向传送门可以使用, 传送门可以连接两个任意格子。
假如小明处在格子 ( x 1 , y 1 ) \left(x_{1}, y_{1}\right) (x1,y1), 同时有一个传送门连接了格子 ( x 1 , y 1 ) \left(x_{1}, y_{1}\right) (x1,y1) 和 ( x 2 , y 2 ) \left(x_{2}, y_{2}\right) (x2,y2), 那么小明既可以花费 1 的步数向上下左右四个方向之一走一格 (不能越过边界), 也可以花费 1 的步数通过传送门走到格子 ( x 2 , y 2 ) \left(x_{2}, y_{2}\right) (x2,y2) 去。
而对于同一个迷宫, 小明每次进入的初始格子是在这 n × n n \times n n×n 个格子中均匀随机的 (当然运气好可以直接随机到终点), 他想知道从初始格子走到终点的最短步数的期望值是多少。
【输入格式】
输入共 1 + m 1+m 1+m 行, 第一行为两个正整数 n , m n, m n,m 。
后面 m m m 行, 每行四个正整数 x i 1 , y i 1 , x i 2 , y i 2 x_{i 1}, y_{i 1}, x_{i 2}, y_{i 2} xi1,yi1,xi2,yi2 表示第 i i i 个传送门连接的两个格子坐标。
【输出格式】
输出共一行, 一个浮点数表示答案 (请保留两位小数)。
【样例输入】
2 1 \begin{array}{lll}2&1\end{array} 21
1 1 2 2 \begin{array}{lll}1&1&2&2\end{array} 1122
【样例输出】
0.75 \begin{array}{lll}0.75\end{array} 0.75
【样例解释】
由于传送门的存在, 从 ( 1 , 1 ) (1,1) (1,1) 出发到终点 ( 2 , 2 ) (2,2) (2,2) 只需要一步; 而从 ( 1 , 2 ) (1,2) (1,2) 和 ( 2 , 1 ) (2,1) (2,1) 出发也只需要向下/右走一步; 从 ( 2 , 2 ) (2,2) (2,2) 出发需要 0 步。所以步数期望为 1 + 1 + 1 + 0 2 × 2 = 0.75 \frac{1+1+1+0}{2 \times 2}=0.75 2×21+1+1+0=0.75 。
【评测用例规模与约定】
对于 20 % 20 \% 20% 的数据, 保证 n , m ≤ 20 n, m \leq 20 n,m≤20 ;
对于 100 % 100 \% 100% 的数据, 保证 n , m ≤ 2000 ; x i 1 , y i 1 , x i 2 , y i 2 ≤ n n, m \leq 2000 ; x_{i 1}, y_{i 1}, x_{i 2}, y_{i 2} \leq n n,m≤2000;xi1,yi1,xi2,yi2≤n 。
试题 F : \mathrm{F}: F: 小球称重
时间限制: 8.0 s 8.0 \mathrm{~s} 8.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 15 分
【问题描述】
小蓝有 N N N 个小球, 编号 1 至 N N N 。其中 N − 1 N-1 N−1 是正品, 重量相同; 有 1 个是次品, 重量比正品轻。
为了找出次品, 小蓝已经用天平进行了 M M M 次称重, 并且记录下来每次两边放的小球编号, 和称重结果。
请你根据记录, 判断还剩下几个小球有次品的嫌疑。
【输入格式】
第一行包含 2 个整数 N N N 和 M M M 。
以下包含 M M M 次称重记录, 每个记录占 4 行。
第一行是一个整数 K K K, 表示天平两边各放了 K K K 个小球。
第二行包含 K K K 个整数, 代表放在天平左边的小球编号。
第三行包含 K K K 个整数, 代表放在天平右边的小球编号。
第四行是一个字符, 为 ’ > > >‘, ‘ < < <’, ‘ = = =’ 之一。’ > > >’ 代表左边比右边重, ‘ < < <’ 代表左边比右边轻, ' = = ='代表两边重量相等。
在一次称重中保证每个小球最多出现 1 次。
【输出格式】
输出一个整数, 代表答案。
【样例输入】
10 2 \begin{array}{lll}10 & 2 \end{array} 102
3 \begin{array}{lll} 3\end{array} 3
1 2 3 \begin{array}{lll}1 & 2 & 3\end{array} 123
4 5 6 \begin{array}{lll}4 & 5 & 6\end{array} 456
< \begin{array}{lll}<\end{array} <
2 \begin{array}{lll}2\end{array} 2
3 7 \begin{array}{lll}3 & 7\end{array} 37
8 9 \begin{array}{lll}8& 9\end{array} 89
= \begin{array}{lll}= \end{array} =
【样例输出】
2 \begin{array}{lll}2 \end{array} 2
【样例说明】
{ 1 , 2 , 3 } < { 4 , 5 , 6 } \{1,2,3\}<\{4,5,6\} {1,2,3}<{4,5,6} 能判断出次品在 { 1 , 2 , 3 } \{1,2,3\} {1,2,3} 之中。
{ 3 , 7 } = { 8 , 9 } \{3,7\}=\{8,9\} {3,7}={8,9} 能判断出 3 不可能是次品。
所以只剩下 { 1 , 2 } \{1,2\} {1,2} 可能是次品。
【评测用例规模与约定】
对于 40 % 40 \% 40% 的数据, 1 ≤ N ≤ 1 0 6 1 \leq N \leq 10^{6} 1≤N≤106;
对于 100 % 100 \% 100% 的数据, 1 ≤ N ≤ 1 0 9 , 1 ≤ M ≤ 1 0 5 1 \leq N \leq 10^{9}, 1 \leq M \leq 10^{5} 1≤N≤109,1≤M≤105, 参与 M M M 次称重的小球总数 ≤ 1 0 6 \leq 10^{6} ≤106.
试题 G: 背包与魔法
时间限制: 3.0s 内存限制: 1.0 G B 1.0 \mathrm{~GB} 1.0 GB 本题总分: 20 分
【问题描述】
小蓝面前有 N N N 件物品, 其中第 i i i 件重量是 W i W_{i} Wi, 价值是 V i V_{i} Vi 。她还有一个背包, 最大承重是 M M M 。
小蓝想知道在背包称重范围内, 她最多能装总价值多少的物品?
特别值得一提的是, 小蓝可以使用一个魔法 (总共使用一次), 将一件物品的重量增加 K K K, 同时价值翻倍。(当然小蓝也可以不使用魔法)
【输入格式】
第一行包含 3 个整数 N 、 M N 、 M N、M 和 K K K 。
以下 N N N 行, 每行两个整数 W i W_{i} Wi 和 V i V_{i} Vi 。
【输出格式】
一个整数代表答案。
【样例输入】
3 10 3 \begin{array}{lll}3 & 10 & 3\end{array} 3103
5 10 \begin{array}{lll}5 & 10 \end{array} 510
4 9 \begin{array}{lll}4 & 9\end{array} 49
3 8 \begin{array}{lll}3 & 8 \end{array} 38
【样例输出】
26 \begin{array}{lll}26\end{array} 26
【样例说明】
选择第二件和第三件物品, 同时对第二件物品使用魔法。
【评测用例规模与约定】
对于 30 % 30 \% 30% 的数据, 1 ≤ N , M , K ≤ 100 1 \leq N, M, K \leq 100 1≤N,M,K≤100.
对于 100 % 100 \% 100% 的数据, 1 ≤ N ≤ 2000 , 1 ≤ M , K ≤ 10000 , 0 ≤ W i , V i ≤ 10000 1 \leq N \leq 2000,1 \leq M, K \leq 10000,0 \leq W_{i}, V_{i} \leq 10000 1≤N≤2000,1≤M,K≤10000,0≤Wi,Vi≤10000.
试题 H: 修路
时间限制: 3.0 s 3.0 \mathrm{~s} 3.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 20 分
【问题描述】
这天, 小明在修路。
他需要修理两条平行的道路 A , B A, B A,B, 两条路上面分别有 n n n 个和 m m m 个点需要维修, 它们相对于道路起点的距离分别为 a 1 , a 2 , … , a n a_{1}, a_{2}, \ldots, a_{n} a1,a2,…,an 和 b 1 , b 2 , b , … , b m b_{1}, b_{2}, b, \ldots, b_{m} b1,b2,b,…,bm 。如图,两条路之间的距离为 d d d 且它们起点 (最左端) 的连线和两条路都垂直。小明的起点为道路 A A A 的起点, 他需要尽可能快地遍历这些需要维修的 n + m n+m n+m 个点, 他既可以沿着道路 向右 行走, 也可以在两条道路之间的空地上 随意 行走。
小明想知道遍历这些点的最短路程是多少。
【输入格式】
输入共三行, 第一行为三个正整数 n , m , d n, m, d n,m,d 。
第二行为 n n n 个由空格隔开的正整数 a 1 , a 2 , … , a n a_{1}, a_{2}, \ldots, a_{n} a1,a2,…,an 。
第三行为 m m m 个由空格隔开的正整数 b 1 , b 2 , … , b m b_{1}, b_{2}, \ldots, b_{m} b1,b2,…,bm 。
【输出格式】
一行, 一个浮点数, 表示答案, 保留两位小数。
【样例输入】
2 2 2 \begin{array}{lll}2 & 2 & 2\end{array} 222
2 1 \begin{array}{lll}2 & 1\end{array} 21
1 2 \begin{array}{lll}1 & 2 \end{array} 12
【样例输出】
5.24 \begin{array}{lll}5.24\end{array} 5.24
【样例说明】
图中红线指出了样例的最短路线, 1 + 1 + 5 + 1 = 5.24 1+1+\sqrt{5}+1=5.24 1+1+5+1=5.24 。
【评测用例规模与约定】
对于 30 % 30 \% 30% 的数据, 保证 n + m ≤ 10 n+m \leq 10 n+m≤10 :
对于 100 % 100 \% 100% 的数据, 保证 n , m ≤ 2000 , d ≤ 4 × 1 0 6 , a i , b i ≤ 1 0 6 n, m \leq 2000, d \leq 4 \times 10^{6}, a_{i}, b_{i} \leq 10^{6} n,m≤2000,d≤4×106,ai,bi≤106 。
试题 I: 围栏
时间限制:3.0s 内存限制:512.0MB 本题总分:25分
【问题描述】
这天, 小明在造围栏。
他提前在地上 (二维平面) 打好了 n n n 个洞, 这 n n n 个洞的位置形成了一个凸多边形。当他准备把固定围栏的木杆插进去的时候, 突然发现自己少准备了两根木杆。
如图, 他现在只能在这 n n n 个洞中选出 n − 2 n-2 n−2 个来放置木杆, 他想知道用这 n − 2 n-2 n−2 个木杆能围成的凸多边形的最大的面积是多少。
【输入格式】
输入共 n + 1 n+1 n+1 行, 第一行为一个正整数 n n n 。
后面 n n n 行, 每行两个整数 x i , y i x_{i}, y_{i} xi,yi 表示第 i i i 个洞的坐标。
保证按照逆时针的顺序输入这 n n n 个点的坐标。
【输出格式】
一行, 一个正整数, 表示答案。
为了避免小数, 请输出面积的两倍。
【样例输入】
5
\begin{array}{ll}5 \\ & \end{array}
5
0
0
\begin{array}{ll}0 & 0 \\ & \end{array}
00
1
0
\begin{array}{ll}1 &0 \\ & \end{array}
10
2
1
\begin{array}{ll}2& 1 \\ & \end{array}
21
−
1
1
\begin{array}{ll}-1 & 1 \\ & \end{array}
−11
0
3
\begin{array}{ll}0 & 3 \\ & \end{array}
03
【样例输出】
6 \begin{array}{ll}6 \\ & \end{array} 6
【样例说明】
选择 ( − 1 , 1 ) ( 2 , 1 ) ( 0 , 3 ) (-1,1)(2,1)(0,3) (−1,1)(2,1)(0,3) 这三个点构成的多边形面积最大, 为 3 , 所以输出6
【评测用例规模与约定】
对于 100 % 100 \% 100% 的数据, 保证 5 ≤ n ≤ 100 ; ∣ x i ∣ , ∣ y i ∣ ≤ 1 0 6 5 \leq n \leq 100 ;\left|x_{i}\right|,\left|y_{i}\right| \leq 10^{6} 5≤n≤100;∣xi∣,∣yi∣≤106 。
试题J: 好数
时间限制: 3.0 s 内存限制: 512.0MB 本题总分: 25 分
【问题描述】
一个整数如果包含连续的 2022 四个数字, 我们就称之为 “好数”。
例如 2022、52022、20223、7020224 都是好数, 而 2202 、 20022 、 2222 2202 、 20022 、 2222 2202、20022、2222 都不是好数。
给定 L L L 和 R R R, 请你计算在 L L L 到 R R R 之间 (包含 L L L 和 R R R ) 所有好数的和是多少?
【输入格式】
两个整数 L L L 和 R R R 。
【输出格式】
一个整数代表答案。
【样例输入】
1 20000 \begin{array}{ll}1 & 20000 \\ & \end{array} 120000
【样例输出】
14044 \begin{array}{ll}14044 \\ & \end{array} 14044
【样例说明】
满足条件的好数有 2022 、 12022 2022 、 12022 2022、12022, 它们的和是 14044 。
【评测用例规模与约定】
对于 60 % 60 \% 60% 的评测用例, R − L ≤ 1 0 8 R-L \leq 10^{8} R−L≤108
对于 100 % 100 \% 100% 的评测用例, 1 ≤ L ≤ R ≤ 1 0 9 1 \leq L \leq R \leq 10^{9} 1≤L≤R≤109