THUWC2020 游记

THUWC2020 游记

今年 thuwc 为啥那么早啊。

以下的 Day0 指 2019.12.20。

Day0

前一天晚上 9:40 从淮安上的火车,大概早上 8:00 左右到的。结果坐地铁坐反了 10:00 才到宾馆。

然后下午一直在宾馆睡觉,一直到四点多钟出去转了转。本来想去圆明园的,但是寻思着考试前一天玩那么大不太好,就混进 thu 转了转。为啥感觉 thu 情侣遍地啊

晚上回家熟悉了一下 ubuntu 下 vscode 的环境,简单写了个比较短的题,然后就睡觉了。

Day1

早上去报到,到处找 JS 的牌子,然后发现被一堆胸牌的带子挡住了。看上去我是 JS 第二个报到的?(可惜水平大概是 JS 倒数第一)

然后去试机。怎么是 xfce 桌面啊,怎么 Ctrl+Alt+T 都不能用啊,怎么什么快捷键都没有啊。(没有过 xfce,不会设置

看了看试机题,T1 想了想感觉是个签到题就签了一下,中间还 WA 了几次,丢脸。

T2 想了想以后感觉可以用线段树合并,有想了想感觉细节好多啊。

T3 感觉挺神仙,但是暴力分似乎送的挺多。

懒得写 T2 了,就收拾东西走了。

中午去吃 kfc,顺便听说试机题是 thuwc2018?

下午拍照没什么好说的就我这身高怎么还被安排到倒数第二排啊

开营仪式貌似就是 thu 在吹自己有多牛,“人家执意要让我们做第一,我们也没办法啊”。

然后就开考了。


开场看了看题。

题意貌似网上一堆。

T1 看上去暴力分挺少的,说明是用来签到的

想了想发现只要这个序列变成了中间被操作的某个序列的话那么它的结局也就确定了,那么就直接维护第 (i) 个序列最终会变成第几个序列就行了,好像 rmq 倍增一下即可。

然后大概 50min 左右的时候 pp 了。

T2 看了看题感觉挺不可做的,简单想了想暴力发现送了十几分。然后去看了看 T3,发现送了 8 分。

………………

然后又去想 T2,想到每条边只能被断掉一次,那么我维护一下只保留目前每个点可以走的边,然后有一条边消失的时候就重构可不可以呢?只保留目前每个点可以走的边是个什么东西啊,不就是个基环树森林吗?

那么怎么动态维护基环树森林啊?动态维护森林是 LCT,那么基环树是不是可以在根的地方记录一下根应该连向这棵树里面哪个点啊。

那么题目中走 (s) 步怎么搞啊,我需要知道某个点的深度,还需要知道某个点的 (k) 级祖先,还需要知道某条路径上的边的边权最小值(判断能不能成功跳和最多能绕几圈环的时候用),还需要路径减。

好像没啥问题。但是这 tm 怎么操作那么多啊。但是看看时间还有 4h,我觉得很稳,于是就开始写。

写了 1h+,剩下 3h 左右一直在调试。调了一个 bug 还有 bug,如此往复。

终于在离考试还有 20min 的时候过了大样例。

但是提交上去怎么 pretest 有一个 WA 和一个 T 啊,只剩下了 (60pts)。我 lct 常数再大也不至于 (1e5) 都能 T 啊。

然后就一直 debug 到考试结束。T3 一个字都没有写

结束后 3min 我就发现了 bug:某个 ll 被我强制转 int (这个 ll 的取值范围比 int 打)导致可能会溢出为负数或者一些奇怪的数字,导致在找 (k) 祖先的时候挂掉。

然后我想了想这个 bug 可以让我挂的一分不剩。背后瞬间冒冷汗。凉凉。

回去以后心情不太好,thx 和 wph 学长一直在劝我,十分感谢

晚上也不太想写什么题,听了会儿歌。不知道怎么就听到了《退役的你》,还不知觉地开了循环真是要退役的节奏

Day2

直接看题,题意也不搬了。

T1 不太像送分题但是也不太像毒瘤题。

想了好久都不会,于是就写了个 (13pts) 暴力。然后开始写第二个包,大概就是状压的时候记录一下能否取 (0)

第三个包因为绝对值没了,所以只需要记录最大最小值就可以了。

然后第三个包就上去结果……pp 了?这 pretest 是有多弱啊,就和我一样。

然后看 T2,暴力和 (m=n) 总共 (31pts) 先安排掉了

T3 大概有 (9pts) 很可写,但是这性价比也太低了吧。果断看 T2。

T2 想了想感觉可以用支配树,然后转化为子树内有多少个点在 (a..b) 上的点在支配树上的子树内。自下向上用线段树合并维护一下每个点最后出现在哪个点的支配树的子树中即可。

这个时候大概还剩 (2h)。然后我又感觉我稳了,就开始敲支配树。敲了以后感觉假了,过了一会儿又感觉没假就继续写。

因为之前看了看 T3 感觉非常像我做过的一道题目,所以在写 T2 的时候总是控制不住地在想 T3。

事实证明这是我这一场最愚蠢的行为。

这样的后果是,我没想出 T3,而且 T2 也没有调完。后面最后只有 (40min) 左右的时候大样例啥都过了但是 pretest 依然 WA。我又不敢对拍(害怕时间不够),只在肉眼 debug。于是最终只有之前的 (31pts)

凉凉。在考试的最后 (10min) 我这样想。于是赶紧敲了最后一个题的 (5pts) 暴力,(9pts) 的肯定写不完了。结果 (5pts) 还写错了。

并不想算 Day2 的总分,因为我知道我已经人没了。怎么两场都因为没有调完丢了那么多分数啊。果然天欲亡我。

这非常值得反思。如果说 Day1 的 lct 没有调完这是因为那题的代码真的挺长,操作真的挺复杂;那么今天的这个就无法解释了,代码虽然不短但是也不长,但是也能写挂。可见水平真的低下。

Day2+

因为我是第一次参加 thu 的营,下午的工程场第一次接触,心里充满了期待和畏惧。

然后我发现果然我很菜,知识手册读了将近 (1h)(为什么要读知识手册呢,好后悔啊),然后又一边看手册最后一章一边做 T1,做了 (1h+) 才做完,拿到 (40pts)。大模拟题。

然后又看着第三章做了 T2 的前 (40pts),最后 (16pts) 没时间写了。呜呜呜~

于是只有 (80pts)。好像大众分 (112pts)。我场场比大众分低。

Day3

面试并不想写,因为我面试得真的很丢人。

下午 thu 宣传了一堆 thu 的生活和文化。听说 pku 的 1= 有 60+,貌似 thu 更可怕,然后开始老师来发奖:“今年的纸,进面试的都有,没进面试的也有。”

完了,所有奖基本上都通货膨胀成废纸了。

我场场都挂分,场场都比大众分低,最后只有一个 2= 奖。认识的不少 OIer 都 1= 了,也许该祝贺他们吧,但是我自己真的很难受。

一个是感觉挺遗憾的,尤其是想到能过的解法但是没有写完的感觉(之所以强调是能过的解法是因为貌似支配树不是 D2T2 的正解);另外这个可能也是一些宝贵的经验吧,写代码的能力也是需要注意的;此外也认识到了自己的水平和别的很强的选手的差距。

并不很想回忆太多事情,因为想到这些的时候总是很难过。

下面大概只有省选和 thusc 了,(还有 NOI?如果有)今年 JS 想要进省队感觉还是很困难的,尤其是在被强校的 1/3 空下来的几个名额里,已经有 3 个被神仙们预定了。(所以如果今年 JS 有 12 或者 14 个省队名额我是不是就要现场退役了啊

总之继续加油吧。

原文地址:https://www.cnblogs.com/hankeke/p/thuwc2020.html