【比赛游记】THUSC2021 丢人记

Day -7

教练告诉我要来杭州学军中学参加 THUSC2021,说什么要积累经验(当炮灰)。

有一段时间没碰算法竞赛了,5.12 到 5.14 又要二检,准备个锤子。于是做好了丢人的准备。

与我同行的还有另外两位队友,其中一位是与我同校的队友。

Day 0

下午的话,初中要拍摄 " 毕业个人照 " 和 " 毕业班级合影 "。

而我们是 18 : 14 的动车(福州北 \(\to\) 杭州东)。

班主任说的是 16 : 00 开始拍摄 " 班级合影 ",再怎么说 17 : 00 的时候也该拍好了吧,这动车也赶得上了。

结果 10 个班 " 毕业个人照 " 拍的比较慢,硬是等到了 16 : 30 才开始拍摄。

学校给了我们两人所在班级先拍摄的福利。
我:???

由于我们学校的拍摄场地在户外。
我的这位队友十分幸运,在拍摄的时候没出太阳,进行的十分顺利。
而我在拍摄的时候,太阳异常的耀眼,拍出来的人头发都是白的 ...

于是我们班和太阳耗了很久,终于等到 17 : 20 的时候,我耗不下去了,再耗下去动车就没了。
于是老师和同学们继续和太阳耗,只能先把我放走,以后再把我 P 上去了(哭)。

最后我还是没赶上动车,而且非常烦的是这天没票了,改签都改签不了。
而据我的这位队友说:她在检票结束后一分钟赶到检票口,也没赶上动车。

那就只能明天早上再出发了。
于是又回到了长乐 ...

早知道赶不上动车的话,还不如继续和太阳耗着呢。
突然想起明天的合影也没了,草。

Day 1

坐了最早的动车,11 : 30 左右就到了杭州东。

午饭吃的是肉香茄子饭,这个茄子怎么尝起来怪怪的。

然后大概是 13 : 00 的时候抵达紫金港校区。与队友成功对接,拿到了自己的胸牌和一些奇怪的纪念品。
THU 发了:印有清华大学计算机科学与技术系的背包,印有清华大学计算机科学与技术系的钱包,二校门硅胶钥匙扣。看起来还不错。

在紫金港校区里逛了逛,发现学军中学真是太上流了。

一试前去超市逛了逛。
买了一瓶听装可乐和一瓶维他命水,我寻思这怎么收钱的,能收我 8.1¥。

收银员:哎呀柜台怎么没有零钱了,那个 XXX(另一位店员)快去找找有没有四个一毛钱。
我:要不找给我 11¥ 就行了吧。
收营员:不行不行,这是我们学校的规矩,该收多少就收多少。
我:好的好的; 内心独白:多收那 0.1¥ 有什么好处吗?

游到了 13 : 40,才进入 513 考场。

卧槽,要用 Linux 的 Ubuntu。笑死,根本没接触过。

编译器用的是 VScode。笑死,根本不会配置。

那这怎么考,记事本写代码?

考试往后延了 15min。也就是 14 : 15 开考,19 : 15 结束。

「THUSC2021 D1T1」:搬箱子

给出一个长度为 \(n\) 的序列 \(a\),和一个限制值 \(m\)

每一轮需要取走一些数:

  • 在取走的数之和不超过限制值 \(m\) 的前提下,取走的数尽量多。
  • 在取走的数尽量多的情况下,取走的数的下标形成的序列的字典序尽量大。

在满足上述取数方案的情况下,一共会进行多少轮?

数据范围:\(1 \leq n \leq 5 \times 10^4\)\(1 \leq m, a_i \leq 10^9\)

「THUSC2021 D1T2」:白兰地厅的西瓜

给出一棵 \(n\) 个点的树,每个点都有一个权值 \(a_i\)

可以在树上选定一个起点 \(S\) 和一个终点 \(T\)
你需要最大化从 \(S\)\(T\) 的简单路径上所有点按顺序组成的权值序列的最长上升子序列的长度。

数据范围:\(1 \leq n \leq 10^5\)\(1 \leq a_i \leq 10^9\)

「THUSC2021 D1T3」:Emiya 家明天的饭

\(n\) 个人,以及 \(m\) 盘菜。

其中,第 \(i\) 个人对第 \(j\) 盘菜的评价为 \(a_{i, j}\)。特别地,如果 \(a_{i, j} = -1\),则表示第 \(i\) 个人不喜欢第 \(j\) 盘菜。

若某个人在餐桌上看到了自己不喜欢的菜,那么他会被气走。

在确定了上菜方案的情况下。若第 \(i\) 个人在场,第 \(j\) 盘菜也在场,那么你就会获得 \(a_{i, j}\) 的收益。

请确定一个上菜方案,使得你获得的收益最大化。

数据范围:\(1 \leq n \leq 20\)\(1 \leq m \leq 10^6\)

「THUSC2021 D1T4」:种树

这是一道通信题。

