CSP-S 2022 初赛游记
前言
老年退役菜鸡回来再打一年的 NOIP。
最近偶尔也会来下机房,不过完全没复习初赛。一来是觉得最近不太考计算机常识,二来是觉得初赛什么的过了就好,没必要花大量精力去为了那几分。
周三打了一下 jiangtaizhe001 的初赛模拟赛,成功为他翻出了巨量的锅 /kx
中午到机房看了下 J 组的题目,有点小慌,感觉阅读程序题的鹰蛋问题非常陌生,牛顿迭代也不一定能看出来。但转念一想这种焦虑感或许是因为没有实际去做而是纯口胡的缘故,毕竟如果真是在比赛时,即便看不出鹰蛋问题、牛顿迭代,纯粹按题意模拟其实应该也能做出来。
赛时
被安排坐在大门口。
刚开始就是两道 Linux 题,一开始还被“切换工作目录”这个描述整懵了一小会儿,不过还算挺快反应过来了。
第五题看了有点懵,因为我其实从来没写过基数排序,只是有点知道原理。想想大概和桶排差不多(伏笔),于是暂且选了个 A。还有这宇宙射线是什么鬼啊。
第八题第一反应就是选 A 因为觉得可能有一个点的图,B,C 一开始一眼扫过去居然没看出问题,然后发现 D 选项和 A 选项是完全等价的,回头才发现 B 选项原来是错的。感谢出题人 /kx
第九题挺简单,但感觉 \(n=1,2\) 时有问题,不过或许题目是默认了这是简单无向图,自带一个 \(n\ge 3\) 的限制?
第十题一眼 \(7\times5\times3\times1=105\),结果发现没这个选项,不太能理解。然后仔细分析了一波选项,其中最大的选项 \(64=8\times 8\),所以合理推测出题人的意思是选出两个人组成一队,而且注意到有 \(28=\frac{7\times 8}2\) 这个答案以及 \(56=7\times 8\) 这样一个干扰项,再一次印证了我的猜测,于是得出结论只是出题人语文不太行。话说这种期末大作业真的只需要两个人完成,而不应该每个人都做吗?
第十一题出题人似乎忘了按照常识车牌号中不可能有 O
和 I
,但并没有这个答案,所以没啥好纠结的。话说“车牌号中没有 OI
”是否在暗示着什么?
第十三题初始条件居然是 j=0
,第一反应是出题人在挖坑,结果发现并没有死循环这个答案,所以觉得多半是又出锅了,直接选了 \(O(n\log n)\)。
阅读程序第一题虽然能看懂,但要数 j++
的运行次数还是只会模拟,真麻烦。
阅读程序第二题的第一道判断题明确告诉了我们这是一个排序算法,仔细看了一下这居然就是我从未写过的基数排序!出题人真良心?
理解了一下它的工作原理再回去看第五题,觉得如果在第一遍统计个数后再修改了某个元素,可能会出现一种值的元素多一个、另一种值的元素缺一个的情况,多的那个不会影响相对顺序(除了被修改的元素,但它最终是会被删掉的),缺的那个相当于引入了一个扰乱,所以最终的序列可能存在一个扰乱,于是改成了选 B。
回来对着阅读程序第二题第三道判断题犹豫了一下,不太确定 \(m\) 这种量能否出现在复杂度的表达式中,但最终还是选了对。
阅读程序第三题看起来像是进制转换,但又非常诡异。对着第三道判断题思考了一下,想到 \(n\) 可能为负数那么 \(\log_k n\) 就挂了,然后发现题目中给出的就是 \(\log_k|n|\)......不确定有没有问题就先跳了。结果玩了下下面的几道选择题发现里面就给出了上面那道判断题的反例,也是无语了。
完善程序倒是挺简单的,特别最后一题简直离谱,四道题目全在考同一个点,而且旁边代码中的 go
还贴心地给出了答案,是真的没题出了吗。
赛后
经典,每年总会挂在一些奇奇怪怪的地方上。
第五题似乎大家答案都是 A,感觉还是不太明白,不知道是不是理解问题,蹲一手官方答案。
阅读程序第二题的第三题也挂了,当时看到桶排就无脑选上去了,结果今天才知道桶排和计数排序不一样,而且考试的时候不知道为什么完全没看到有计数排序这个选项 /kx
阅读程序第三题的判断题挂得比较惨烈。考试时明明在第三道题上自己想到了存在 \(n\) 为负数的情况,结果却忘记了第一道题也会因为 \(n\) 为负数挂掉。第三题这个 \(O\) 当时因为有个 \(+1\) 被我完全忽略掉了 /kx
其余题不知道还有没有错,至少目前和民间答案是一样的。
总结:我不会基数排序,以及我就是个瞎子。