WC2025 游记:对着镜头比一个耶

· · 生活·游记

目标:有约拿,然后积分上金钩。

1.13

晚上打了 CF,感谢 C key observation 又把我送走了。忙了一会题目翻译的工作,三点钟才洗了个澡爬到床上去睡觉了。

早上五点半就起了,要醒不醒的,特别困。到了机场集合后不久就安检然后登机了。

飞机上睡了一会,发现旁边的姐姐是同担就开始聊天。后来发饭了,酸菜鸡肉味的意面也就那样。

下飞机,北京好冷,尤其是风很大,和重庆的冬天很不一样。跟 wsx 报了个信,说想见他一面,他答应了我还挺意外的。

赶地铁转了好几趟,到酒店累死了,睡了一个午觉才起床报到。

结果完蛋了。我们到的时候队伍极长,但也只能一点一点排。中途面到了 pos7,gza,dk 和 KLC。

在寒风中罚站了一个多小时,终于进入了温暖的大堂,群友说 A 到 P 往左走,但是我没听劝,直接跟着人流往右走了。

又排了一个小时 assnow 指出我们排错了。于是赶快回头,发现刚排到 pos7(pos7 原本在我们后面不远处),那幸好没有白排太多时间。然后就顺利领证了。

试机。发现逆天的显示器距离,键盘和鼠标都在抽屉里,和 cqyz 区别很大我不太习惯,并且看得我眼睛很不舒服。还有就是机房里太热了,我要脱到只穿两件衣服。唯一的优势是薄键盘我的码速和码力在线。

此时聚餐已经迟到了,rdfz 组织真的依托。

本着其他人估计都试不了多久的想法写完元旦激光炮就跑了。结果出去之后又站了二十分钟等人。

然后因为没有聚餐了所以要找吃饭的地方。一开始准备去吃我和 SA 和青白上次来北京参加 20th astar 的时候吃的饭店,结果发现前面竟然还有 79 桌。于是只能随便吃了,找了一家川菜馆。我意外点到了一个很多辣椒的饭吃,北京的川菜居然还挺香。(伏笔)

回酒店。开了个废话会,主要内容是教 hzj 等人使用 vscode。开完之后不久我刷手机刷累了,就拜托 SA 帮我收了手机,我早早睡觉了。

1.14

早上起来腹痛。我马上意识到是昨晚的饭不对,并且如果硬撑着上场肯定会导致 NOIP 惨案重现。于是直接快速炫完早饭在厕所里待了十多分钟,好在肚子确实不痛了。

顶着寒风跋涉前往 rdfz,北京的冬天真的好冻。

原本计划拍照,但是因为太冷了直接弃了进考场了。提前了二十几分钟到,感觉压力很大,想闭眼休息都没办法平静。

坐了一会就发密码了。写完缺省源,开题!

扫了一遍四个题,发现有三个东西都是数据结构样,T4 看起来有点神秘。细看了 T1 T2,随便分析了一下 T1 感觉就来了,一堆很明显的性质支持了一个比较简单的 dp,并且这个 dp 应该是可构造的。于是开始写 T1 \mathcal O(n^2)

越写越感觉自己是对的,证明都快补完了。8:30 左右就交了第一发,但是 Wrong Answer 0。

瞪眼。随便叉了一下就发现自己构造写得不对,这个构造没那么随意但还是挺简单的,递增递减两头来就可以共用一个峰谷,改了之后感觉就没啥问题了,但是还是 Wrong Answer 0。

咋回事啊?中途想过 l=r,但是没有细想没发现问题。为了求稳开始快速写对拍,然后写出了 if(l<r) swap(l,r); 这样的代码。

然后发现这个破电脑一边对拍一边死机,硬拍了 2000 组没拍出错!我怀疑是生成器炸了,把输出和数据拖到 vscode 里实时查看,发现答案怎么全是 m 感觉不对劲,一看数据简直神了,全都 l>r。再一看对拍器想把自己流放的心都有了。

把对拍器一改马上就拍出来了,发现就是 l=r。改好交上去就 Time Limit Exceed 40 了。

显然可以线段树优化,光速写了个线段树,9:30 时 Accepted 100。我感觉这题是人均题,做得有点慢了。

开 T2,看上去是一个很纯粹的数据结构题。所以一开始完全在用数据结构题的方式思考:第一维线段树,第二维启发式合并 set;第一维分治,第二维线段树等等,总之是提出了若干个 \log 起飞的做法。

同时机房的温度正在逐步升高!感觉自己越想越红温,好几次准备直接弃掉开始拼包了,但还是阻止自己让自己继续想下去。

在红温状态下撞了半天终于撞到二分答案,然后发现直接 C 性质上线段树容斥一下就漂亮 2log 做完了(完全没反应过来可以在里面二分变成 1log,但是 SA 后来评价说如果我反应过来反倒可能因为卡常浪费时间)。

