目录
文档目的
本文档针对目标是第一次参加 CSP 复赛的同学,主要内容是包括 CSP 复赛提交要求和需要特别注意的地方。由于各省的要求会略微有所不同,本文档主要是依据浙江省的要求写的。
CSP复赛说明
特别说明
本说明暂时只能针对浙江省,据说各省在提交上要求会有些区别。有任何疑问请务必详细咨询监考老师。
考卷
下面是 2018 年普及组复赛的文档,请务必注意红色部分。
图1 2018年NOIP普及组复赛
考试要求
在这个文档中,我们可以看到,规定了如下几个:
1、每个题目的名字。
2、必须使用英文小写。
3、main()的类型必须是int。
4、main()的返回值必须是0。
其中,第3和第4条一般99%的人不会出错。比较容易出错的是第1条和第2条,必须严格按照规定。
额外说明:浙江省以前都是windows+devc++,所以可以不看说明中关于NoiLinux部分。
一般来说,浙江省提交的代码会在D盘。假设您的考号为zj01234,考试语言为C++。一般情况下,已经在d盘建立好了zj01234这个子目录。开始情况如下图所示。
根据考试要求,建立4个子目录,子目录的名字参考图1 NOIP 2018年普及组复赛,分别为title、fight、bus、tree。注意全部都是小写。这样目录结构如下图所示。
第一题title的题解文件名为title.cpp,注意全部都是小写。放在对应的d:/zj01234/title目录下。如下图所示。
第二题fight的题解文件名为fight.cpp,注意全部都是小写。放在对应的d:/zj01234/fight目录下。如下图所示。
第三题bus的题解文件名为bus.cpp,注意全部都是小写。放在对应的d:/zj01234/bus目录下。如下图所示。
第四题tree的题解文件名为tree.cpp,注意全部都是小写。放在对应的d:/zj01234/tree目录下。如下图所示。
特别注意的地方
1、比如第一题目录规定为title,你变成Title,如下图所示。
本题就是零分。
2、比如第一题规定的提交文件为title.cpp,你写成Title.cpp。本题就是零分。
3、比如第一题规定的提交文件为title.cpp,要求放在对应的目录,正确位置为d:/zj01234/title/title.cpp,而你放到了其他地方,如d:/zj01234/bus/title.cpp。本题零分。
4、如果有任何疑问,可以直接咨询监考老师。一定要咨询监考老师。
5、和平时OJ练习中最大的不同是,所有题解文件中,都必须使用freopen。用于打开对应的in文件(数据测试文件)和生成out文件(题解文件)。如果题解文件中,没有使用freopen。本题也一定是零分。注意OJ提交的时候,不需要使用freopen重定向。
6、使用freopen()函数的时候,平时使用C++的同学,请务必包含 cstdio 这个头文件,即#include <cstdio>。
7、请务必仔细阅读每个题目,时间是肯定够的。尤其要仔细推敲“数据规模与约定”这个部分。
8、先做有把我的题目,没有把握的最后。也就是先拿能得到的分数。比如有些题目解出部分数据集,也是能拿到部分分数的。
9、复赛无法进行实时测试。CCF只是提供了部分测试数据,需要选手自己构造各种测试数据,对自己的代码正确性进行评估。我们称为对拍。
10、复赛所谓的提交,就是在指定的位置,将对应的cpp文件保存在这里即可。
11、关于万能头。可以使用万能头,即#include <bits/stdc++.h>
CSP 复赛样例
数据规模
下面我们用2018年的第一题title做个简单分析。
从数据规模与约定中可以看到,本题数据长度就是1 ~ 5个字符。
本题的坑点在于,数据中有包含空格。
零分代码
参考代码
如果你按照上面的代码提交,恭喜你,你将拿到零分。
AC代码
以下才是满分的代码。