2025-THUWC 游记

· · 生活·游记

Day -1

期末考ing……(炸了

Day 0

上午考完最后一门科目,直接出发去机场(每日开出校单开好久)。尽管刚刚考完直接跑路着实有点逃避的嫌疑,但对于还从来没有去过北京的我来说,对于北方的目的地,还是心怀期待和恐惧——怕水土不服考不好。

随便吃了一点,因为要期末考,所以是单独的机票。好无聊,睡了一会,就到北京了。

感觉北京也没那么冷?整体还是比较适宜的,又在机场绕了几圈,毕竟北京的机场比我那边的大多了。然后去酒店路上又堵了好久,到酒店已经快八点了。

爽吃了一顿北京烤鸭,还不错,就是空气有点干,南方人不太习惯。回到酒店已经很晚了,可惜的是这一天全程没碰到学校的大部队,可能是刚好错开了。

Day 1

上午(7:00 - 14:00)

早上七点,起床,果然对我来说还是有点早了。去吃了点早饭,看见了 lsh,xy,lyl,sk,lhx 等神犇。还借了几个巧克力准备考场吃。

顺便拿到了昨天因为飞机晚而错过的牌子和包。里面有挂坠、贴纸啥的,我的评价是,不如鼠标。

出发去人大附中,当时还是有点紧张的,毕竟我第一次来北京。我看了一眼牌子,“科研南楼”,没找到,只找到了实验楼,一看不是一个东西,就去问了保安。

当时距离考试就不到 5 分钟了,但我还在瞎转悠。终于找到了,原来就在门口,匆忙到了考场,放了一下东西,就去座位了。

考试很快就开始了,但我这才发现自己忘记把水带进来了,不过问题不大,因为后来发了一小瓶,顺带还有两根巧克力和一块面包,开心。

虽然没试过机,但我还是轻车熟路地开了题。看 T1,区间排序,有点像做过的二分答案+颜色均摊题,但一看是最多满足的条件数,就感觉行不通。

可能可以维护每个位置差分数组的正负性?因为这好像与值无关,而且根据这个是很容易构造出相应真实序列的。

于是问题就是:01 序列,条件即为区间值都是 0/1。很优美的转化,我想。

挺难贪心的,可以无脑 dp,把区间条件挂在右端点,维护单点是难做的,不妨对整一段进行考虑,为了复杂度,还得分 0/1 两种情况。

可能可以把条件当做 n\times n 平面中上三角的点?然后一段区间的贡献就是一个对角线经过主对角线的矩形和?经过痛苦的推式子,我终于写出了暴力:

f_{i,0}=\max_{j<i}\{f_{j,1}+\sum_{x_k=0} [l_k>j][r_k\le i]\} =\max_{j<i}\{f_{j,1}-\sum_{x_k=0}[l_k\le j][r_k\le i]\}+\sum_{x_k=0} [r_k\le i]

此时已经快过去了一个小时,但我只拿到了约 40pts,有点慌,赶紧想正解。

那怎么优化呢,单调性?斜率?显然都不适合,考虑增量?记 g_{i,j,1}=f_{j,1}-\sum_{x_k=0}[l_k\le j][r_k\le i],那每次 i+1 就是对于每个 r_k=i+1 的条件进行后缀修改,查询就是全局 \max,复杂度 O((n+m)\log n),没了。

于是我仅仅花了 10 分钟写了一个线段树,然后就过了,100pts。

我怀着信心开了 T2,一看,这不是动态三维数点,可能是要利用 \max 的性质或者只除去 x,y,z 与之相同的点的性质?

想了一会儿,觉得可以整体二分,就写了一个容斥的离线做法,调了一会容斥,一交,17pts。

感觉可能自己写错了,看了很久发不现,开始卡 w=1 的点,因为此时一定是线性的。

虽然我认为线性 n=5\times 10^5 应该能过,但是事实上我卡了 2h 都没过,此时的我心力憔悴,懒得打暴力,开摆了。

看 T3,好像比上一道有意思一点,看起来像经典的标记回收?但是这个 k 可以任取有点不太好做,可能是有结论?想了好久,没想到。

那就看 l=1,r=n 的点吧,这下应该可以直接用数组维护所有 k。研究了一下性质,顺便吃了一点东西,发现 f_i,i-f_i 都是单调的。

再仔细一看,差分数组就是一个 01 序列,每次要么改第一个 0,要么改第一个 1,再用一个权值数组维护权即可,开写!

果然不是我常写的题目,写了一个多小时,终于拿到了 41pts,顺便把 l=1 都过了。

此时的我整体感觉还行,因为尽管 T2 死惨了,但是 T3 还好,如果 T4 打个暴力就圆满了。

于是我开 T4,一看,结果直接看错题,以为可以自由排序,0pts 最后 5 分钟发现错误,抱憾离场。

出考场,发现 lsh 大佬急着问我分数,我感觉人均 200+ 了,因为只要有人 T2 卡过,甚至只要多过几个包,就可以吊打我了,于是我没回。

走到一半发现东西忘记拿了,再走回 7 楼,拿完东西下来,在门口绕了好久,这才找到门出来。

到足球场的时候大家都基本上站好队了,我只能找一个角落站了下来。路上台上大家都在骂 T2 没区分度——都被卡了。

下午(14:00 - )

拍完照去食堂吃饭,门口排队排了好久,人好多啊。

有一说一,人大附中的饭真好吃,土豆牛腩什么的还能自己盛,味道也比自己学校的饭菜好多了,就是 50 块一顿确实有点贵。

吃完准备下午的清华大学参观活动。因为编号比较后面,我们找了好久才发现了大巴,好像同校的都在一起?

干坐了一会,就出发了,说实话,我本来还是比较激动的,毕竟是 THU,但经过上午的 2h 卡常大战,我已经很累了,于是就在路上睡了一觉。

是的,尽管人大附中到清华大学就没多少路,而且还是工作日、非早晚高峰,但路上还是堵了好久,以至于车上大家都在睡觉。

到了清华,好像建筑都挺老的,也正常。下午风比较大,进了场馆才好些了。

第一个场馆,大概是清华大学计算机系,有个 I LOVE THUCS 的牌子,有很多人去拍照。旁边还有活动,像初中的游园会一样,集齐两个印章就能换神秘奖品,闲着也没事,去试试吧。

第一个挑战是看代码猜诗句,抽卡片,一张上有两道题,可以自己选。正当我看第一道想不出来时,发现第二道有个 print("iron horses icy river");,我当时都懒得看前后了——也看不懂,直接无脑猜。“夜阑卧听风吹雨,铁马冰河入梦来。”“嗯。”挺简单的嘛。

第二个挑战是看图片猜成语,看得出来他们真的很想培养我们的语文素养,但可惜我本来就没有那种东西。也是两道题,我想了好久没想出来一道,后来还是后面有一位老哥可能是等得不耐烦了,说:“第二道不是黄粱美梦嘛。"我一看,好像确实,尴尬地笑了笑,报了上去。

后来听说 lsh 大佬两道都 3s 秒了,/bx。

兑换奖品是一个卡套,还挺使用的,可以装饭卡。可惜就是没用 THU 的 LOGO,没法炫耀了

等了一会,到了下一个场馆,好像是展示人工智能的?有很多牌子,都是密密麻麻的文字,介绍什么先进 AI 技术。有一个 THU 的 GPT 的 APP,扫码可以下载。有一个是展示人工智能怎么自制小游戏——植物大战僵尸,不过做的有点像素风。还有一个是一个神奇网站,输入文字描述或者 2D 图片,就能生成一个 3D 建模,有棱有角,还有颜色,挺像回事的。

我最好奇的是一个机器手——准确地来说,两个,一个是靠摄像头捕捉人手在屏幕前的张合状态,从而操控的;还有一个则需要带上装着传感器的手套。不过它们都识别不了小拇指,所以也做不了什么复杂的动作。

中央有一群人围着,中间是一位中气十足的老师(?),正在慷慨激昂地陈述人工智能在教育领域的广阔前景。不知道为啥有这么多人看,不过听他的气场,确实很有趣。

下午六点左右,我们重新做上了大巴,回到了人大附中门口,大家各自就散了。

晚上吃了北京涮肉,还不错,挺独特的,是在南方吃不到的类型。还去看了一点相声,很开心。

Day 2

上午 (7:30 - 13:00)

今天的考试似乎比昨天晚一些,又可以多睡一会儿,但代价是仍然吃不到完整的早餐。反正也没什么好吃的,我安慰自己,况且我也习惯了平常不吃早饭了。

又看见了同校大佬们,似乎是因为类似的时光总是会感觉过得格外快,我茫然间又到了校门口。唯一不同的是我发现我忘记带身份证和饭票了!

额……身份证问题不大,现在入场拍一张照+学员证应该就够了,至于飞机,可以用电子的。饭票也还好,我吃带的三明治就行了。

到了考场,这回的我比上回来的早了许多,但也就意味着要等很久。工程题……虽然也不是没做过,但仅仅一次的经验使我还是有点忐忑,又有点兴奋。

忐忑是因为工程题依赖性强,一道失误后面都要拖延,在仅仅 4h 做完 5 道甚至更多的题,以我的水平还是有点赶的;兴奋则是想着在上回的 wordle 之后,这回又会有什么有意思的学习资料呢?是想重力四子棋那回一样?还是和去年那回一样?

考试很快就开始了,一看,七道?!这有点多啊,得加快速度才是。这题目名称是啥,怎么全是看不懂的英文。再开 T1,"本场测试全部资料在此处下载",额……有点新奇,那其他题目都没有描述喽?但是此时因为都在开题,所以一下就卡住了。旁边有个老哥更是惨,一道都没打开,干楞了十分钟。

下完了资料,一看,一堆文件夹,一堆 pdf,有点眼花缭乱。看了一眼公告,先开了题目描述 pdf。这都什么东西啊,“Meta(前 Facebook) 发布了 LLAMA 模型”,我怎么知道啊,还有什么 Trans 什么模型,还给了一个流程图。

我仔细一看,好好好,让我们写翻译的 AI 是吧,搞那么玄乎,还有什么选读文件,真的有人会读吗……不管了,先开 T1,根据经验,应该比较简单。

看 T1,定义了一个叫 softmax 的东西,可以把向量转化成概率?这个明明是一个数组啊,哦,好吧,是转化为概率分布。

经过我的神秘理解能力和函数式提交的非传统方式,我花了半小时才搞清楚这个的做法。尽管还是不知道怎么测试自己的代码,但反正可以随时提交,而且目前题目这么简单,也不需要。100pts。

开 T2,这不纯矩阵乘法?直接模拟吧,“提示:利用缓存调换循环顺序可以变快”?没事,写完手动枚举一下循环顺序就行了,这回写的很快,运气不错,第一次就过了。但后来试了一下其他的循环顺序,都没快多少。

开 T3,好像是什么Rmsnorm?现在开始变复杂了。但对着题面一通模拟就过了,就是那个张量啥的也需要压成数组它没说,要自己悟。

开 T4,也差不多,具体忘记了。好像一开始式子是错的,勘误之后就过了,也是简单模拟。

有一说一, vscode 写这个还挺方便的。我不知道其他编辑器有没有变量名自动补全,反正我用 vscode 是有的,特别适合写这种变量很长的题。可能也是因为我如果不用一模一样题目里的变量名就会忘记吧。

开 T5,记得是 FFN ,好像是要调波长什么的,听说有人没过?不会有人不知道 low_wave 波长反而长吧——好吧我就不知道,以至于我一开始以为那个写反了,不过整体也不难,模拟即可,可能细节比较多,比较幸运,这几道都没有样例的情况下很快过了,至此总共花了一个多小时。

这下应该不会翻车了,就剩最后两道!根据经验,最后一道应该是简单复制粘贴题,把前面的都放一起就行了。

开 T6,Attention,这个有点烦,还分什么基础自注意力、分组自注意力、多头自注意力,从哪个看都不清楚,那就一个一个看。感觉没有上一道复杂?尽管如此,我还是花了 40 分钟才理解它玄学的转置和拼合。

开写吧,还有 2h,问题不大。先是一通复制,又补了几个矩阵加、矩阵转置、矩阵 softmax 函数,然后就开始慢慢模拟,这个拼合有点麻烦,我试了好几种写法,终于找到一种还算可读的写法。

说实话,我一开始觉得那个部分分就是逗你玩的,毕竟这想要炸精度不太容易,而且以我浮点数比较不加 eps 的高端写法,也不太会炸。但是当我一交,一看 8.64 分?!

哪里错了呢?无穷大不够大?循环变量写错?忘记乘 o_proj?还是说我的多头循环写错了?难道是矩阵乘法没清空?我调了一个又一个错误,但还是只有 8.64 分,纹丝不动。

此时距离结束已经只有 40 分钟了,我已经非常焦急了,感觉即将功亏一篑。

等一下……我这才意识到不对,一看,错误率从来都没有改变,相对误差稳定在 1.00000,再一看,要求输出的是 Y 矩阵,而不是我定义的 Output 矩阵,赶紧改掉,100pts。

好,我长舒一口气,这下应该稳 AK 了吧,还有半个小时,写个复制粘贴题还是容易的。但是很遗憾,可能是我中了某种临近结束不能过题的诅咒,我最后一题交了几次,仍然只有 0pts,甚至检查了前面的代码,都没有发现问题所在。

于是,继 D1 之后,我又一次抱憾离场了。

感觉这回人均 AK 了啊,我两天都没考好,我正想着,听见后面有人骂着题目,说来也是,这次题目确实没啥意思,纯模拟。

不过后来听说一车人 T6 挂了,甚至还有同校同学获得了 599.99 的高分,感觉自己也没有那么差了?

没饭票,饭是自己一个人吃的,不过吃完了才知道本来偷偷进去食堂阿姨不会管,有点可惜了。

下午(13:00 - )

吃完饭有真空时间,无聊,就先去报告厅等着了。看见了 xy,lsy 等大佬在打游戏,还有 sk,yyz,lhx 大佬。

睡不着,看别人打游戏看了好久。两点钟,讲座开始,没想到先是开幕式——也是闭幕式,无聊的讲话,不过是第一次看见 THU 的计算机系院长,还有人大附中校长讲话。

然后是学术讲座,不出意外,上午考了 AI,下午讲 AI。这么想来,昨天下午还看了 AI,简直是大 AI 时代啊,据说 PKU 也讲了 AI。

第一个是个什么姚班什么交叉院的老师,讲了人工智能的历史发展,姚班的推销,还有具身智能的介绍,比上回有意思一点。有一个机器手包饺子的演示,看起来挺智障的,但是想到这几乎已经就是尖端技术了有点难绷。还有一个机器人开门大战,没一个成功开门,很搞笑。

第二个是什么教授,忘记了,好像是讲语言模型什么的,曾经在 Facebook 工作?似乎还讲了上午的 Attention 机制。其他没怎么听,在打游戏。

讲座终于讲完了,然后是颁奖。开局就是一个王炸,说是一等奖和二等奖合并为金奖,剩下只有银奖。那感觉金奖还是有概率的?毕竟二等应该挺好拿。

从银奖开始,一组一组报过去。我当时想着,这样不报学校有一个好处,那就是他们不会再把我们学校名字念错了。

银奖竟然没有一个我们学校的,难道我们学校全是金奖?还是大部分都没有奖呢?报金奖了,出来一个我们学校的,这位 D2 T6 获得了 8.67 的高分,看来它确实应该是加过权算的。

我们学校出来了好几个,都没有我,我感觉我没奖了。此时的我,可能是已经受不了北方的干燥空气,直接流鼻血了,挺多的,所幸不算难受,身边也有纸。

金奖最后几组的时候,竟然报到了我,我匆忙关掉游戏,只能流着鼻血上台了。可惜了,我隔着纸,低头都没法仔细端详着金牌,只能勉强拍个照就下去了。

最后,还宣布了一个神秘大奖——卓越奖,我们学校的 lhx 大佬不出意料地拿下了,但据说他 D2 没发挥好,D1 也一般。反正肯定比我高多了。

终于结束了,大家打车回去,听说隔壁 PKU D2 T1 是神奇交互?好像一车人没过,但是 yts 大佬随机化过了,zhy 大佬则是正解。看了一下题目,感觉不会。幸好没去 PKUWC,不然被交互搞炸了。

坐飞机挺无聊的,在北京尤其无聊,光去机场就有 1.5 小时,加上安检什么的都比飞机上的时间还长了。

到家已经 23:30 多了,整理一下东西已经 0 点了,明天早上起不来,上午在家休息,下午上学,蹭个午饭。没事,马上就又寒假了,熬一熬吧。

P.S.

后来听说 D1 T2 是人类智慧题,T3 也有更多暴力,T4 则直接 dp 就能 20+,有点后悔自己为啥要卡那么久 T2。不过我现在还是不知道我 T7 到底错哪了。

幸好没去 PKUWC,不过 D1 T2 的回滚莫队我应该能过?好像 zhy 大佬写了一个神奇二离,敬佩。

省流版:

D1 : 100+17+41+0=158 (赛时),T1 做出来不算稀烂,T2 T4 不知道在干什么。

D2 : 100+100+100+100+100+100+0=600 (*3/7),算是翻盘了,T7 0.5 h 做不出成为小丑,浮点数比较不加 eps T6 没炸过。

最终成绩:金牌,疑似 2=。