发现宝藏

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。


【考生须知】

考试开始后, 选手首先下载题目, 并使用考场现场公布的解压密码解压试题。

考试时间为 4 小时。考试期间选手可浏览自己已经提交的答案, 被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。

对同一题目, 选手可多次提交答案, 以最后一次提交的答案为准。

选手必须通过浏览器方式提交自己的答案。选手在其它位置的作答或其它方式提交的答案无效。

试题包含 “结果填空” 和 “程序设计” 两种题型。

结果填空题: 要求选手根据题目描述直接填写结果。求解方式不限。不要求源代码。把结果填空的答案直接通过网页提交即可, 不要书写多余的内容。

程序设计题: 要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果才有机会得分。

注意: 在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的, 不能只对试卷中给定的数据有效。

所有源码必须在同一文件中。调试通过后,拷贝提交。

注意: 不要使用 package 语句。

注意:选手代码的主类名必须为: Main, 否则会被判为无效代码。

注意: 如果程序中引用了类库, 在提交时必须将 import 语句与程序的其他部分同时提交。只允许使用 Java 自带的类库。


试题 A: ASC

本题总分:5分

【问题描述】

已知大写字母 A \mathrm{A} A 的 ASCII 码为 65 , 请问大写字母 L \mathrm{L} L 的 ASCII 码是多少?

【答案提交】

这是一道结果填空的题, 你只需要算出结果后提交即可。本题的结果为一个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。


试题 B: 空间

本题总分: 5 分

【问题描述】

小蓝准备用 256 M B 256 \mathrm{MB} 256MB 的内存空间开一个数组, 数组的每个元素都是 32 位二进制整数, 如果不考虑程序占用的空间和维护内存需要的辅助空间, 请问 256 M B 256 \mathrm{MB} 256MB 的空间可以存储多少个 32 位二进制整数?

【答案提交】

这是一道结果填空的题, 你只需要算出结果后提交即可。本题的结果为一个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。


试题 C: 卡片

本题总分: 10 分

【问题描述】

小蓝有很多数字卡片, 每张卡片上都是数字 0 到 9 。

小蓝准备用这些卡片来拼一些数, 他想从 1 开始拼出正整数, 每拼一个,就保存起来, 卡片就不能用来拼其它数了。

小蓝想知道自己能从 1 拼到多少。

例如, 当小蓝有 30 张卡片, 其中 0 到 9 各 3 张, 则小蓝可以拼出 1 到 10 ,但是拼 11 时卡片 1 已经只有一张了, 不够拼出 11 。

现在小蓝手里有 0 到 9 的卡片各 2021 张, 共 20210 张, 请问小蓝可以从 1 拼到多少?

提示: 建议使用计算机编程解决问题。

【答案提交】

这是一道结果填空的题, 你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


试题 D: 相乘

本题总分: 10 分

【问题描述】

小蓝发现, 他将 1 至 1000000007 之间的不同的数与 2021 相乘后再求除以 1000000007 的余数, 会得到不同的数。

小蓝想知道, 能不能在 1 至 1000000007 之间找到一个数, 与 2021 相乘后再除以 1000000007 后的余数为 999999999 。如果存在, 请在答案中提交这个数;如果不存在, 请在答案中提交 0 。

【答案提交】

这是一道结果填空的题, 你只需要算出结果后提交即可。本题的结果为一个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。


试题 E: 路径

本题总分: 15 分

【问题描述】

小蓝学习了最短路径之后特别高兴, 他定义了一个特别的图, 希望找到图中的最短路径.

小蓝的图由 2021 个结点组成, 依次编号 1 至 2021。

对于两个不同的结点 a , b a, b a,b, 如果 a a a b b b 的差的绝对值大于 21 , 则两个结点之间没有边相连: 如果 a a a b b b 的差的绝对值小于等于 21 , 则两个点之间有一条长度为 a a a b b b 的最小公倍数的无向边相连。

例如: 结点 1 和结点 23 之间没有边相连: 结点 3 和结点 24 之间有一条无向边, 长度为 24 : 结点 15 和结点 25 之间有一条无向边, 长度为 75 。

请计算, 结点 1 和结点 2021 之间的最短路径长度是多少。

提示:建议使用计算机编程解决问题。

【答案提交】

这是一道结果填空的题, 你只需要算出结果后提交即可。本题的结果为一个整数, 在提交答案时只塂写这个整数, 塂写多余的内容将无法得分。


试题 F: 时间显示

时间限制: 1.0   s 1.0 \mathrm{~s} 1.0 s 内存限制: 512.0MB 本题总分: 15 分

【问题描述】

