试卷 2023 CSP-J2(入门级复赛)第二轮认证真题及答案
2023 CSP-J2(入门级复赛)第二轮认证真题及答案
编程题
第 1 题    问答题

小苹果(apple)

【题目描述】

小苹果(apple)

小 的桌子上放着 个苹果从左到右排成一列,编号为从 到 n
小苞是小 
的好朋友,每天她都会从中拿走一些苹果。 每天在拿的时候,小苞都是从左侧第 个苹果开始、每隔 个苹果拿走 个苹果。

随后小苞会将剩下的苹果按原先的顺序重新排成一列。 小苞想知道,多少天能拿完所有的苹果,而编号为 的苹果是在第几天被拿走的?

【输入格式】

从文件 apple.in 中读入数据。 输入的第一行包含一个正整数 n,表示苹果的总数。

【输出格式】

输出到文件 apple.out 中。

输出一行包含两个正整数,两个整数之间由一个空格隔开,分别表示小苞拿走所有 苹果所需的天数以及拿走编号为 的苹果是在第几天。

【样例 输入】 

8

【样例 输出】 

5  5

【样例 解释】

小苞的桌上一共放了 个苹果。 小苞第一天拿走了编号为 14的苹果。 小苞第二天拿走了编号为 2的苹果。 小苞第三天拿走了编号为 的苹果。 小苞第四天拿走了编号为 的苹果。 小苞第五天拿走了编号为 的苹果。

【样例 2
见选手目录下的 apple/apple2.in 与 apple/apple2.ans

【数据范围】

对于所有测试数据有:≤ ≤ 109

测试点 ≤ 特殊性质 12 10 

特殊性质:小苞第一天就取走编号为 的苹果。

第 2 题    问答题

公路(road)

【题目描述】

小苞准备开着车沿着公路自驾。

公路上一共有n个站点,编号为从1到n。其中站点i与站点i+1的距离为v公 里。

公路上每个站点都可以加油,编号为 i 的站点一升油的价格为 a元,且每个站点 只出售整数升的油。

小苞想从站点 1 开车到站点 n,一开始小苞在站点 1 且车的油箱是空的。已知车的 油箱足够大,可以装下任意多的油,且每升油可以让车前进 d 公里。问小苞从站点 1 开 到站点 n,至少要花多少钱加油?

【输入格式】

从文件 road.in 中读入数据。

输入的第一行包含两个正整数 n 和 d,分别表示公路上站点的数量和车每升油可以 前进的距离。

输入的第二行包含 n  1 个正整数 v1, v2 . . . vn1,分别表示站点间的距离。 

输入的第二行包含 n 个正整数 a1, a2 . . . an,分别表示在不同站点加油的价格。

【输出格式】

输出到文件 road.out 中。

输出一行,仅包含一个正整数,表示从站点 1 开到站点 n,小苞至少要花多少钱加 油。

【样例 1 输入】

54

10101010 3 98965

【样例 1 输出】 

79

【样例 1 解释】

最优方案下:小苞在站点 1 买了 3 升油,在站点 2 购买了 5 升油,在站点 4 购买 了 2 升油。

【样例 2】

见选手目录下的 road/road2.in 与 road/road2.ans。

【数据范围】

对于所有测试数据保证:1≤n≤105,1≤d≤105,1≤vi ≤105,1≤ai ≤105

特殊性质 A:站点 1 的油价最低。

特殊性质B:对于所有1 ≤ i < n,vi 为d的倍数。

第 3 题    问答题

一元二次方程(uqe)

【题目背景】 

众所周知,对一元二次方程 axbx = 0(̸= 0),可以用下述方式求实数解: • 计算 ∆ = b− 4ac,则: 

1. 若 ∆ 0,则该一元二次方程无实数解;
2. 否则 ∆ ≥ 0,此时该一元二次方程有两个实数解 x1,b± ∆ 

解互异。 

例如:
• x+x+1=0无实数解,因为∆=14×1×1=3<0• x2x+1 = 0有两相等实数解x1,= 1;
• x3x+2 = 0有两互异实数解x= 1,x= 2

