返回

随笔杂谈 | YIIC2024 游记

前言

实际上已经半 AFO 三个月了,再来参加这场比赛也没什么好说的,尽力而为吧,也无需过于在意。

这段时间洛谷上做题寥寥无几,只有偶尔会出一些题,比方说给学校高一集训出题和组题,或是给区里的竞赛(貌似是给初中生考的?)供题。

更多的还是回到 whk 上了。

初赛

初赛还是比较简单的,就不细讲了,补全代码都很好懂,不过阅读题有一篇只看出来树上背包,不知道合并的什么玩意儿,另外单选貌似也有选错的。

最后出分虽然是机房第一,但还是比我预想的八九十分要低一点点。另外这次高一学弟也晋级了三个,也有几个差了一点点,相比往年我们学校的情况感觉好多,但相比这届竞赛班人数又感觉有点少。

喜提一个市1=,虽然感觉作用不大。

复赛

总的来说,抛开题目不看,这次复赛是所有比赛中最舒服的一次。不管是比赛场地、设备、比赛系统、IDE、赛时安排之类的,都是体验最好的一次。

day -3

整理了一下官网给出的考试范围和对应的模版题。居然有网络流?而且复杂树和复杂图论里面也不知道有什么…数据结构也没说清楚。

这一天光整理题单去了,好像没做题。

day -2

敲了一些图论板子,只剩下欧拉回路和联通性相关的那些没敲了。

day -1

花了好多时间把三种联通分量和对应缩点、割点割边都重新复习和理解了一遍。也许我第一次学的时候没有理解清楚,一直有点模糊,这次终于区分清楚了。然后欧拉回路也重新理解了一遍。

发现这次重写模板题,又多了好几个优化代码减少码长的地方,学 OI 两年了技术也就这样,倒是压行和偷懒越来越会了。

网络流应该不考?不看了。数据结构还挺熟练的,不看了。字符串大纲说只考基础,不看了。

day 0

赛前

因为这天本来学校需要补高考假,所以是从学校出发。考点在广州的广技师,从深圳过去需要大概两个小时。

六点起床,大概 6:20 左右一边吃着面包一边赶到了门口。高一有两个学弟没在线请假,校门口刷脸没有开门权限,走人工通道要打电话跟教练确认,搞了有一会。高二另一位同学(之前一起打 THUPC 和省选的)不知道是起晚了还是怎么,来的有点晚,打电话催了一会。六点半多一点出发了。

洛谷运势大凶。在车上看一些骗分和防挂分的博客。

到了考场之后以为不用着急进去,上个厕所回来发现人都进去了,有人提醒我们这场比赛需要签到和登录?于是赶紧进考场了。

进来发现比赛场地环境好舒服,签完到之后找到自己座位坐下,发现比赛设备居然是笔记本电脑,而且提供的 IDE 除了常见的 devC 和 VSCode 以外居然还有小熊猫!震惊。听说要登录,不知所措,遂举手询问工作人员,原来要打开桌面某个程序登录。发现居然是 java 写的,会定时发卷和自动同步文件,我去这也太牛了。

发现周围的同学可以动电脑,遂启动小熊猫开始配置,调了一下编译选项和缺省模版之类的。在桌面上发现了样例文件夹,打开来看了一眼,发现输入都好少,而且看起来没有图论和数据结构题,啊?

看大屏幕系统终端发现有同学已经同步了四题的 cpp,于是我也先把样例复制到考试文件夹,然后把四题的源代码文件和文操先弄好了。

赛时

开考前一分钟发现已经发卷了,遂打开看题面。

啊?七选五…我开的是英语卷子?

看了一会发现这不就是错排列 plus,应该可以一样的去推,遂推柿子。桌面空间有点小,草稿纸写起来不舒服,以及只给了一个小样例,离谱。

按错排列的思路推了半天发现行不通,因为递推到 $n+1$ 的时候不知道对应正确答案是否被前面选过,好像加一个状态也不行,加限制也不太行。

没什么思路,跑去看一眼其他题…发现都好难的样子,然后火速回来。推了一个 $O(n^2)$ 的式子,感觉没问题,把里面的组合数展开然后消了一下阶乘,发现如果换一个主元的话就可以把分母提出来,这样只需要算一次逆元,遂推推推。

1h 过去,推到后面想出了一个基于错排列的 $O(n)$ 式子,刚写一部分就发现不对,然后再回去看原来的式子发现也不对。遂难绷,1.5h 打完暴力,测了几个错排列的样例没问题就过了。

开 B,一开始感觉要拆位后面发现不太对。想了一会之后认定操作二是没用的,因为或运算只会把 $0$ 变成 $1$,而与运算需要的是 $0$,异或运算需要的是相同。首先显然可以异或自己,也可以把数字的任意 $0$ 取出变成 $1$ 其他变成 $0$,这样一做与运算也可以一次性变成零。然后想错了,误以为先异或任意数字再与上同一个数字一定会清零,所以发现只需要找到每个函数的最小值或零点去尝试即可。所以答案只可能是 $\min{x,f_i(x),k,f_i(k),2min,2f_i(min)}$,读入每个函数的时候检验一下就好了。

后来发现不对,先异或再与也不一定会变成零。但是发现答案不超过 $2$,因为要么直接与 $1$ 可以变成 $0$,要么先异或再与也可以变成 $0$,因此答案最大为 $2$,所以只需要考虑一下什么情况可能会取到更小的答案就好了。

如果函数 $\Delta\ge0$,那么最小值才有可能可以取到 $0$,否则由于 $a,b,c$ 都是整数,所以该函数的每个整数坐标点都是经过格点的,那么就最低会取到 $1$。

所以这里继续猜测,答案只会从取最小值和取 $1$ 中选?于是火速开写,过掉了所有样例,但是没有任何证明,也没有对拍。但是只有十多分钟了,后面的暴力有些紧张。

火速看完 C 然后开码暴力,谢谢你 next permutation

最后五分钟开 D,读题好像是 KMP,坏了,暴力都写不出来。虽然可以暴力真的拼好之后用 find 计数,不过来不及了,遂输出样例跑路。

最后一分钟检查了一下四份代码,遗憾退场。

赛后

发现大家都考的挺炸裂,不过高一成绩都比我想的要好吗,感觉他们其实剩下打满暴力的话分应该比我高。

赛后在校门口找了一家沙县小吃吃了午饭,然后想了一下发现 D 是不是跑两次 KMP 就可以了。然而给的考试范围里面没提会有字符串高级算法,所以没复习 KMP,虽然原理很理解,但细节不太熟悉,感觉就算时间充裕也没办法裸写出来,就是有点可惜暴力分,无所谓了。

ABC 出场后也没有思路,C 的话具体应该要看给的那个函数来贪心或者 dp?

洛谷的大凶说的确实没错,可恶。

后日谈

  • 2024/06/16:哈哈。
  • 2024/07/07:120 分,喜提 2=。

附录

参考文献

版权信息

本文原载于 reincarnatey.net,遵循 CC BY-NC-SA 4.0 协议,复制请保留原文出处。

本博客所有内容无特殊标注均为失迹原创内容,复制请保留原文出处。
Built with Hugo
Theme Stack designed by Jimmy, mod by Korita
© Licensed Under CC BY-NC-SA 4.0