于是马上开始写。写的时候发现我不会写动态开点树状数组,但是线段树空间根本开不下。但是只能冒险了。于是 80 倍的空间,却塞了七棵 5\times 10^5 的动态开点线段树。

这东西非常难写,要给八个东西离散化,还要再搞个树状数组。轰轰烈烈写完之后根本没测效率,交上去 Wrong Answer 17。一看,只有暴力分!

这个时候完全不知道是 map 效率成依托了,以为是线段树常数太大,感觉已经绝望了。在注释里面问候了清华大学李姓毒瘤(以为是 lxl 出的题)卡常,然后就开始拼包。

先拼可以直接复制代码过来用的 C 性质,很快写完了交上去 Wrong Answer 29!

不对啊,我不是过了 35 分的 Sub 吗?提了个问被告知阅读公告,我一看好家伙今年没有 submax 了,是 submissionmax 我们没救了。这下要拼包了,真恶心。

不对啊,我 1log 怎么会过不了 5\times 10^5 呢?这时候就反应过来 map 效率不行了。换成哈希表就冲过去了。

马上把 2log 里面 map 换成正规离散化(排序二分),交上去直接 Time Limit Exceed 45,很快啊!

和 C 性质拼在一起,Time Limit Exceed 63!

T2 的码长此时已经来到了 8KB。我深知自己这场不上 200 绝对完蛋,于是马上开 T3 T4。扫了一眼 T3 发现果然是很典型的数据结构题,T4 确实是很神秘的找性质题。

简单想了一下 T3,发现 \mathcal O(qn) 分贼多,于是我知道肯定有一个瓶颈在确定 k 上了。想了一下有了一个贪心状物,随便瞎调了两下就过样例了,交上去一发入魂,直接 Time Limit Exceed 36!

想了一下我这个东西现在还没完全搞明白数据结构意义,不太好直接做前缀或者别的什么,于是弃了前缀的 17 分。

T4 指数级很快得到了。

现在还剩二十分钟,得分来到 209,T2 有没拼完的小包,T3 T4 还一筹莫展。为了求稳决定去写 T2 的简单小包。开了四棵线段树调了一会就过掉了一维的部分,12:58 看到了评测结果 Time Limit Exceed 71。于是得分来到 217

拿着 100+71+36+10=217 出场,问了一圈感觉还比较健康,至少不萎。SA 不知道 l=r 会出事爆炸了,hzj T3 拿到了 53,但 T2 基本没拼包。

车人说我明天还有得翻。但愿吧。

合照和吃饭不想写了。合照我都懒得喷,一开始风很大吹得我走不动路,合照的时候其实还稍微好点。但是明明知道这么冻为什么还没拍到的时候就要取帽子?

吃饭是自助,感觉还是有东西的。50 块的午餐券就是不一样!和 SA 在食堂找座位游走的时候被绝帆的教练邀请拼桌了,一开始我们不知道,后来叫了一声 wjx 我还以为听错了,然后看到绝帆坐了过来……/se/se/se

了解到 T2 1log 做法觉得自己是【】,了解到线性做法觉得很牛。T3 问了一下绝帆,大概抓住了操作前缀,往下压之类的字眼,果然是很数据结构刻画的题目。

下午就是去 T 的什么学科嘉年华。没啥好玩的,基本在排队和罚站,领了一套明信片就完了。

晚上约了 wsx,陪 wsx 吃了个饭。聊了很多天,但感觉还是有一种奇怪的距离。最后两个人花 200 块吃了预制菜,还都没吃饱。我很有预感这事将成为我们俩之间除了谈恋爱之外最大的笑柄。

晚上睡得还是很早,SA 说我这两天睡眠质量太好,然后要 1= 了云云。我都懒得理他。

1.15

早上起来的时候状态没有 Day 1 好。感觉昏昏沉沉的,吃完早饭走到 rdfz 也仍然如此……

坐在自己机位上反复尝试让自己冷静,但是第一次离 1= 真的这么近我没办法冷静。于是只能想办法放空大脑,狂暴哼 love is dangerous,终于在比赛开始前两三分钟静下来了。

因为一直在关心心态,连密码都忘看了。8:29 才进系统,刚登录就开考了。好家伙,怎么是神经网络!

下载下发文件,发现要下好几分钟,于是趁着这个时间把缺省源写了。

开始看题。

简单读了一下前言感觉没什么用,然后发现 T1 softmax 本质就是一个模拟。于是开始写。但是我并不知道是 0-index 还是 1-index 啊!想了一下这肯定是考试的一部分,工程标准都是 0-index,就按照 0-index 直接写了,写完就过了,此时是 8:40。

一看公告才发现这原来是题面没写清楚……

