文章目录
发现宝藏
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。
【考生须知】
考试开始后, 选手首先下载题目, 并使用考场现场公布的解压密码解压试题。
考试时间为 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 1、4、6, 可以称出 1 至 7 的所有重量。
1 = 1 1=1 1=1;
2 = 6 − 4 ( 2=6-4( 2=6−4( 天平一边放 6 , 另一边放 4 ) ) );
3 = 4 − 1 ; 3=4-1 ; 3=4−1;
4 = 4 4=4 4=4
5 = 6 − 1 5=6-1 5=6−1;
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 1≤N≤1000000000 。
试题 H : \mathrm{H}: H: 杨辉三角形
时间限制: 5.0 s 5.0 \mathrm{~s} 5.0 s 内存限制: 512.0MB 本题总分: 20 分
【问题描述】
下面的图形是著名的杨辉三角形:
如果我们按从上到下、从左到右的顺序把所有数排成一列, 可以得到如下数列:
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 1≤N≤10;
对于所有评测用例, 1 ≤ N ≤ 1000000000 1 \leq N \leq 1000000000 1≤N≤1000000000 。
试题 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 。
例如如下的多叉树:
可能有以下 3 种 (这里只列出 3 种, 并不是全部) 不同的 “左孩子右兄弟”表示:
其中最后一种高度最高, 为 4 。
【输入格式】
输入的第一行包含一个整数 N N N 。
以下 N − 1 N-1 N−1 行, 每行包含一个整数, 依次表示 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 1≤N≤20;
对于所有评测用例, 1 ≤ N ≤ 100000 1 \leq N \leq 100000 1≤N≤100000 。
试题 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,m≤1000;
对于 60 % 60 \% 60% 的评测用例, n , m ≤ 5000 n, m \leq 5000 n,m≤5000;
对于所有评测用例, 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 1≤n,m≤100000,0≤pi≤1,1≤qi≤n 。