在题面描述中 和 的最大公因数使用 gcd(a, b表示。例如 12 和 18 的最大公因 数是 6,即 gcd(1218) = 6。 

【题目描述】 

现在给定一个一元二次方程的系数 a, b, c,其中 a, b, c ̸= 0。你需要判 断一元二次方程 axbx = 0 是否有实数解,并按要求的格式输出。

................

·       由有理数的定义,存在的两个整数 和 q,满足 q > 0gcd(p, q) = 1 且 

p。 

·       = 1,则{p};{p}/{q};其中 {n} 代表整数 的值; 

·       例如: 

– 当 0.时,和 的值分别为 和 2,则应输出 ‐1/2– 当 = 0 时,和 的值分别为 和 1,则应输出 0。 

....,分.....

1.     若 ∆ = b− 4ac < 0,则表明方程无实数解,此时你应当输出 NO

2.     否则 ∆ ≥ 0,此时方程有两解(可能相等),记其中为 x,则: 

(1). 若 为有理数,则按有理数的格式输出 x。 (2).否则根据上文公式,x可以被..表示为x=+qr的形式,其中: 

• q1,q2为有理数,且q>0;
• r为正整数且r>1,且不存在正整数d>1使d2|r(r不应是d2的倍数); 

此时: 

1. 若 q̸= 0,则按照有理数的格式输出 q1,并再输出一个加号 +2. 否则跳过这一步输出; 

随后: 

1. 若 q= 1,则输出 sqrt({r})

2. 否则若 q为整数,则输出 {q2}*sqrt({r})

3. 否则若 q为整数,则输出 sqrt({r})/{q3}q

4.否则可以证明存在唯一整数c,d满足c,d>1,gcd(c,d)=1q=dc,此时 输出 {c}*sqrt({r})/{d}

上述表示中 {n} 代表整数 的值,详见样例。 如果方程有实数解,则按要求的格式输出两个实数解中的较大者。否则若方程没有

实数解,则输出 NO。 

【输入格式】 

从文件 uqe.in 中读入数据。
输入的第一行包含两个正整数 
T , M ,分别表示方程数和系数绝对值的上界; 接下来 行,每行包含三个整数 a, b, c。 

【输出格式】 

输出到文件 uqe.out 中。
输出 
行,每行包含一个字符串,表示对应询问的答案,格式如题面所述。 ...........。 

【样例 输入】 

9 1000

1 ‐1 0

‐1‐1‐1 4 1 ‐2 1

1 5 4

4 4 1

1 0‐432 

1 ‐3 1

2 ‐4 1 

1 7 1

【样例 输出】 

1
NO
1
‐1
‐1/2
12*sqrt(3)
3/2+sqrt(5)/2
1+sqrt(2)/2
‐7/2+3*sqrt(5)/2 

【样例 2
见选手目录下的 uqe/uqe2.in 与 uqe/uqe2.ans。 

【数据范围】 

对于所有测试数据有:≤ ≤ 5000≤ ≤ 103|a||b||c| ≤ M̸= 0。 

其中:
• 特殊性质A:保证= 0;
• 特殊性质B:保证= 0;
• 特殊性质 C:如果方程有解,那么方程的两个解都是整数。

第 4 题    问答题

旅游巴士(bus

【题目描述】 

小 打算在国庆假期期间搭乘旅游巴士去一处他向往已久的景点旅游。 

旅游景点的地图共有 处地点,在这些地点之间连有 条道路。其中 号地点为 景区入口,号地点为景区出口。我们把一天当中景区开门营业的时间记为 时刻,则 从 时刻起,每间隔 单位时间便有一辆旅游巴士到达景区入口,同时有一辆旅游巴士 从景区出口驶离景区。

所有道路均只能。对于每条道路,游客步行通过的用时均为恰好 单位时 间。 

小 希望乘坐旅游巴士到达景区入口,并沿着自己选择的任意路径走到景区出口, 再乘坐旅游巴士离开,这意味着他到达和离开景区的时间都必须是 。由 于节假日客流众多,...............沿........,而.......(包.........)或.......。 

出发前,小 忽然得知:景区采取了限制客流的方法,对于每条道路均设置了一个 “开放时间”ai,游客只有a才能通过这条道路。 

请你帮助小 设计一个旅游方案,使得他乘坐旅游巴士离开景区的时间尽量地早。 【输入格式】 

从文件 bus.in 中读入数据。 

输入的第一行包含 个正整数 n, m, k,表示旅游景点的地点数、道路数,以及旅游 巴士的发车间隔。 

输入的接下来 行,每行包含 个非负整数 ui, vi, ai,表示第 条道路从地点 u出发,到达地点 vi,道路的“开放时间”为 ai。 

【输出格式】 

输出到文件 bus.out 中。 

输出一行,仅包含一个整数,表示小 最早乘坐旅游巴士离开景区的时刻。如果不 存在符合要求的旅游方案,输出 ‐1。 

【样例 输入】 

5 5 3 

1 2 0

2 5 1

1 3 0 

3 4 3

4 5 1 

【样例 输出】

【样例 解释】 

1: 样例1示例 

Z可以在3时刻到达景区入口,沿→ → → 5的顺序走到景区出口,并在 时刻离开。 

【样例 2】 

见选手目录下的 bus/bus2.in 与 bus/bus2.ans

【数据范围】 

对于所有测试数据有:2n1041m2×1041k1001ui,vn, 0a106。 

答题卡
编程题
1 2 3 4
题目总数:4
总分数:100
时间:210分钟