T2 就是矩阵乘法,但是注意一下 cache miss 就可以了。写完之后挂了一发 Wrong Answer 40,发现是指针操作的时候下标映射一不小心给错了,改了一下就过了。

T3 是 RMSNorm,写完一发过了。

T4 是 FFN,写完一发过了。

这两个题稍微上了点难度。描述里介绍了一下张量什么的,但是好像没啥用。唯一出了一点问题的是我不认识转置符号。但是我发现两个乘不到一起的矩阵乘在一起了,猜了一下是转置的意思,结果一遍就过了。

T5 来到 Rotary Position Embedding。简单整理了一下发现还是个简单模拟,中途有几个题面小错误,我问了一下结果让我读题……那我就按照我自己的理解和猜测写了。写完又一发过了!

这个时候才 9:40,感觉自己 nb 炸了,70 分钟速通五题,一共就挂了一发。同时题面勘误正在越来越长,我感觉这场是 trash contest 啊,难度全在读题和猜题意,其实真的很简单?

开 T6 Attention,看到多头没绷住。冷静下来发现是一个很麻烦的东西,矩阵大小分析不太奏效了,因为矩阵太多了。反复梳理阅读猜测了好几次才搞明白要先干什么再干什么。写了一百多行,10:48 搞完了第一版代码,交上去喜提 Wrong Answer 8.53。

我一开始以为这是要调参,后来我发现题面啥都给了,这其实是错完了的意思……

开始静态查错,然后发现自己代码一长就写的千疮百孔。+= 写成 =,Rotation 之后拿的原矩阵去做,没转置等等。唯一比较炸心态的就是改完之后分反倒越来越少……

实在看不出来实现错误了,就跟着题意重新看。很快发现自己好像分组多头的时候出问题了。于是重新观察矩阵大小重新分析重新猜,狂暴想了几分钟之后终于彻底搞明白他的分组多头是什么东西了,于是重构分组多头的代码,写完交上去一发 Wrong Answer 5.03,发现是用错矩阵了,又改了一下就过了!

现在是 11:48,赢完了!

T7 就是直接拼之前的代码就完了。那封装到结构体里就好了。拼的时候注意了一下空间,然后吃了几发没清空,然后就过了。

2025/1/15 12:10:53,我 AK 了 THUWC2025 Day 2。

一瞬间脑子嗡嗡的,虽然我感觉这次工程特别简单,但还是没办法平静:我已经翻到不能再翻了,稳了吗?稳了吧。

剩下二十分钟在阅读 Attention is all you need 的原文,然后看到了老熟人 Geoffrey Hinton,还挺感兴趣的,认真看了一会考试就结束了。

出场打听了一圈,很快知道了 lmx AK,然后听到了个位数人 AK,很多人都搞不出来 T6 于是 508。和车人报了个信,然后发现 508 的人要翻我 Day 1 需要 300 以上,那应该还可以?

然后就是熬讲座,感觉挺没意思的,连出题人都没有。煎熬了两个多小时终于颁奖了……

居然发银金牌子!口头上说的是发纸太耽误时间(这是事实,之前几次就因为打印之类的问题等了很久……),所以这次 1= 2= 疑似合并成了 Au,3= 就是 Ag,先发牌子再邮寄纸。

不知道谁从生物竞赛那抄来的先念 Ag,令人汗颜!hzj 拿了 Ag 有了 THUSC 的门票,心惊胆战一波,Ag 没念到我。结果 Au 的第一组就是我(后来疑似证明这应该是成绩无关的),于是如愿拿到了自己的 Au。

upd: 有人说是按照成绩降序???D1T1 还我卓越。

还发了一个前 rk20 的卓越奖,感觉很神秘。不同省份不同年龄你真能拉通比的?上面好像有人总分算下来比我 517 低的。

后来听说这次发得很不合理,好像算上了拿过的“非正式选手”。也听说 T 的一些纸没用的事……后来安慰自己不要太焦虑也就抛之脑后了。

出门就被叫 Au 爷。锤子啊。

晚上要换酒店,住到机场附近。因为上次坐地铁太折腾,于是就打车了,然后就被北京晚高峰害了,硬坐了两个多小时。

到了酒店都八点过了,我们还没吃晚饭。结局是在我和 SA 鼓动下,五个人(没有 kyx,assnow 和火炬)赶在离开北京一起吃了一顿高档烤鸭,其实一个人也才花了一百不到……

吃得很撑。我和 SA 回去之后睡也睡不着,于是就熬夜……(伏笔)

1.16

结局就是精神差得离谱……飞机上睡觉,到了杭州接着睡……

中午终于和 WC 组(syc,alicx 和青白)碰面了,然后进行了一个聚餐,吃了一家绍兴菜感觉就那样……我觉得包子很好吃。

下午继续犯困,一边睡觉一边和 syc 打了两道 *2300,一蓝一紫,都挺简单的。他好像有点倒霉,居然两次都输了。