你需要实现两个函数 encodedecode

  • encode 函数:接受一棵树的读入,将一个长度为 \(128\)\(0/1\) 串发送给 decode 函数。
  • decode 函数:接受一个长度为 \(128\)\(0/1\) 串,将接受到的串还原成原树。

还原出的树和给出的树形态相同即可,不要求点的标号也相同。

数据范围:数据组数 \(T \leq 10^5\)\(n \leq 70\)

把四个题都开了开。T1 感到很棘手,T2 一眼秒了,T3 感到很可做,T4 是喜闻乐见的交互题。

u1s1,T2 这个线段树合并都刻入脱氧核糖核酸里了。整理了下思路,45min 左右写完了。交了一发 CE,修了修,又交了一发 TLE。

再看了看答题须知,噢不要写文件 I/O 啊,那没事了。

又交了一发,发现只有 50 分,最后两个子任务没有过。于是开始静下心来,肉眼查错。瞪了它 2h,交了十几次,还是没有任何收获。

upd:赛后发现了锅,枚举 LCA 的时候默认把 LCA 选进 LIS 了,但实际上不选 LCA 可能有更优的答案,还是我菜了。

时间已经过去了 3h 了,只能先放弃这么送的 T2,去处理其他题。

之前没有玩过交互题,于是 T4 直接弃掉。

在 T1 和 T3 中,觉得 T3 更可做一点。于是就先去考虑 T1 的部分分,最后再全力 rush T3。

T1 只会 \(\mathcal{O}(n^2 \log n)\) 的做法,还挺麻烦的。写完平衡树部分的时候比赛只剩下最后 80min 了。全部写完的时候比赛只剩下最后 65min 了。

交了一发,愉悦爆零。
于是直接弃了 T1。

我不断告诉自己:冷静,还有 T3 可以做。
喝完了最后的可乐,去了一次卫生间。
锁屏冥想了一会,开始想 T3。

想了一会 T3,只会 \(\mathcal{O}(2^nn^2 + nm)\) 的做法。
再看了一眼数据范围:\(n \leq 20\)\(m \leq 10^6\)

草,赶紧码上。
写完的时候只剩下 10min 了。

交了一发,只有 20 分?
在最后的 10min 里,什么 bug 也没有找到。

于是 pretest 70,应该很难有比这个更低的分数了吧。

吃了不会用 VScode 的亏,没有发挥出较高的水准,挺可惜的。

好多人 AK 了,感到恐慌。

坐 1 号大巴摆渡至西溪校区门口,家长已经在校门口等候很久了。

然后就是干饭环节。
印象很深的是一碗面,名字叫做 " 两广很牛牛杂面 "。

好像很大声地叫出这个名字很羞耻。
有 " 异世相遇,尽享美味 " 的感觉了。

21 : 00 的时候抵达酒店。
开了一盘 LOL,只能靠颓废找回自信。

这天倒是睡的很早,22 : 30 就睡了。

Day 2

杭州下起了大雨。

早饭吃的是白粥,感觉挺好。

坐 1 号大巴摆渡至紫金港校区门口,雨也停了,然后直奔机房。

今天的考场还是 513。

坐进位置,收到了新的用户名:day2_thusc_444。
太吉利了吧。

考试往后延了 30min。
也就是 9 : 00 开考,13 : 00 结束。

今天的工程题,玩的是光线追踪。

花了 1h 看了看线性代数的内容。
花了 0.5h 看了看光线追踪的内容。

于 11 : 00 正式弃疗。
Day 2 愉悦爆零。

坚持到了 13 : 00 才出考场。
又是干饭环节,花了 30¥ 买了一张餐票,两素两荤。

学军食堂好像是前半段素,后半段荤。
我误把山药当成了肉,又拿了一个排骨。

我:素菜呢素菜呢,gkd。
队友:你怎么只拿了一素一荤。
我:这不是两荤吗?
队友:伞兵,这是山药。

草,我也不好意思回去拿那一盘素菜。
最后 30¥ 买到了一素两荤,不愧是我。

没想到的是学军还会送芬达和香蕉,非常体贴。

果然消费这一块还是被学军拿捏的死死的。

然后就是坐 1 号大巴去西溪校区听讲座了。

到达大礼堂的时候,Day 1 T4 已经快讲完了。
Day 2 的内容也没听多少。

没有撑到颁奖仪式,16 : 40 就先离场赶火车了。

在火车站的 KFC 里吃了吃晚餐,然后就坐火车回长乐了。

在火车上写下了这篇游记。

结语

学车.JPG

以一名参赛选手的视角来看:题目质量好,选手实力高,工作人员很热心,答题体验很友好。
以一名旅行者的视角来看:杭州风景优美,气候宜人。

还是一次很愉快的经历吧,可惜的地方是没有做好准备,没有发挥出自己的水平。

如果来年还能去 THUWC 的话。 还是很期待能在 THU 本 U 举办的,希望北京疫情能尽早稳定下来。

接下来要做的就是努力提升自己的实力了,加油!

posted @ 2021-05-18 11:39  Calculatelove  阅读(494)  评论(2编辑  收藏  举报