我去考了两场2023CSP,
以下是我对其中CSP-J情况的记录,
J组
考前
我分到的考场是在华二紫竹分校,离我家特别远,那个鬼地方都在郊区了。
考试是8:30~12:00,又要求提前45分钟到,所以我起的特别早,6点钟就起床了。
路上是妈妈给我打了个车,送我去考场的,整个路上差不多就用了1小时,
我也没浪费,主要就是看了两个我自己用html写的文档:《做题技巧和教训》、《算法模板》。
然后下车的时候正好看完。
到了考场那里,门口全是人,在排队,应该是还没让进。
......(等待中)
终于让进了,我把准考证和身份证拿出来,门口保安确认了一下之后,放我进去了。
我原本以为准考证上写的“行政西楼”我会找不到,然后我一看,霍!这不就在这门口吗。
我进去之后,看见有分了两边:1~4号机房往右走,上二楼,其余机房往左走,就在1楼。
我上楼找到了自己的考场,有个老师在门口,说是让我们只带透明笔盒、身份证、准考证、水进去,草稿纸会发的,不能带。
我把不要的东西留在外面,让那个老师确认一下证件,就进去了,教室讲台上有个老师让我们签名签到。
我是31号机位,这个机房做的挺好的,每台电脑上都贴了机位编号,很快就找到了。
老师让我们检查一下键盘、鼠标等有没有问题,开考前不允许答题。
我看这里的机子还挺好的,上面除了Dev-C++还有其他的IDE,甚至还有Adobe全家桶,哈哈哈。
老师先把试题(即CSP-J.zip)的密码告诉我们,这个我记得,是CSP-J2023l!2。就解开了。
结果非常搞笑,题目的那个PDF(即CSP-J.pdf)还要密码,老师先没给我们,等到考试开始了,再给的我们,具体密码是啥我忘了,反正是个乱码。
考中
开始考试了,我第一个反应是先把linux开好,我自己也不知道为啥。
linux启动很快,密码是123456。这里的linux有一点好:虽然是虚拟机,但是界面很大,不像我家里自己装的那个那么小。
然后我把题目pdf打开,看第一题。
我一开始就觉得这个是个数学找规律题,但是由于第一次考,没习惯过考场噼里啪啦敲键盘的声音,被噪音干扰,愣是想不出来。
后来我干脆写了个用queue模拟的方法,大约估了个\(O(n^2)\)的时间复杂度,预计50分。
然后赶快看第二题。
我一看,这题简单,不就是贪心吗,只要后面的加油站收费比这个贵,就在这个加油站加好油,
写了一版代码,但连外面的样例都过不了,后来一看每次加完油之后开车,是会有剩下来的油的,所以之后可能没必要加那么多的油。
所以我把剩下的油算上了,外面的样例都过了,自己编了很多边角样例,也过了。
所以我觉得自己第二题应该能AC,就往后了。
根据往年经验,T3、T4的难度哪到简单还真讲不定,所以我两题都看了,一看第四题略复杂,第三题是模拟,就果断放弃T4,写T3。
然后写T3过程中,先写了第一版代码,有些bug,后来根据样例2这个大样例一点一点Debug,后来比对了我的输出和标准答案,感觉无误了。
在T3的Debug过程中,我积累了一个经验:C++的输出文件与标准答案的.ans文件可能会因为某种原因导致 实际上内容完全一模一样,但是文件大小不同(我的.out文件41KB,他的.ans文件37KB),非常有趣。
最后我除了T4空着,其他都写完了,时间也差不多了,我把这些代码放的桌面上的NOI_Share文件夹(即两个系统之间的共享文件夹),
在ubuntu的Code::Blocks里跑了一下,发现运行没有不通过,跑出来结果也都对的(我这步检查是因为linux中的编译器可能与Windows中的编译器有略微差别,需要检验一些细节)。
考后
考试结束了,老师让我们交卷,机房里用的是极域监控软件,这个我的学校里也用,所以我很熟悉。
老师说如果提交按钮是灰色,说明没连上教师机,要把代码什么的备份到D盘,然后重启电脑。(因为C盘每次都会重置,只有D盘的文件会被保留)
重启的时候,我看到了非常妙的地方,实际上这台电脑里也是有NOI ubuntu2.0的实体机系统的,因为有个界面上可以选,但是我怕出问题,照样选的是用Windows启动。
然后就是重启完了,提交按钮亮了,我点了一下,出来一个提交窗口,把选手文件夹拖进去,再点了一下提交,文件就飞到老师电脑上了。
提交完了之后,老师在她的电脑那里用投屏给我们一个一个看自己提交的东西,让我们确认无误后,一个一个签字。
签完字之后,我去拜访了一下厕所,觉得他们厕所的UI(User Interface用户界面)还挺好的。
接着离开了考点,中午去餐厅吃饭。