小蓝要和朋友合作开发一个时间显示的网站。在服务器上,朋友已经获取了当前的时间, 用一个整数表示, 值为从 1970 年 1 月 1 日 00:00:00 到当前时刻经过的毫秒数。

现在, 小蓝要在客户踹显示出这个时间。小笽不用显示出年月日,只需眢显示出时分秒即可,毫秒也不用显示,直接舍去即可。

给定一个用整数表示的时间, 请将这个时间对应的时分秒输出。

【输入格式】

输入一行包含一个整数, 表示时间。

【输出格式】

输出时分秒表示的当前时间,格式形如 HH:MM:SS,其中 HH 表示时,值为 0 到 23, MM 表示分, 值为 0 到 59, SS 表示秒, 值为 0 到 59。时、分、秒不足两位时补前导 0 。

【样例输入 1 】

46800999 \begin{array}{llllll}46800999\end{array} 46800999

【样例输出 1 】

13 : 00 : 00 \begin{array}{llllll}13: 00: 00\end{array} 13:00:00

【样例输入 2】

1618708103123 \begin{array}{llllll}1618708103123 \end{array} 1618708103123

【样例输出 2 】

01 : 08 : 23 \begin{array}{llllll}01: 08: 23 \end{array} 01:08:23

【评测用例规模与约定】

对于所有评测用例, 给定的时间为不超过 1 0 18 10^{18} 1018 的正整数。


试题 G: 最少砝码

时间限制: 1.0   s 1.0 \mathrm{~s} 1.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 20 分

【问题描述】

你有一架天平。现在你要设计一套砝码, 使得利用这些砝码可以称出任意小于等于 N N N 的正整数重量。

那么这套砝码最少需要包含多少个砝码?

注意砝码可以放在天平两边。

【输入格式】

输入包含一个正整数 N N N

【输出格式】

输出一个整数代表答案。

【样例输入】

7 \begin{array}{llllll}7 \end{array} 7

【样例输出】

3 \begin{array}{llllll}3 \end{array} 3

【样例说明】

3 个砝码重量是 1 、 4 、 6 1 、 4 、 6 146, 可以称出 1 至 7 的所有重量。

1 = 1 1=1 1=1;

2 = 6 − 4 ( 2=6-4( 2=64( 天平一边放 6 , 另一边放 4 ) ) );

3 = 4 − 1 ; 3=4-1 ; 3=41;

4 = 4 4=4 4=4

5 = 6 − 1 5=6-1 5=61;

6 = 6 6=6 6=6;

7 = 1 + 6 ; 7=1+6 ; 7=1+6;

少于 3 个砝码不可能称出 1 至 7 的所有重量。

【评测用例规模与约定】

对于所有评测用例, 1 ≤ N ≤ 1000000000 1 \leq N \leq 1000000000 1N1000000000


试题 H : \mathrm{H}: H: 杨辉三角形

时间限制: 5.0   s 5.0 \mathrm{~s} 5.0 s 内存限制: 512.0MB 本题总分: 20 分

【问题描述】

下面的图形是著名的杨辉三角形:

第十二届蓝桥杯省赛真题 Java C 组【原卷】-LMLPHP

如果我们按从上到下、从左到右的顺序把所有数排成一列, 可以得到如下数列:

1 , 1 , 1 , 1 , 2 , 1 , 1 , 3 , 3 , 1 , 1 , 4 , 6 , 4 , 1 , … 1,1,1,1,2,1,1,3,3,1,1,4,6,4,1, \ldots 1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,

给定一个正整数 N N N, 请你输出数列中第一次出现 N N N 是在第几个数?

【输入格式】

输入一个整数 N N N

【输出格式】

输出一个整数代表答案。

【样例输入】

6 \begin{array}{llllll}6\end{array} 6

【样例输出】

13 \begin{array}{llllll}13\end{array} 13

【评测用例规模与约定】

对于 20 % 20 \% 20% 的评测用例, 1 ≤ N ≤ 10 1 \leq N \leq 10 1N10;

对于所有评测用例, 1 ≤ N ≤ 1000000000 1 \leq N \leq 1000000000 1N1000000000


试题 I: 左孩子右兄弟

时间限制: 2.0   s 2.0 \mathrm{~s} 2.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 25 分

【问题描述】

对于一柦多叉树, 我们可以通过 “左孩子右兄弟” 表示法, 将其转化成一棵二叉树。

如果我们认为每个结点的子结点是无序的, 那么得到的二叉树可能不唯一。换句话说, 每个结点可以选任意子结点作为左孩子, 并按任意顺序连接右兄弟。给定一棵包含 N N N 个结点的多叉树, 结点从 1 至 N N N 编号, 其中 1 号结点是根, 每个结点的父结点的编号比自己的编号小。请你计算其通过 “左孩子右兄弟” 表示法转化成的二叉树, 高度最高是多少。注: 只有根结点这一个结点的树高度为 0 。

