CSP-J复赛“防爆零”手册
(2025年10月版 · 选手随身版)
一、一句话看懂“爆零”
代码能过样例≠有分。
只要评测时找不到你规定的 .in/.out 文件,或文件名、路径、大小写出错,评测系统直接判 0 分,这就叫“爆零”。
二、10 大高频爆零坑
-
没写 freopen 或写错参数
错:freopen("a.in","read",stdin);
对:freopen("a.in","r",stdin);// 字母 r、w 必须小写 -
文件名与题目不一致
题目叫 apple,你写成 Apple.cpp / APPLE.cpp / apple.cpp.cpp -
文件夹层级错
正确:考号目录下再建 4 个题号子目录,cpp 放在对应子目录里 -
把 .in/.out 也塞进提交包
多数省份禁止,多文件即 0 分 -
调试输出没删
printf("debug\n");评测会当成答案,直接 WA 0 分 -
数组越界 / 局部变量未初始化
本地能跑,评测机一开 AddressSanitizer 直接 RE 0 分 -
开了 1e8 以上大数组
编译通过,运行瞬间 MLE 0 分 -
用万能头却写错
#include<bits/stdc++.h>打漏 s 或分号,编译失败 0 分 -
main 返回值不是 int 或没 return 0;
部分 OJ 直接 CE 0 分 -
交卷前只留 exe,cpp 被清理
监考老师回收不到源码,0 分
三、考场 15 分钟“保分”流程
-
进场先建“工程骨架”
D:\FJ-J0001\ ← 用准考证号命名
├─ apple\
├─ road\
├─ bus\
└─ math\ -
每道题 3 文件
apple.cpp apple.in apple.out // in/out 用来本地对拍
注意:最终只留 cpp,in/out 必须删除! -
代码模板(直接复制)
#include <bits/stdc++.h>
using namespace std;
int main(){
freopen("apple.in","r",stdin);
freopen("apple.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(nullptr);
// 你的代码
return 0;
}
写完先编译 → 运行 → 手工比对 apple.out,确认无误后
把两行 freopen 注释掉再测一次,防止本地死循环。
-
最后 10 分钟“保分检查单”
☐ 文件夹、cpp 名 100% 匹配题目英文
☐ freopen 行已取消注释并保存
☐ 没有额外 printf/cout 调试语句
☐ 数组大小 ≤ 128 MB(约 3.3×10^7 个 int)
☐ g++ 编译零警告(-Wall 开警告)
☐ 删除全部 .in/.out,只剩 .cpp
☐ 退出前再按一次 Ctrl+S,看监考老师点头
四、常见疑问速答
Q1 能带模板吗?
A 只能带“纸质”模板,电子文件禁止。建议把 freopen、快读、并查集、线段树模板提前抄在一张 A4 正反两面,入场放在键盘边。
Q2 评测时 Linux 大小写敏感,Windows 不敏感,怎么办?
A 本地写完后,用虚拟机或 NOI Linux 2.0 镜像跑一遍;没条件就手动把文件名全部改成小写再测。
Q3 样例全过,赛后官方数据只有 30 分?
A 说明你算法复杂度或边界处理有误。防爆零只解决“0 分”问题,想拿高分仍需多组自造极端数据+对拍。
五、1 页 A4 速记卡(打印带走)
-
文件夹:考号→4 题英文名→只放 .cpp
-
freopen 必双引号小写 r w,文件名=题面英文名
-
删调试输出、删 .in/.out、删 fclose
-
main 必须 int,最后 return 0;
-
交卷前 10 min 停笔,只执行“保分检查单”
六、延伸阅读
-
《2024 CSP-J/S 复赛防爆零指南》图文版
-
《CSP-JS 复赛避坑指南》文件夹示例
祝各位选手 2025 复赛 0 失误,RP++!

1566

被折叠的 条评论
为什么被折叠?



