作者:云斗官方教研团队 yummy 老师


一年一度的 CSP 即将来临,对于很多同学而言这是自己第一次参加官方的上机考试。然而,每年总会有一些选手因为细节上的疏忽丢掉了宝贵的分数甚至无法成功完成认证,在此 yummy 有几点想和大家再强调一下。

编译选项

今年的 CSP 认证仍然会采用 C++14 标准,并且启用 O2 优化。

有的同学可能觉得,自己平时只会使用 C++98 就有的语法,所以哪怕不会开启 C++14 标准,也不会有任何影响。然而,每年总有同学使用了 C++14 的新关键字或新的 STL 等等,导致 CE(compile error,编译错误)的悲剧。可见,如果会使用 C++14 标准编译可以给自己一颗定心丸。

学会开启编译选项,有时还可以方便自己调试,或者帮助找出程序的部分问题。


对于大部分 IDE,设置编译选项的流程如下;

  • 在菜单顶部找到“工具”或者“选项”(或 Tools, Options, Settings 之类)。
  • 在下拉框中找到“编译器”(Compiler)。
  • 勾选”在编译时加入下列选项:“,然后在随后的方框内填入自己的编译选项。

编译命令有很多,下面是一些常用的命令:

  • -std=c++14,用 C++14 标准编译。
    • 同理有 -std=c++17 之类,但是如果你的 IDE 没有 C++17 对应的编译器则命令无效。
  • -O2,开启 O2 优化。
  • -Wall,开启全部警告;-Wshadow,开启变量重名警告,等等。
  • -Wl,--stack=xxxx,将栈空间限制设置为 xxxx(例如 100000000),这在有较深的递归时很常用。
    • 一般推荐是一个大数,但是如果设置成太大,递归出问题时可以把电脑搞崩。

文件相关

CSP 认证时,你的程序存放位置必须正确。

在开考前,一般电脑上会有一个考生须知,**请仔细阅读关于选手程序存放位置的说明,各个考点不尽相同。**例如,浙江省前几年的 CSP 与 NOIP 要求选手的文件夹存在 D 盘,但是去年在杭师大要求存在 E 盘,还有的省份则还没有自动收集文件的设计,所以目录结构也有差别。

另一方面,你的文件夹名称、源文件、输入输出文件名称必须正确。

抄写题目英文名时,下面是一些常见的拼写错误:

  • 因为单词本身不常见而拼错,如 centroidbracketpartition 等。
  • 美式拼法和英式拼法的差别,如 color/colour 等。
  • 单复数、缩写的问题,如 permutation(s)(题目有 s 你就有 s,题目没 s 你就没 s)。

yummy 建议,哪怕这个单词很简单,也不要盲目自信,应复制粘贴,或者写完逐个字母对过去。

另外,考试快结束时请检查自己的 freopen 语句,是否仍然是某个大样例的文件名,或者是否还被注释了。

时间分配

CSP 和 ICPC 系列赛事不同,每道题完成时间不影响你的成绩,因此建议把所有题目都先看一遍,然后预估一个完成时间。因为 CSP 相对重视基础,思维含量不高,所以估计不会有太大偏差。

不必每道题都追求满分。 例如去年第 4 题,假如你看出来了这道题是一个倍增维护到达离祖先 条边的代价,但是自己认为时间不够(需要多少时间,根据自己的水平和擅长方向估计),那么你就应该舍弃倍增转而采用暴力,也可以获得不少的分数;但是如果你指望着在考场上突破奇迹,一般下场都不好。

留 5 分钟检查程序。 要检查的内容包括但不限于:

  • 是否写了正确的文件输入输出。
  • 是否删除了多余的调试输出和 assert 等。
  • 如果为了方便调试修改了一些常数,记得调回来。

心态调整

在比赛过程中,或多或少地会出现一些意外,如何应对它们是很重要的事情。

当你程序调不出来时:

  • 如果自己预估花在这题的时间快到了,先放一放,拿其他分数。
  • 可以上个厕所冷静一下——比起几分钟的损失,心态崩了影响更大。
  • 检查不是核心的部分。例如有较长的推式子的话,错误很可能其实不在推式子上——它在整个程序中的占比往往不大。或者一个 DP 题,可能预处理的时候就已经出错了,只是恰好小样例没查出来而已。
    • 我 2021 年 NOIP 第三题写了个 sort(a+1,a+n)(忘记前面 已经减掉了 ),然而样例中的差分数组恰好为 确实是最大的数,所以直到考试结束都没有找出来这个问题。考后拿到代码两分钟就找到了问题,修改后就从 ​18 分变成了预期的 88​ 分。

同时,外部环境也可能不符合预期。

  • 如果压缩包、题目打不开,一方面可以求助于监考老师,另一方面可以尝试用别的压缩软件解压。去年我们考场就是同一个 PDF 和密码,福昕阅读器打不开,360 浏览器打得开。
  • 最后,CSP 通常不会影响你接下来的旅途,你如果什么方向的题不会,接下来一个月花点时间练就行。

0 comments

No comments so far...