THUSC2023 游记 & THUWC2024 旅游记 & NOIWC 2024 游记

· · 生活·游记

NOI/THU/PKU WC 2024 游记集合贴

(注:Day 1 是比赛第一天)

THUSC 2023

Day -??

知道省选挂没了,同时才知道还有 thusc/pkusc 这个东西,pkusc 应该是不可能过审的,所以报了 thusc,听说 thusc 工程题挺好的。

Day -?

预测了一下,工程题应该只能是音频处理或者解释器?或者神经网络?

Day 0

第一次坐飞机!
早就预测要考解释器,今天又听大佬讨论可能是“手搓解释器”,但是还没有完整地写过一个解释器,所以中午就开始写未来程序改,一直写到晚上 11 点没写完。

又觉得为了准备 Day 1 应该看看 OI,然后按惯例看 tarjan,还看了 BSGS。

Day 1

一上来网就卡了,只看见 T2 名字很长,T1 大概看了一眼又觉得可能是看错了。

卡了 45 min,看 T1,这是《Air Cownditioning B》!想起来我初中只打过一次 USACO,当时老师不知道为什么阴差阳错地让我打这个 USACO, 但是我当时用 O(n^2) 暴力水过去了!当时题解也看不懂,也没记住结论。现在就是后悔 非常后悔。 然后开始写 O(n^2m) 暴力,然后想怎么优化,开始顺着我的那个想法想单调栈之类的东西,发现不太靠谱。
又看了 T2,看数据范围大概是网络流(刚学网络流比较激动)。
不如想一想 T1 正解,区间加考虑差分,一个加 1 一个减 1……所以是差分数组的正数和或负数和的绝对值。原来两分钟就推出来了。然后直接写线段树。

照这样别人 T1 肯定全切了,赶紧想 T2 怎么流,想各种状态设成点,想不出来,好像都不如暴力。

看 T3,先研究半天高精度库 只会暴力模拟,然后找周期优化一下。

T4,交互,不会,瞎写。

然后又回去看 T2,怎么流啊……还有大概不到半小时的时候,突然意识到其实是一个给 1\sim n 分段的问题,应该是 dp,然后分段的代价应该也是可以求的,但是知道写不完了,最后好像写了个最低的暴力。

出来准备好被吊打了,但其实(我们学校)大家都差不多是这个分。

晚上回去继续写未来程序改,显然没写完。

Day 2

一看是设计电路,开始后悔没做《旷野大计算》,然后比较混乱,看文档也看不全,时序逻辑看不懂。想先试用一下 simulator,运行给的样例,结果 simulator 报错了??看了几遍不知道什么问题,中间好像把 T1、T2 蒙上了,然后决定提 issue。提了 issue 知道竟然是因为 \r 问题,过了一会儿就重发了 simulator。

然后才算是正式开始做,遇到了经典的 16 的问题,卡了一个小时,最后 alu 都没写完,太菜了。

THUWC 2024

Day -?

NOIP 挂没了,报 thuwc/pkuwc,thu 竟然过了审核,pku 还是没过 tcl。
竟然要自己带电脑(我那个电脑时不时开机就是 initramfs 改用 Windows 电脑+WSL)。

Day0

没打板子

Day1

上来看 T1 好像限制有点多,好像不会。T2 期望,T3 交互(今年没有新的 THU 简称),T4 数据结构?

然后看见 T1 n\le 15 开始考虑状压,对 m 状压很简单但是对 n 好像不好状压,觉得好像除了 Sub4,5 都是能写的于是先开始写,Sub1 直接枚举,Sub2 dfs 枚举,可以知道合法的状态不多,Sub3 可以对 n 状压,然后好像突然知道正解了,相当于是用每个人覆盖 n 个任务,然后“所有同学完成该项任务收益的最大值”这个条件其实没有用了,然后就有了 90 的 O(3^nm) 做法,然后发现 m 那一维没有用,就 100 了。

那么别人 T1 肯定早就都过了。赶紧看 T2,感觉是组合计数,O(n^2) 应该比较好做,就是细节多,然后完全没考虑细节就写,毫无疑问过不了样例。

觉得不能一直留在 T2,就看 T3,交互不会,Sub1 手动打表,Sub2 二分,Sub3 只会每行二分,然后也不知道多少分就交了。

T4 想了半天只会最低的暴力。然后暴力写。

然后回去调 T2,把样例手动模拟,输出中间变量,还得写个程序把 \sout{\bmod 998244353} 的分数转成能看懂的分数,调半天发现是“x 最后在 y”当成是“x 和 y 交换”,然后改了过样例,m\le 10 的就暴力变换 10 次,交的时候发现有个 n\le 128 部分分,用矩阵优化,后面不会了。

T3 一直觉得四分应该比二分更有道理,然后写四分,结果交上去直接 Sub3 一分没有了,又改成原来的二分,加了一点点优化但是一点用都没有。

T4 还是不会。

Day2

看见提交是 zip 就觉得不太对。
又看见总提交次数 10 次,?

下载下来文件,make,?我的 WSL 没有 make?赶紧开虚拟机。

看见 t1 文档是对抗搜索,想到了写挂的过河卒, 然后开始写,但是胜率非常低,本来想用 judge.cpp 中的 MachineWin 和 UserWin 之类的判断胜负但是好像不对?然后还是自己写估价函数。

胜率一直都很低,一直调到对 2.so 能赢,然后发现 4.so 好像非常强,比 6.so,8.so 之类的都强。

一直怀疑 t2 会不会还有一个文档, 然后 t1 到了 60 以后才看见 t2 没有文档。

离谱的是这时候我搜索深度越深胜率越低,似乎深度为 5 最好,觉得应该还是 check 写挂了,但是又看不出来哪挂了。这样剪枝也没有用了。

大概在 11:40 用完了所有提交次数,最后一次 t3 50\rightarrow 60,,感觉交到其他题应该还能再多点但是没机会了,剩下时间在虚拟机里看各种命令的帮助、vimtutor。

出来听同学说 1 和 2 容易看反,我想“幸亏我看了注释没看反”(埋下伏笔)

\huge\text{下午,知道原来我上午真的把 1 和 2 看反了。}

赛时代码(更正:这里的 Day2 是给的板子,不是我的代码)

NOIWC 2024

太菜了

Day4

T1 竟然不会(或者说认为不会),太菜了。
T2 枚举四分点不如随机化,太菜了。

文艺汇演十分好看,唱的歌都很让人感动