以梦为马,不负韶华——CSP2019考前提醒

览遍千秋

2019-11-14 23:40:50

Life & Travel

江苏技术环境改动较大,本文已不具有参考意义。

-1 2020年更新:江苏省特派员、技术、专家与各地市领队、指导教师会议精神(CSP)

提供 NOI Linux 虚拟机与 Windows 平台,Windows 下提供 Dev-C++ 4.8 版本。

D:\submit 与虚拟机为共享文件夹, D 盘不还原。

选手需在 submit 文件夹下建立选手文件夹,命名规则:机位号准考证号,比如本人的:5C-025JS-00263. 选手源文件直接存放在该文件夹的根目录下,不得建立子文件夹。

竞赛结束前 10 分钟,根据主监考指令,核对源文件文件名、输入输出文件名,记录源文件字节数。

竞赛结束时,根据主监考指令,全体起立并背对机器站立,等待程序自动回收,回收完成后,依次签字确认。

待签字环节结束后,在各市群内有 10-15 分钟确认程序没丢的时间,如果该时间段内特派员未收到来自各市领队的异议,将提交 CCF。

由于某种原因,南京航空航天大学食堂不对选手开放,选手进入南航需要刷身份证,提高组选手在 12:30 后方可进入学校。

零·写在前面

作者是一个江苏高一萌新,初中参加过三次普及组复赛,还是略有一些经验的。

将三年的经验与教训写在这里,仅供大家参考,有不同想法的地方可以再交流商讨。

本文主要针对的是普通选手,不是国集选手这样的神仙。

壹·必须学会的一些 \mathrm{Linux} 操作

这就必须要说到笔者 \mathrm{NOIP2016} 复赛了,在 \mathrm{NOIP2016} 时,笔者初一,由于一些玄学的系统差异问题,导致了笔者4个编译错误,从260->0.

江苏省一直是提供 Windows 作为主系统,在 Windows 下为选手提供 NOI Linux 虚拟机。

以下是一些终端常用命令:

l 显示当前所在目录下的文件和子目录

cd xxx 切换到当前目录下 xxx 子目录

cd .. 返回上级目录,注意 cd.. 之间有个空格

g++ -o test test.cpp -lm 试卷中提供的编译命令,但是建议加上 -Wall 选项,以显示全部警告信息:g++ -o test test.cpp -lm -Wall

./test 运行程序

建议提供了Windows环境的省份的同学,在Windows下编程,到Linux下编译和测样例,在Linux下编译前,一定要先做好备份,否则一旦输错编译命令,可能造成不可逆后果,如丢失源代码。

upd-2020-11-5 更新了两张图片

贰·时间分配与心态调试

开场前先提前调整好分辨率、编译器字体字号到习惯的程度。打一个 A+B problem 确认 IDE 没有问题。

众所周知,\mathrm{NOIP2018} PJT3摆渡车是一个比较难的题目。(神仙别D我),但是 T4对称二叉树拿分则比较容易,此时一定要根据自己的实际情况,分配这两题的时间。

仔细读题,理解提议后方可写题。前两题一定要仔细阅读题面,不要错过细节。合理使用草稿纸

心态调试方面,主要是对于提高组选手。

由于作者是第一次参加提高组,没有什么经验,但是从往届学长的总结来看,\mathrm{Day1} 考完之后就当自己 AK 了,千万不要去想自己有没有可能挂分。

对于后面的题目,无论怎么样先去完成部分分,完成尽可能多的子任务。然后再考虑满分解法。

不建议在考完全部之前测任何民间数据进行估分

而当 \mathrm{Day1} 遇到像 \mathrm{NOIP2016-Day1} 一样毒瘤的卷子的时候,不要慌张,发现T2明显不可做(明示如何判断部分分类的时候),一定求稳,先拿稳部分分。

最好学习一下 namespace\mathrm{Subtask} 写法。

考场上如果没思路,建议多往厕所跑跑,厕所是一个很奇怪的地方,时常能在厕所获得灵感(雾)

叁·一些注意点

身份证身份证身份证!

准考证准考证准考证!

吃好早餐,少喝点水。可以带水进去。

int*int乘法强转 long long

不要开太大的数组,小心MLE(可以提前计算)。

减少不必要的优化,以降低思维难度、减少代码量和出错为目标。

next,x0,x1,y0,y1,index 别作变量名!

long long%lld

注意longlong级别的inf要开0x3f3f3f3f3f3f3f3fll

longlong级别状压左移写1ll

遇到字符串尽可能到 Linux 测样例!

比赛结束前10分钟就放弃治疗吧,别希望能绝杀。再三检查有没有去掉调试语句、是否能通过编译,文件输入输出是否正确,文件名和建立文件夹是否正确。

别踢电源线!

不会的时候大胆写暴力,random_shuffle 碾压标算,有时一些不起眼的小优化可能会使分数暴涨。

肆·对拍

为了防止挂分,建议对拍,即用暴力和要提交的程序进行互相检测。

建议不会写数据生成器的同学恶补一下。

这里提供一种用 C++ 写的 Windows 对拍脚本,可以参考一下。

其中 data.exe是数据生成器,std.exe是暴力,test.exe是要测的程序。

test.out 是要测的程序的输出文件,test.ans是暴力的输出文件。

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;

int cas;

int main(){
    while(1){
        ++cas;Sleep(50);
        system("data.exe");
        system("std.exe");
        syetem("test.exe");
        printf("-----------Test Case %d----------\n",cas);
        if(system("fc test.out test.ans")) system("pause");
    }
}

祝大家 rp++

附赠 Vim 配置文件

set nu
" set mu
set ruler

color torte

set tabstop=4
set shiftwidth=4
set autoindent
set cindent
set mouse=a

inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {<CR>}<ESC>O