CSP-J游记

abc1234shi

2024-11-02 22:00:57

Life & Travel

考前

下午六点,拿着沉重的行李从学校回到家。

晚上七点,吃完饭,看动漫放松了一下,开始突击明天的CSP-J。

晚上十一点,睡觉,躺在床上冥想了十分钟,心中非常激动,这是我第一次参加信奥的大型比赛,这不仅是对我半年来学习成果的检测,更是一次证明自己的机会。

考中

早上六点就起床了,继续突击CSP-J,刷了一下往年的 J 组的题目,大多第二题都只能拿到部分分。

七点半吃完饭出发去考场,心中的激动、兴奋无以言表。

备考时间段,站在楼上往下眺望,心中紧张感难以平复。突然发现信息老师就是隔壁考场的监考老师...

站在楼梯口等待同学,惊奇的发现我们班尽然有 3 个同学,可是却刚好分布在同一楼层的 4 个考场。不知道是故意的还是有意的。

进入考场,一阵凉意迎面,发现头上开了 16 度的空调...

等待了几分钟后到了八点半,拿到了题目,第一次使用密码打开文件。

拿到题 A,首先想到的就是 set 集合和离散化,因为 set 集合我不常用,就用了离散化,结果离散化调了半小时没调出来,于是改变思想将 A 转化为 1J 转换为 11Q 转换为 12k 转换为 13(虽然还是类似离散化)。一堆分支结构打了 92 行代码,下载文件想测样例结果一直打不开,我心态直接崩了,后面老师来调了 5 分钟,调完样例,老是少 1。仔细阅读题目,发现题目太坑了,原来 T 表示 10(谁家好人这样表示啊),更改过后过了样例,但一看时间已过 45 分钟,真是天崩开局啊,心里突然很慌。

题 B,按题目模拟即可,分 d=03 四种情况讨论,判断再走一步是否超出格子或是障碍物,如果是障碍物或超出格子就转向,否则就走(本来刚开始是按题目的变量 x_0x_1 的,发现好像有坑,及时更改了)。再判断是否走过,如果没走过就将答案 +1。我使用了 vis 数组来记录,一看时间复杂度都到 10^8 了,就以空间换时间,开了 5vis 数组(就不用清空浪费时间了),也是直接打了 75 行代码,一看时间,又过半小时,此时感觉有点饿,把同学送的巧克力吃掉了。

题 C 没思路,看特殊性质,特殊性质A,最小的位数一定最小,而 8 的笔画最多,所以尽量让 8 越多越好。n 又是 8 的笔画的倍数,所以输出 \frac{n}{7}8 即可。特殊性质B,和特殊性质A基本相同,只要将第一个 8 改为输出 10\frac{n}{7}-18 即可。再看前两个测试点,n≤50,直接暴力枚举,80 分就有了(发现 35 行代码就拿下 80 分,不禁心中一震,太赚了)。

3280 分,我暗喜省一稳了,抱着兴奋的心态,看向了题 D。

题 D 凝视了 5 分钟,完全不会,发现时间只剩 20 分钟了,直接 10 随机数代码,希望能骗到 5 分。

剩下的时间就一直是否出现爆零:文件输入输出、存储是否正确、准考证号是否输错之类的(但好像有些因为习惯问题没检查出来)。

考后

考完后意气风发的走出考场,因为S组差几分没进复赛,所以无试一身轻。信誓旦旦的估分 280 分。

回家一交,结果题 C 编译失败了,我又疑惑又慌张,发现题 C 数组为了防止数组越界,就习惯性将最后一个元素打的是 1e9(之前这样设变量没问题),直接就编译失败了,最后感觉只能 200 分了,本来是想拿省一的,可是与省一无缘了,决定明年再战。

感觉今年的题比去年简单,去年的我才拿 75 分,我每次考试前做模拟都会感觉题很难,但考试是又感觉题不难。