例如如下的多叉树:

第十二届蓝桥杯省赛真题 Java C 组【原卷】-LMLPHP

可能有以下 3 种 (这里只列出 3 种, 并不是全部) 不同的 “左孩子右兄弟”表示:

第十二届蓝桥杯省赛真题 Java C 组【原卷】-LMLPHP

其中最后一种高度最高, 为 4 。

【输入格式】

输入的第一行包含一个整数 N N N

以下 N − 1 N-1 N1 行, 每行包含一个整数, 依次表示 2 至 N N N 号结点的父结点编号。

【输出格式】

输出一个整数表示答案。

【样例输入】

5 \begin{array}{llllll}5\end{array} 5

1 \begin{array}{llllll}1\end{array} 1

1 \begin{array}{llllll}1\end{array} 1

1 \begin{array}{llllll}1\end{array} 1

2 \begin{array}{llllll}2\end{array} 2

【样例输出】

4 \begin{array}{llllll}4\end{array} 4

【评测用例规模与约定】

对于 30 % 30 \% 30% 的评测用例, 1 ≤ N ≤ 20 1 \leq N \leq 20 1N20;

对于所有评测用例, 1 ≤ N ≤ 100000 1 \leq N \leq 100000 1N100000


试题 J : \mathrm{J}: J: 双向排序

时间限制: 5.0   s 5.0 \mathrm{~s} 5.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 25 分

【问题描述】

给定序列 ( a 1 , a 2 , ⋯   , a n ) = ( 1 , 2 , ⋯   , n ) \left(a_{1}, a_{2}, \cdots, a_{n}\right)=(1,2, \cdots, n) (a1,a2,,an)=(1,2,,n), 即 a i = i a_{i}=i ai=i

小蓝将对这个序列进行 m m m 次操作,每次可能是将 a 1 , a 2 , ⋯   , a q i a_{1}, a_{2}, \cdots, a_{q i} a1,a2,,aqi 降序排列,或者将 a q , a q , + 1 , ⋯   , a n a_{q}, a_{q,+1}, \cdots, a_{n} aq,aq,+1,,an 升序排列。

请求出操作完成后的序列.

【输入格式】

输入的第一行包含两个整数 n , m n, m n,m, 分别表示序列的长度和操作次数。

接下来 m m m 行描述对序列的操作, 其中第 i i i 行包含两个整数 p i , q i p_{i}, q_{i} pi,qi 表示操作类型和参数。当 p i = 0 p_{i}=0 pi=0 时, 表示将 a 1 , a 2 , ⋯   , a i a_{1}, a_{2}, \cdots, a_{i} a1,a2,,ai 降序排列: 当 p i = 1 p_{i}=1 pi=1 时, 表示将 a q , a q i + 1 , ⋯   , a n a_{q}, a_{q i+1}, \cdots, a_{n} aq,aqi+1,,an 升序排列。

【输出格式】

输出一行, 包含 n n n 个整数, 相剑的整数之间使用一个空格分隔, 表示操作完成后的序列。

【样例输入】

3 3 \begin{array}{llllll}3&3\end{array} 33

0 3 \begin{array}{llllll}0&3\end{array} 03

1 2 \begin{array}{llllll}1&2\end{array} 12

0 2 \begin{array}{llllll}0&2\end{array} 02

【样例输出】

3 1 2 \begin{array}{llllll}3&1&2\end{array} 312

【样例说明】

原数列为 ( 1 , 2 , 3 ) (1,2,3) (1,2,3)

第 1 步后为 ( 3 , 2 , 1 ) (3,2,1) (3,2,1)

第 2 步后为 ( 3 , 1 , 2 ) (3,1,2) (3,1,2)

第 3 步后为 ( 3 , 1 , 2 ) (3,1,2) (3,1,2) 。 与第 2 步操作后相同, 因为前两个数已经是降序了。

【评测用例规模与约定】

对于 30 % 30 \% 30% 的评测用例, n , m ≤ 1000 n, m \leq 1000 n,m1000;

对于 60 % 60 \% 60% 的评测用例, n , m ≤ 5000 n, m \leq 5000 n,m5000;

对于所有评测用例, 1 ≤ n , m ≤ 100000 , 0 ≤ p i ≤ 1 , 1 ≤ q i ≤ n 1 \leq n, m \leq 100000,0 \leq p_{i} \leq 1,1 \leq q_{i} \leq n 1n,m100000,0pi1,1qin

05-14 19:25