然后就睡了。晚饭吃的麻辣香锅,上 B 站搜了钢丝视频来看下饭,吃完之后就一边看视频一边犯困……然后又睡了。睡到九点半吃了疯狂星期四。又是吃饭又是喝奶茶给我们俩吃撑了……最后送了一些给 alicx 他们。

因为肚子很胀,精神又特别困,晚上就一直很不舒服。勉勉强强上了个厕所,然后就睡了。

1.17

早上一觉睡到了 11 点!

在床上磨蹭了一会,上了个厕所就出去吃饭了。沙县小吃还怪好吃的。

回酒店快速收拾好东西就退房走了,抵达了 sxyz。

报道。看了一下宿舍,我和 SA 和青白和 @DaydreamWarrior 一间,从某种意义上来说还算是一个学校的()

我觉得环境特别好啊!观察了一下宿舍和小卖部都不错,就是我这个床没有枕头和插座

下午 dw 帮我们宿舍所有人获得了枕头,拜谢。

然后就是晚饭,梅干菜真好吃梅干菜真好吃梅干菜真好吃。

开幕式,很难绷。疑似抄袭了 cqyz 元旦晚会,不但有绍剧变脸,还有我班节目里面 SA 唱的歌()

被晋国大臣群友笑得死去活来,谁允许这么空耳的。

开幕式结束就回宿舍继续玩电脑。玩到 22:30 直接启动 CF。

前四个不都是水题吗?一眼秒了四个题,直接冲到 offical rk1。

开 E。想了一下在 m=0 的时候有了一堆性质,尝试推 m=0 的 dp,发现长得特别像卡特兰数。但是怎么都想不清楚,式子一堆错……

结果 1.5h 搞不定这个 E。。。结局是那个东西就是卡特兰数,然后就完了……

被自己折服了,知道但是想不清楚的感觉真的好痛苦……

睡觉了。

1.18~1.19

忘记了,但是我怎么什么都听不懂啊?

1.20

不太想写了。开场进去不知道在干嘛“睡”了三个小时,反应太迟钝。被 T1 卡掉之后秒了 T2 的贪心,不知道为啥感觉动作好慢,下午一点才拿到 65+50,然后一眼了 T3,结果 \mathcal O(n^2) 搞了一个小时。最后整体 dp 后缀 \max 脑抽不会做,倒数十分钟发现 T1 显然性质会做了。

用最好的考试策略获得了 65+50+40=155 的好成绩。我只要拿牌子就能积上的钩八也没了(心理安慰是洛谷奖项认证一时半会好不了,可以苟延残喘到 APIO)。

青白 Ag,dw Ag,syc Cu,还有一堆奇怪的人 Ag 和 Au…… 但我和 SA 喜提 Fe。发现我的 WC 和 APIO 都是被【】题送走的,怎么会是呢?

APIO 被 T3 干掉,Au \to Cu;WC 被 T1/T3 干掉,Ag \to Fe。

不管怎么说,WC2025 没过题,人生低谷!我觉得 WC 应该推出退一半钱考完试就回家的服务!

@251Sec:别管【】比赛了,看看晚上的文艺汇演吧!

好多小甜歌都好好听,我对这种 pop 没有抵抗力。SA 唱歌一如既往技术流!

下次给大家准备 rap 捏。

晚上熬夜熬到很晚。

1.21~1.25

剩下的每天都在浑浑噩噩,于是干脆不写了。

一次失败用半年治愈,时间在流逝里逐渐剥离。

我很多时候希望 OI 的赛程可以再短一些。长间隔是我在 whk 和 OI 之间被迫的选择;是我失去了绝大多数的人生时刻;是我惶惶不可终日,每次考试前越来越紧张,呼吸越来越困难。

NOIP 对着无助的 T3 和 T4 就已经意味着我只剩下一年的时间。whk 里也同样。我有越来越严重的厌学情节,毫不避讳地说,我现在的班主任无法给我提供任何正常的情绪价值,所谓的班级氛围更是如此。

相反的我越来越认可自己的文字,好像我生而是文科生。

很遗憾我没有生在文科最好的时代……有时候也想过 matrix67 那样,但那对我来说已经来不及了。我意识到这点太晚太晚。

学程上高二上半期已经结束,OI 走到一个岔路口,我的前进或撤退好像都是徒劳无功。

sp 并不强,也并不自信。他只是在状态好时勉强混口饭吃。他总希望得到的其实是从身边人里获得认可,但好像他所擅长的就不是活在现实里。偏偏他做不好现实里的一个人,或者一个 OIer。

我无法接受失败,当然也无法接受我的失败或别的一切成为笑料。我还是假装这么想,我成为谁,我希望成为谁,我会比谁过得好,it's none of your business.

嘿,对着镜头比一个耶。