CTT2023 游记

· · 生活·游记

Day -1

其实我是没有打集训队互测的

当时以为总榜要公开集训队互测的成绩,心里猛地一震。后来才知道是听错了

上午去参观住房。发现我和 lcm 互为室友,有点厉害。然后在 xzy 的房间里面集齐了 HN 小分队。AH 队长马老师和政委也过来了。清澄出逃的身份被识破了,哈哈。

中午跟大家组团去外面吃饭。走了好远 指路过了两家 KFC 终于到了一家看上去能够吃饭的地方,点了一碗杂酱面。可惜没有喝到生椰乳,听 xzy 说这个非常好喝,他每次路过这里都会提一嘴。

下午去试机了!去了 CCF 的 老巢 业务总部,第一题是 A+B Problem,没啥好说的。

第二题是构造题。这并不是什么好事,感觉整个 CTT 生涯要止步于此了。结果把样例多复制几遍之后就过了,感谢出题人。

第三题是经典题,元旦激光炮。之前在 THUSC 试机的时候看到过这题,感觉当时自己做出来好厉害的。

酒店环境非常好!有一个还不错的浴缸。可调节的雾化玻璃很有意思。

观看了《声生不息 · 家年华(先导片)》。

晚上发生了一些奇妙的事情,告诫了我们以后不要喝酒,容易上头。

转眼间就到 10:30 了。

体验了一下酒店的浴缸,快被淹死了 躺了十几分钟后感觉整个人都不好了,赶快逃离了浴缸。由于不知道排水的地方在哪里,所以一直到第二天早上浴缸都是满的。

不得不说酒店的空调质量太好了,不开都有一种蒸桑拿的感觉。本来下午叫工作人员打开了窗户(哦对了,酒店的窗户很特别,需要专人拿一个东西把窗户拧开),结果晚上还是热的睡不着,在床上翻来覆去踢了好多次被子。

Day 1

6:40 起床,晚上又没睡觉,要死了。希望能活过今天。

早饭时间,狂炫了西柚汁和橙汁。

然后就到了考场。不得不提,这个考试用的笔记本屏幕太小了,啥都看不清。这个机械键盘有一种 30 年前的美,根本按不动。

8:30 开考了。先看第一题,不会。打了一个最好写的暴力,但是 WA 了三发,心态快要炸了。

再看第二题,是我没见过的样子,不会。想了好一会想到了一个四维的区间 DP,然后过了 n\le 100 的包,有点超乎预期了。(其实是因为这题的 n 实际有效的范围是砍半的)

再看第三题。哇哦,熟悉的树上问题,但不是熟悉的问法。考试之前就有人提到过 CTT 不是按照难度顺序排布的,所以先从这道题做起。

想了一下,猜了个 O(n) 单次询问的树形 DP,交上去发现过了。这个强制在线的限制真恶心,先思考一下离线怎么做。离线好像不是很难,过了个近似离线的包验证了下猜想。

然后继续想在线情况。发现只需要把数组换成可持久化数组就行了,然后写了棵主席树就过了。

当时有点震惊的,居然能在 CTT 过题,属于是想都不敢想了。

然后再看稍微有一点思路的第二题。把之前的数组换成了 bitset,看能不能冲过 n=600 的点,然后不出所料寄了。手画了点东西,发现之前那个 DP 有两维都是打酱油的,直接去掉就好了。

由于本人的超大常数,这个 O(n^2) 的玩意就是过不去 n=12000 的包。急了,开始卡常。卡了差不多半个小时,真的卡不动了。

于是尝试改写法。虽然记忆化搜索很慢吧,但当时的我可能觉得没有这么慢。把记搜换成直接动态规划后,直接跑进了 300ms,牛的。

此时距离下考只有半个小时不到了。T1 还是一点头绪没有,然后就考完了。

走出考场,发现我跟 lcm 三题的得分情况是一样的,非常厉害。zyf 和 ya 太牛了,居然 AK 了。

Day 1 得分:34+100+100=234

