ARTICLE · 1285906
【全网首发】2026 CSP-J 复赛真题出炉!4 道题完整版,考完速对答案
今天(10 月 31 日)上午,2026 年 CSP-J/S 第二轮认证入门组(CSP-J)刚刚结束。
第一时间整理了四道题的完整题目,方便考完的选手复盘,也方便明年备考的孩子提前感受真题难度。标程和详细解析见下一篇。
题目概况
四道题均为传统题,输入输出文件分别为 travel.in/out、string.in/out、and.in/out、card.in/out。
第一题:旅游(travel)
【题目描述】
小 R 和小 X 准备坐高铁出门旅游,买了两张二等座车票,希望座位相邻。
列车由 17 节车厢组成(编号 01 到 17),其中 01、16 号车厢是一等座,其余是二等座。两人买的都是二等座车票。
每节二等座车厢共 18 排,每排 5 个座位。座位号由两位排号和一位大写字母组成,例如 03C 表示第 3 排 C 座。每排座位从左到右依次是 A、B、C、D、F,其中 C 座与 D 座之间是过道——过道左侧是 A、B、C,右侧是 D、F。
两个座位相邻,当且仅当:在同一节车厢、同一排、过道同一侧,且在该侧座位序列中相邻。
请你依次判断:①是否同车厢;②是否同车厢同排;③是否同车厢同排且同侧;④是否相邻。
【输入格式】 四个字符串 c1 s1 c2 s2,分别是两人的车厢号、座位号。
【输出格式】 一个长度为 4 的 01 字符串,1 表示是,0 表示否。
【样例 1】
输入:02 01A 02 01B输出:111102 号车厢是二等座,01A 和 01B 同车厢、同排、同侧且相邻。
【样例 2】 输入 02 01C 02 01A → 输出 1110(C 和 A 中间隔着 B,不相邻)
【样例 3】 输入 02 01C 02 01D → 输出 1100(C、D 之间是过道)
【样例 4】 输入 02 02B 02 01A → 输出 1000(同车厢但不同排)
【样例 5】 输入 02 01A 03 01A → 输出 0000(不同车厢)
【数据范围】 车厢号是 01 到 17 之间除 01、16 外的两位号;座位号前两位是 01 到 18 的排号,末位是 A/B/C/D/F;两张票不是同一个座位。
第二题:回文串(string)
【题目描述】
小 R 有一个长度为 L 的字符串 S,只含小写字母。S 可以分成 n 个连续段,第 i 段由 aᵢ 个小写字母 cᵢ 构成,依次拼接得到 S。
小 X 想让 S 变成回文串(反转后与原串相同)。小 R 每次可以把任意一个字符改成任意小写字母,求最少需要修改多少个字符。
【输入格式】 第一行正整数 n;接下来 n 行,每行一个正整数 aᵢ 和一个小写字母 cᵢ。
【输出格式】 一个整数,表示最少修改次数。
【样例 1】
输入:32 a2 b1 c输出:2S = aabbc,把最后的 c 和倒数第二个 b 改成 a,得到 aabaa,共改 2 个字符。
【样例 2】 输入 2 / 2 a / 3 a → 输出 0(S = aaaaa 已是回文)
【样例 3】 输入 6 / 1000000000 a / 1000000000 a / 1000000000 a / 1000000000 b / 1000000000 b / 1000000000 b → 输出 3000000000
【数据范围】 1 ≤ n ≤ 2×10⁵;1 ≤ aᵢ ≤ 10⁹;cᵢ 为小写字母。
第三题:按位与(and)
【题目描述】
小 R 有 n 个非负整数 a₁, a₂, …, aₙ。小 X 给了一个正整数 m,要求从中选出恰好 m 个,使这 m 个数的二进制按位与的值最大。求这个最大值。
【输入格式】 第一行两个正整数 n, m;第二行 n 个非负整数。
【输出格式】 一个非负整数,表示最大按位与值。
【样例 1】
输入:4 23 15 12 12输出:12选 15 和 12,15 and 12 = 12(选两个 12 也是 12)。
【样例 2】 输入 5 3 / 31 3 1 15 7 → 输出 7(选 31, 15, 7,按位与为 7)
【数据范围】 1 ≤ m ≤ n ≤ 2×10⁵;0 ≤ aᵢ < 2³⁰。
第四题:纸牌游戏(card)
【题目描述】
小 Z 在玩一种单人纸牌游戏。有 n 张牌,从上到下点数依次为 a₁, a₂, …, aₙ,每张牌点数都是 1 到 m 之间的整数,且每种点数至少出现一次。
小 Z 要进行 n 局相互独立的游戏。第 i 局中,他跳过前 i−1 张牌,依次打出第 i 到第 n 张牌。
桌面上的牌始终从左到右排成一行。打出一张点数为 k 的牌时:
若桌面上没有点数为 k 的牌,就把它放在最右端; 否则,收走桌面上点数为 k 的牌及其右侧所有牌,再把这张牌放在最右端。
由规则可知,任意时刻桌面同一种点数至多一张。最后一张牌打出后,本局结束。
请你求出:对于每个 i = 1, 2, …, m,在所有 n 局游戏中,有多少局结束时桌面上留有点数为 i 的牌。
【输入格式】 第一行两个正整数 n, m;第二行 n 个整数 a₁, …, aₙ。
【输出格式】 一行 m 个整数,第 i 个表示点数为 i 的牌在多少局结束时留在桌面。
【样例 1】
输入:4 31 2 1 3输出:3 1 4(点数为 1 的牌留在第 1、2、3 局,点数为 2 的留第 2 局,点数为 3 的留全部 4 局。)
【样例 2】 输入 10 3 / 3 1 2 1 3 2 3 1 2 1 → 输出 10 3 3
【数据范围】 2 ≤ n ≤ 5×10⁵,1 ≤ m ≤ 3×10⁵;1 ≤ aᵢ ≤ m;每种点数至少出现一次。
标程与详细解析见下一篇《2026 CSP-J 复赛四道题标程 + 解析》。题目以 CCF 官方发布为准。















































































