复赛总览:规则·评测·得分
基础概念
基通俗讲解
CSP-J/S 分两轮:第一轮(初赛)笔试筛选,第二轮(复赛)上机写程序。复赛在报名所在省组织,4 小时、4 道题,每题 100 分,按子任务给部分分。你提交的不是"答案",而是能编译运行的完整 C++ 程序;评测机用多组测试数据运行你的程序,按通过的数据点给分。
复赛当日时间线
比赛当天节奏:先通读 4 题估难度,先做最有把握的题拿部分分,留时间对拍与检查文件 I/O。
评测系统与结果含义
背直接背熟
- AC:全部测试点通过(拿满分)。
- WA:答案错误(逻辑/边界错)。
- TLE:超时(算法太慢或死循环)。
- MLE:超内存(数组开太大/递归太深)。
- RE:运行错误(越界/除零/栈溢出)。
- CE:编译错误(语法错,0 分!提交前务必本地编译过)。
得分构成:部分分是关键
技高分捷径
复赛每题 100 分,但被拆成多个子任务(测试点包)。即使做不出正解,暴力/贪心/特判也能拿到 20~60 分。策略:先写能拿分的版本,再优化冲满分。
复赛 vs 初赛
难别混淆
- 初赛:笔试,考"懂不懂"(选择/阅读/填空)。
- 复赛:上机,考"写不写得出"(完整程序 + 文件 I/O)。
- 初赛靠记忆与速算;复赛靠调试、对拍、时间分配。
梯度自测
基础复赛一道题满分是多少?怎么拿?
理解评分方式。
| 1 | 每题 100 分 = 各子任务得分之和;子任务按测试点给分,部分通过得部分分。 |
▍解析:答:满分 100,按通过的子任务/测试点累计给分,不必全对也能拿分。
中档提交前最该确认的一件事?
避免 0 分。
| 1 | // 本地必须编译通过,且按要求读写文件 freopen("xxx.in","r",stdin); freopen("xxx.out","w",stdout); |
▍解析:答:本地用 g++ 编译无 warning 通过,并确认文件读写文件名与题目要求完全一致(CE/文件名错=0 分)。
记忆口诀
技📌 口诀
"复赛写程序不是写答案,评测机替你跑;子任务里攒部分分,编译通过再提交。"
📝 本节自测共 6 题
做完点「提交本节自测」即时判分;单选 / 多选 / 填空混合,答错可一键收入错题本。
CSP-J/S 复赛(第二轮)的主要比赛形式是?
✅ 正确答案:A
复赛为上机编程,在限时内写出能通过测试点的程序。
复赛评测通常如何判定一道题的得分?
✅ 正确答案:A
多数 OI 赛制按测试点给分,部分通过也能拿部分分。
入门级(J)与提高级(S)复赛的关系是?
✅ 正确答案:A
J/S 同场不同卷,S 难度更深、知识点更广。
当数据范围达到 10^9 量级的乘法时,为防止溢出应使用 ____ 类型。(填空) 填空题 易
✅ 正确答案:long long
long long 可表示约 ±9×10^18,远超 int 范围。
在 C++ 中,加速读入的常用做法是 ____ 。(填空) 填空题 易
✅ 正确答案:scanf
关同步、scanf、手写快读都能加速 I/O。
下列哪些做法有助于避免“爆零”?(多选) 多选题 中
✅ 正确答案:ABC
文件名、文件读写、多测重置是防爆零三件套。