下午是讲题。吐槽环节和直播连线环节很有趣。

然后就去观看的 CCF 的科普博物馆,里面的电脑可以连线 generals,甚至可以原神启动,很厉害。

观看了 ya,lcm,fxt 的斗地主表演,为他们整理牌堆的速度和出牌的速度感到震惊。

实在坐不住了,打算偷偷溜回酒店。联合了 xzy,ya,lcm,zyf,也就是 HN 除了一中的所有人,去体验了苏州的轨道交通。感觉支付方式有点小落后,只能支付宝选定首尾站然后买票。穿梭在空中的地铁是长沙见不到的。

晚饭点的外卖。

晚上观看了《声生不息 · 家年华(第一集)》。

因为太热了,古法加冰制冷并没有什么作用,所以换了个房间。

Day 2

早上去拍大合照。摄像说我们拍照的时候太严肃了,然后发动了大杀器 —— 原神,启动!

行之有效的办法,大家都非常开心,乐开了花。建议以后选拔原神国家队。

拍完之后一会儿就开考了。

先看第一题,构造题,完了,感觉 CTT 又要止步于此了,果断跳过。

再看第二题,完美的数!据!结!构!

然后是第三题,有点神秘的,感觉比第一题还不可做。

那现在唯一可做的只有第二题。看到 n\le 2\times 10^5,时间限制 2s,空间限制 1GB 就感觉不太对劲。

鉴于之前 CTT 有过 lxl 出题的先例,只好硬着头皮做下去,毕竟构造和神秘题我是碰都不想碰的。

平方做法很简单,很快就打出来了。

然后突发奇想,决定另辟蹊径,写了一个莫队。不过要求一个类似于逆序对的东西,所以是 O(n\sqrt n\log n) 的。

我觉得很好了,树状数组的 \log 哪里叫 \log 呢,优势在我!

然后被卡常了。

好家伙,看来需要二次离线莫队。但是我不会啊!!!

硬着头皮写了一下,然后有点幸运的,一次过了,调都没调。希望以后出现的数据结构题也能这么良心。

由于构造题实在是太黑暗了,所以想 T3。想了半小时一档部分分不会,弃了。

那只能做 T1。先打了最简单的部分分。然后从最特殊的性质开始思考,然后写代码,东拼西拼,终于拼到了 60pts。实际上 60pts 以外的部分跟正解已经差别不大了。(实际上,60pts 与正解的最大区别在于一个脑静急转弯)然后最后半小时啥也没干,遗憾离场了。

Day 2 得分:60+100+0=160

出考场后发现比大众分高,有点厉害的。

讲题过程中,zky:我得了 260 就是因为 T1 的那个转化没想到。dx:真的有正常人能想到这个吗?

下午还是照例,集结了 HN 小分队后溜了出去。但这次跟上次不同的时,上次由于等了 10min 每等到公交直接破防,走路回去了。

这次终于等到了公交,但是坐错站了,还是得走好远。

晚上观看了《新闻联播》《焦点访谈》《2023 主持人大赛》。

Day 3

感觉已经过了好久。每天都考一场,连考四天实在是有些超前的。

第一题是感觉不是很正常的 “数据结构” 题。

第二题怎么是那种邪恶的给出很多种操作,然后让你通过操作达成一个目标的题。我到目前,对于这种题的通过率为 0%,很棒吧。

第三题怎么是计数,n\le 200,m\le 19 的数据范围不是很熟悉。

当时就觉得大事不妙,得罚坐好久。

先做第一题,感觉平方做法还是好想好写的。两个特殊性质也差别不大,多点数据结构就行了。

那只剩下正解了。想了半个小时多的数据结构,感觉这种东西不是很好维护的亚子,然后放弃了。

第二题碰都碰不得。看 T3。这么小的数据范围,感觉可以乱搞啊。于是写了个不知道状态数多少的 DP 套 DP。

交上去本来只期待拿个 20 分暴力,没想到得了 60pts,实在是意外之喜。

