2023 年 10 月记事板

29 日

这个记事板放了两个多月没用,正好今天机试结束了,也不足以写篇新博文,不妨就以此为契机,开始写这个记事板吧。

这次机试可以说是有惊无险,还算是圆满地完成了。两点半开考,三点四十五左右完成离开。

一开始路上想着挺久没喝水了,还是回去接一下水吧,回去路上才猛地想到我没带校卡和笔。

两点进考场,大多数人已经就坐了。我刚坐下去打开 CLion,所有电脑就自动重启了。

然后我就按计划配置了一些东西:

  1. 开启 IdeaVim,并写了点映射,不过有几个我记不清了就没写。
  2. 调了一下主题,用了 IntelliJ Light Theme,毕竟也不能装插件,选一个还行的。不过蛮奇怪的是,VSCode 和 Vim 我都用的是 Dark 主题,但 JetBrains 我却感觉 Light 主题更舒服,当然都是 Gruvbox 主题。
  3. 调了一下字体,也许是因为我近视比较严重,只是把字体大小调大了一号,主要是把整个界面放大了。
  4. 打开了一些可能会用到的库的 reference,如 math.h string.hctype.h(后两个是一块的),事实证明根本没用到。
  5. 也把 Edge 缩放调大了。字体看来是没装 JetBrains Mono,也就罢了。
  6. 打开了现代方法,翻到 45 页准备随时查阅格式化字符串信息。然而打开数次都发现莫名其妙地关闭了。然后一次弹出更新,更新后照旧。我简单复习了一下就不管了。
  7. 每个文件先 int 了两个变量 nm,并且 scanf,结果也是没撞对。

看样子我是准备充分啊,我也就踌躇满志开始答题。

第一题翻转字符串并反转大小写。确实简单,我想着两分钟结束战斗快速前往下一题。

快速写完后我测试了一下,输出有点诡异,有点慌了,我就安慰着自己也许是本地环境的问题,毕竟这么简单一个题,不太可能写错。

然后我就 ggyG,然后 Ctrl + V,没能粘贴!我立刻意识到我没配置,剪贴板没互通!不过我也不记得怎么配置了,于是打开 VSCode 进行复制。

结果交到 OJ,果不其然地错了。

此时我就有点慌了,想着还是先看一下第二题吧。

第二题就是一个井字棋的升级版来判断输赢。

提示非常友好,还告诉了可以使用按位与 &,我就开始写了。

分别进行行和列的判断,原本是应该抽离解构成一个函数比较好的,不过我也顾不及这么多,直接复制粘贴。

搞完后发现结果不对,全是平局。再一看还要判断对角线。

我感觉对角线判断有点麻烦,就再跳了一下去看第三题。第三题是那个约瑟夫环问题升级版。简单输入了一下数据,感觉还是先把前面做了吧。

就写了四个对角线判断,行起正对角线,列起正对角线,行起反对角线,列起反对角线。然后测试,还是不对。

心态有点小爆炸,感觉可能要寄了。期间还多次检查第一题,还是没发现问题。测试了一下,小写字母可以正常转换,大写和数字都不行。

也许是终于睡醒了,发现我居然 ** 把

if ('a' <= str[i] && str[i] <= 'z')

写成了

if ('a' <= str[i] <= 'z')

原本在群里看到有人犯这样的低级错误还不屑一顾,现在看来我自己才是小丑。

然后赶紧改了 AC,估计我是第一题最后一个 AC 的了。

然后后面写第二题灵光也来了,终于发现哪里不对劲了——我把处理的几个格子和分析起点弄混淆了,改正了错误,还把对角线缩减为正对角线和反对角线的判断,成功 AC。

然后就去攻坚第三题。

我记得之前第三题好像用了模运算,其实我对模运算相当不熟悉。

而这次升级版每个狐狸有多条命(尾巴),我也就用数组存储了每个狐狸的尾巴数,然后一直杀到只剩一个尾巴,也即如果只有一只狐狸有多条尾巴,还是继续杀,还好没问我轮数,不然还得改。

这道题也没啥好说的了,面向样例编程,改改改,弄了个双重 while。最后总算 AC 了。

看了下榜,第一果然是 lrx 大佬。不过我也不知道为啥我没细看就离开了,我连自己排名都不知道。

期间其实还遇到过别的问题,如 , 用不了,因为我忘了,没去映射;vim-surround Visual 模式下用不了,因为我没映射,好在 yi) 什么的还是用的了。

还有个细节,我不记得了,就是写完某行,好像是写错了,我自嘲我以为我自己在写 Python(前面那个估计也是 Python 给我的记忆)。

还有就是分号老是忘记写。

其它应该就没什么了。

能看榜了,我只记得是两位数排名,居然有 21 名。满分的 100 人,我一开始觉得挺少的,不过算一下比例有 12%,也挺高了。

第一题 14:35 交了第一次,15:11 交了第二次;第二题 15:05 交了第一次,15:18 交了第二次,15:21 交了第三次;第三题 15:43 交了唯一一次。

没过的都是样例都没过。

我看了看前面的提交,确实没看到有比我晚交第一题的。不过我是没想到还有人零分,而且 AC 的还有人是用 switch-caseif-else 写的,着实有点吃惊。