然后就卡了卡常,多了 5pts。之后就是非常久的无效卡常,分数并没有任何变化反而还有所下降。

第二题为什么不给 checker!!!!!!

写了个最暴力的做法,结果除了样例之外的一点分没拿,因为操作次数刚好爆上界了,牛的。卡了卡次数,终于拿了 17.62 分。

那只有第一题了。不知道为什么,冥冥之中总给我一种这道题要用多项式的想法。

于是尝试想了下多项式怎么解决,发现真的是多项式。

这道题不给模数,担心 FFT 会被卡精度 其实是忘掉了,所以还要写任意模数 NTT,牛的。

然后开始手搓任意模数 NTT,但是我确定忘掉了除了 998244353 以外可选的模数,只记得它应该是 1004535???。所以暴力筛质数,终于筛出来了是 1004535809。

好的,NTT 不知道写没写对,CRT 还忘了。距离考试结束只有半小时多一点了,心态有点炸。

在尝试了各种各样的排列组合后,终于凑出来了正确的写法。距离考试结束还有半小时,但我还得调代码。

还好写挂的地方不多,在距离下考只有 10min 的时候,终于过了,当时我的精神状态是疯狂的。

值得一提的是,这份代码应该是我今年写过的最长代码,有 271 行。不知道调的时候是以怎样的心态调的。

Day 3 总分:100+17.62+65=183.62

好多人都过了 T1,感觉有点意外。xzy 今天杀疯了,切掉了 T1 和 T3。

讲题的时候,有人:我的 T2 checker 写挂了,然后 ....... 出题人接受拷打!

当时提到了一点:D2T2 和 D3T1 的出题人都是 Zayin。这个很重要的,待会要考!

下午去了金砖博物馆。我以为是金砖五国的那个金砖,没想到是真的金砖。

抢到了大巴车的第一排,可惜坐车的时候睡着了。

晚饭是中国汉堡塔斯汀,不知道往汉堡里面塞菠萝是一种什么样的恶毒心理。

晚上回顾了《声生不息 · 家年华(第一集)》。周深唱的真好听。

回到酒店的时候,发生了一些奇妙的事情,告诫了我们以后不要抽烟,容易上头。

糟了,晚上又没睡着。

Day 4

由于昨天晚上没睡着,希望能活过今天。

开考了。先看 T1,感觉挺典的,想了想发现是反悔贪心的板子题。

T2 是奇怪的图论计数,模数是 998244353,感觉有点不妙。

T3 怎么是交互题,还有那个三角剖分是什么鬼。

8:40 的时候,Itst 说 T1 m=1 的部分题意有点歧义,让我们先不要交。

写了一个小时 T1,过了小样例,准备交。

Itst 刚好说数据修复了,于是点开了下发的大样例文件,咦,怎么有 std.cpp?

Itst 发出了尖锐的爆鸣声,然后迅速拷打了出题人。

T1 没了,今天只看 T2 和 T3 成绩。我的心态也炸了。

T3 又是不可做题,所以今天的主要区分点还得是 T2。

还好 T2 出题人给了好多好多的特殊性质,拿了不少的分。

然后继续想想想,大家都在想想想。

突然灵光一闪,发现自己好像会了。打了个暴力验证自己的猜想,发现暴力过了。

然后就是优化环节,好像还挺典的,然后就过了。那今天的区分点岂不是在 T3???

写了各种各样的乱搞,拿到了 33.43 分。

Day 4 得分:N/A+100+33.43=133.43

大家在下午纷纷得知了 D4T1 的出题人依然是 Zayin。虽然 Zayin 之前的两道题我都过了,但是仍要对它今天让我浪费一个小时的行为谴责。

中午吃了 CCF 点的肯德基。

有人发现了选手代码中出现了 pragma,需要手动删除这些提交记录,我觉得挺厉害的。

下午和晚上都好困的,偷偷睡了一会儿。结果晚上就又睡不着了。厉害。

Day 5

回家!