CTT2023 游记
精英培训选手。
做了下去年胡测的题,感觉强度很高!不当 rk100 就是胜利!
2023.10.28(胡测 Round 1)
进场看了一遍题,感觉 A 很可做,BC 很牛魔。
于是先做 A,把所有优惠券分成了三部分考虑,前两部分可以直接贪心。
又想了一段时间,找到了一个比较形式化的描述第三部分的方式,然后就意识到了这其实是一个拟阵贪心。
在 1.5h 的时候通过了这道题。
发现 B 完全不会做,写了个搜本质不同有根树,跑过了 34 分。\(n=18\) 要跑 4s 出头,卡常卡不进去,就丢掉不管了。
C 一开始完全不会计数,想了好久才发现这其实是 LGV 引理的形式,先写了 sub125 的 20 分。
后来一直不会做 sub3,在结束前 15min 才发现其实对行列式的定义直接 dp 就行了,还是脑子不太好使。
最后是 \(100+34+30=164\)。
以为是大众分,结果出榜一看是 rk1。完全没想到!感觉很厉害!
2023.10.29(胡测 Round 2)
看完题就会了 A 的五方,想了一会发现对于极差相等的状态 dp 值也一定相等,于是就可以四方。
调得有点久,快 1h 才签上到。
BC 一点不会。
B 先搜了 30 分,尝试做 \(lim_0=0\),分析了一会发现不会,但可以推出来 \(lim_i=i\) 的答案是 \(\frac{n(n+1)}{2}+1\),这样就有 40 分。
C 完全不想做,5 分跑路。但赛后发现似乎可以拿更高的分,有点失策。
坐牢 3h。\(100+40+5=145\),rk26,感觉不算差。
2023.11.4(胡测 Round 3)
被打爆了,一题不会。
拼暴力,A 写了 \(O(n^4)\),B 写了 \(O(n\sqrt{n\log n})\) 的根号重构,C 就是最简单的暴力。
结果是 \(75+65+10=150\),rk15。
又菜又不想练,唉。
晚上想了想会了 A,发现我场上用单次 \(n^4\) 求的东西其实是范德蒙德卷积,没蚌住。
2023.11.5(胡测 Round 4)
先开 A,转为判定后再转化了一下,很快就发现了这其实是一个费用流模型。在 1h 左右调过了这个题。
然后对着 BC 瞪了好半天,都不知道加在一起怎么凑出 30 分。
B 看起来就很诡异,想了一下发现我连暴搜都不会,写 5 分跑路。
C 稍微想了一下会了第一问,\(n\le 20\) 和完全二叉树。
与二叉树大战将近 3h,战斗以我的溃败而告终。
遗憾离场。\(100+5+23.5=128.5\),rk19。
2023.11.7(胡测 Round 5)
开场想了想会了 A 的 \(O(nm^2+qm\log n))\) 做法,具体来说是每次线性空间成功插入时重构,线段树拆位查询。
写了一发,获得了 10 分的好成绩。仔细观察一波发现我在没有 12 操作时都 T 了,也就是说我的 \(O(qm\log n)\) 部分都会 T!
有点太不牛了,但改了改过了 \(n\le 10^5,m=32\)。尝试卡常,但发现改完数据后我怎么 WA 了???问了问其他人发现也 WA 了,那就是出题人挂了,自信即巅峰。
看了看 BC,决定先开 C。
想了想会了前 6 个 sub,于是狂暴码了 8KB,写了好久终于全调出来了。
由于以前没做过维护毛毛虫的东西,现推感觉不仅难想而且难写,就放弃了 sub7,回去看 B。
看完部分分发现他送了我 60,写完拿着。
这时感觉已经有思路了,但时间不早了,A 的数据也修了,于是先给 A 拼点部分分(虽然最后也就拼成 10 分)。
\(45+60+60=165\)。结束时感觉不行,要被一万个人吊打;结果发榜感觉还行,苟在 rk18。
2023.11.9(胡测 Round 6)
开题发现 A 是个乱搞题,BC 感觉都巨大困难。
A 想了想发现凸包上的点是很优的,而答案不可能与这组解偏差太多,所以写了个调整法就过了。
B 先写了个 \(type=1\),然后调搜索调了好久好久。又调 \(type=2\) 调了好久,发现过了三个样例但是 WA 了,怎么改都过不去,自闭。
C 先写了暴力建树计算的 5 分,然而没有注意到把点权转化成边权,没想到树上差分,也没有调出 10 分。
于是就 \(100+35+5=140\) 遗憾离场,rk9。
2023.11.11(胡测 Round 7)
一题不会,暴力也不会,被一万个人吊打了。
\(70+25+10=105\),rk31。
2023.11.14(胡测 Round 9)
开题就会了 A 的 \(O(n(m-n)\log n)\) 的做法,至少有 70 分,但感觉巨大难写,要建完虚树后分好几类讨论。
写了一个多小时,发现写不出来,于是先往后看。
发现原来 C 才是签到!先拿了 100 分在手再回去写 A。
又写了两个多小时,终于调出来了,交上去直接跑过了 100 分。
感觉这场的区分度就在 B 了。想了下发现只要还原出树形态就可以简单构造一组解。
先写了个随机点分治,结果只有 9 分。发现操作 2 数量炸了,要求只能 \(O(n)\) 次操作 2。
那就考虑按深度分层,冷静了一下发现这样甚至只要 \(O(n)\) 次操作 1!那么瓶颈就在 S 的限制!
写了一下拿了五十几分,加了点随机化与剪枝就卡过了 sub7。
感觉这分还是很厉害的,最后是 \(100+63+100=263\),rk1。
还是这样的场适合我这种只有手速没有脑子的选手/ll
2023.11.16(胡测 Round 10)
开题先找了找 C 的规律,拼了根号求单点值,不知道为什么 T 了一个包。
想了想 A 会了个区间 dp,以为过不去 70 就没卡常,结果只有 50。
其实已经观察到所有性质了,但以为没法直接做,还需要更多性质。其实这种严格左偏的结构要想到序列 dp 或者按层确定的。
B 直接在圆方树上点分治有很多分,于是写了这个。最后发现直接在上面长剖就是正解了,但是来不及写了。
\(50+80+30=160\),rk13,遗憾离场。
2023.11.19(胡测 Round 11)
一题不会,花了好久才成功签到成功,没啥好讲的。
最后是 \(41+10+10=61\),rk20。
2023.11.21(胡测 Round 12)
noip 的时候 ljr 就预告了他的题将作为签到题出现在今天胡测。
于是看了看三个题,发现 B 是签到,迅速写了个 1log 过了。
A 不会一点,所以先开 C。但我事实上 FWT 没学明白啊,也不太会做这种题。
于是先写了个 \(O(n2^m)\) 的暴力,拿了和 \(O(n^22^m)\) 一个分。想了想发现记忆化一下就可以做到 \(O(n\min(n,2^m))\)。
想了好久特殊性质结果不会做,赛后发现是线性基,有点溜大。
然后是 A,先写了暴力和树的分。后来找了一下基环树的规律过了 sub3。
\(15+100+44=159\),rk12。
2023.11.23(胡测 Round 13)
写了一整场 lzq 的 B 拿了 0 分。
\(25+0+10\)。
我没有垫底!我是倒数第四名!
2023.11.25(胡测 Round 14)
进场以为 A 是经典 wqs 二分,写了一下发现过不去样例。
想了好久才发现在有约束的情况下,最小边权和生成树和最小瓶颈生成树不是同一个。
顿时感到有点恶心,但这样可以直接贪心。想了一下可以直接 LCT 维护,那就过了。
B 有一个建出笛卡尔树后的 \(n^2\) 暴力,稍微写得优秀一点,再加个记忆化直接冲过了 sub3。
C 感觉很可做,但没时间了,写了一个暴力就跑了。
\(100+70+32=202\),居然上 200 了!最后是 rk9。
2023.11.28(胡测 Round 16)
开题发现巨大困难。A 想了一会只会 sub3,于是先开 B。
以为可以 2sat,写了一会发现假了。没办法,只能回来做 A。
瞪了好久会了 \(a_i\neq 1\),又瞪了好久会了求某给定数组的答案,基于此拓展不难得到三方 dp。
调完已经 4.5h 了,急急急。感觉前缀和优化细节有点多,来不及写,就先拼后两题暴力。
\(76+14+21=111\),rk14。
感觉有很多分会但是没写,没有时间!还是水平不够。
2023.11.30
教练说明天没有合适时间的火车或者飞机,于是今天就出发了。
太美丽了,苏州。
气温比福州低了快 20 度/xia
2023.12.1
住进了 ccf 订的五星级酒店。室友是树哥。
房间里非常炎热!我脱到只剩短袖都受不住!空调开制冷吹的还是热风!最后联系前台帮忙把窗户打开了,终于可以降温了/ll
下午试机,感觉 ccf 总部十分富丽堂皇!
电脑是 thusc 同款抽象笔记本,ctrl 键位不对。配的大键盘打击反馈很差,手感很便秘,最后还是选择用了笔记本的键盘。
ljr 带了蒸。晚上到他房间开了两把,内奸都赢了,厉害的。
2023.12.2(CTT Day1)
最后的巅峰/ll
开场一打开 VScode 电脑就炸了,联系工作人员重启了一下。发现 A 是简单题,稍微画一画感觉就会了,刚开始写代码电脑又炸了,喜提 10min 加时。
由于我的做法基于特殊性质,想着先写一下验证正确性,交了一下发现 WA 成 0 分。怎么会是,瞪了二十分钟找不到问题,想着写个暴力拍一拍,结果暴力也 WA 成 0 分了!
又瞪了十几分钟暴力找不到问题,红温了,就先 skip 掉了。B 感觉是建括号树搞一搞,一眼没秒。先往后看,发现 C 直接线段树合并就做完了。
写了一发过不去样例,调了半个小时才调出来,交上去过了 100。
调 C 的期间通知说 A 要输出行末空格才行,纯纯逆天,交了原来代码就有分了。写了写正解过了样例,但只是多过了一个特殊性质。想了一下发现漏考虑了一点东西,但问题不大,可以修一下。一开始又改挂了,但过了 sub1,最后和暴力拍了一下才调出来。
时间所剩无几!B 来不及细想,写了个最愚蠢的区间 dp 拿了 50。此时发现好像直接做就做完了!急急急。写写写。最后在加时的 10min 中没有写出来。
出来发现加时的六个人中有四个福建的,真是太厉害了。
分数是 \(100+50+100=250\),rk18。排名和我胡测平均水平差不多,这时我很自信阿,感觉自己很厉害。结果后面几天就烂完了。
讲评的时候没收草稿纸,查了查成分,发现有些人在稿纸写了些很有意思的东西。感觉自己素质有点差了(
下午观看 CCF 博物馆,但我觉得没啥好看的,就跑到楼上蒸。
今晚休息一下,主要在看录播。
2023.12.3(CTT Day2)
感觉尽力了!
开场发现 A 是构造,B 看起来比较简单,C 是 GF。不是很想先开构造,那就看 B。
一开始以为是对线段容斥,但发现似乎没法简化情况。但思考了一下发现枚举第一个物品的选取后,计数形如区间逆序对,那么直接莫队二次离线就做完了!剩下去重的部分是简单二维数点。
先写了一下 \(O(n\sqrt{n}\log n)\) 的版本验证正确性。但改成二次离线的版本后 WA 飞了,调了好久才发现是去重的时候的树状数组没从特殊性质改回来,上界只开了 500/tuu
先想了想 C,没有意识到 \(\mod 2^{64}\) 的重要性,发现我不会 sub1!而 sub2 是离散对数,我只会 BSGS!那就一分不会!
全错了,那这场对于我来说就只剩一个题了。将近四个小时做一个构造你能秒我?还真能!
虽然思路似乎和标算差不多,但完全没有意识到时光倒流,只会宝宝搜索!
最后是 \(15+100+0=115\)。rk51 感觉比较低,但单天似乎还在候选队线左右。当时感觉优势在我阿!
很多人过了 A 这种人类智慧题,但是 B 这种训出来的题只有比较低的暴力分。感觉自己加训完全打不过这样的天赋哥阿!
下午的既定社会活动就是打牌,直接开蒸!晚上继续蒸。
2023.12.4(CTT Day3)
最唐的一集。
开场看了三个题,秉持着 CTT 难度是乱序的想法,感觉 C 看起来比较简单,而 A 看起来比较困难。
那就先开 C,想着找到一个充要条件来判定,在草稿纸画了好多种情况分析,找到的判定条件却一直 WA 成 0 分。
有点做上头了,没有 skip 掉而是继续嗯分析。在总算找到一个能过 7 分的判定方式后才猛然发现,这玩意似乎根本没法 dp!
很没救!尝试修一修,但发现不大行。这时比赛已经过了 3h 了,在意识到这个题救不了后,我没有给暴搜剪枝,或者写个 dp of dp,而是直接跳过去看别的题了。
先看看造计算机题。作为一个 APIO2023 写 C 的 66 分写了整整 2.5h 的选手,我完全没想这个题的正解,写了个 \(3n^2\) 就跑路了,但左移右移搞反还是调了我好久。
留给 A 的时间不太多,想了一下发现我一开始看错题了,他要求的排列是从 1 开始的,而不是值域连续段。这样只有 \(O(n)\) 个贡献,分类讨论后就会了 \(O(n^2)\) 的二维数点。
交上去 WA 成了 0 分,发现自己分类讨论漏了好多情况,改了好久才拿到了这一档的分。由于我是对序列二维数点,没有在值域上考虑,所以我没能很快的意识到正解的做法。
此时距离结束只有 20min 了,我没敢继续想这题的正解,只能尝试去拼 \(k=1,k=\frac{n(n+1)}{2}\) 的分。在最后五分钟,我写完了,结果交上去 T 了!
狂暴卡常,加了标记永久化和递归 query 的剪枝,但在 13:29 交的代码还是不能过。
光速逃离考场,不参加任何讨论,但还是在吃饭的时候接受了同省选手的嘲讽/ll
\(25+17.64+7=49.64\),rk86,这下真垫底了。
讲评刚开始的时候通知 Day3 降权,原因似乎是因为 A 是 xcpc 原题加强,一车人做过。感觉很傻逼,但这是不是代表我还可以救一救?看了看现在的 Current Standings,排名直接前进了十几名!
发现三个题似乎都在我的能力范围内,受不了一点,怎么会打成这样???
既然成绩烂完了,那么社交是不是就不能也烂掉呢?该摆还是得摆!社会活动是参观金砖博物馆,谁去啊?继续蒸!大蒸特蒸!
晚上就不蒸了,调整一下状态。明天还是想稍微翻点盘的。
2023.12.5(CTT Day4)
最唐的一集 2.0。
开场看了三个题,感觉 A 比较擅长,B 是个图上计数,C 是个奇怪交互。
那就先做 A,发现在枚举孤点个数后可以反悔贪心。先写了个暴力,期间通知说 \(m=1\) 有问题,让我们先别提交。但我发现我 \(m=1\) 和出题人似乎错的一样,那就不管通知直接交。
写完后观察了一下,猜想答案是凸的,写了个二分过了所有样例。交上去 WA 了,但判了一下边界情况就对了,感觉很厉害。稍微卡了卡常就过了 100 分。
刚交完代码,通知说 \(m=1\) 修好了。点开下发文件一看,蚌埠住了,怎么有个std.cpp
?
然后开始乐,大家也都开始乐,CTT 顿时变成了搞笑比赛。不久就通知说今天取消第一题,并降权。好消息是我可以通过 Day1 和 Day2 往上走一走。坏消息是,我刚过这个题就取消,那不是亏麻了?
没啥办法,只能往后看。然后发现 B 是个简单题阿!但我一开始想错了,以为是边双,写了一发只能过树和杏仁。
之后不知道为什么就很急,开始犯病。把特殊性质的仙人掌理解成了点仙人掌,写了个特殊性质居然和原来的代码拍上!
百思不得其解,对着代码瞪了好久都不知道为什么,甚至还怀疑是数据有问题,在 OJ 上提问。最后是写了个暴力拍才找到问题,发现其实要求是点双!特殊性质是边仙人掌!
到现在还问题不大,我还有两个多小时的时间,把边双改成点双不是轻而易举…………吗?
再次开始犯病。边双的维护方式基于每个点只在一个边双内,所以可以对点开并查集。但我第一时间没有发现可以把对点并查集改成对边并查集,而是把每个点双挂在上割点上嗯维护。这就需要一些 set 和一些倍增。
接下来的时间里,我一直重复着这一流程:改完代码 \(->\) 交上去 WA 了 \(->\) 拍 \(->\) 找到 hack 数据。
做上头了,红温了,一直对着这个繁琐的做法改。完全不想写第三题的暴力,或者稍微 skip 一下想想更简单的维护方式。
也许是上天不想我死得太难看,我在结束前 5min 终于把代码改对了,把这坨屎山交上去拿了 75 分。一些地方的复杂度我为了先把正确性改对,写的是暴力。但显然没有时间改对了,最后给 C 写了个 \(n^2\) 就结束了,特殊性质 1 查了一分钟写完。
\(75+5=80\),rk69,虽然最后救了一点,但还是很唐。
总榜好像是 rk53,甚至没进前 \(50\%\)!但我校 noip 考了 260 分的 lzq 成功吊打我,进入候选队。
每次 OI 比赛前我都会告诉自己不要一直对着一个题,一个做法死磕的。但在 CTT,我连续出现了两天这种情况。
也许是因为太过盲目自信了吧,几乎每场胡测我都能进前二十,仿佛自己真的有这种水平似的。上次这样自信还是 NOI,结果甚至没过前 100 线。
有什么理由相信一个 CF 和 AT 都是臭 2600 的人有这样的水平呢?
唉,还是任重而道远。
但作为精英培训选手,因为成绩 emo 不大行,旅游才是主要目的!
下午继续开蒸。
记录一下最有意思的一把:我反贼拿了张角,而我的下家是忠臣司马懿!主公方几乎全员被铁索横置,但场上有闪电可以秒我们反贼。
危机时刻,反贼队友左慈拿到了张郃当化身,直接把闪电移给了司马懿!虽然这张闪电被拆了,但我的牛马里还存着一张闪电!
靠着这张闪电,我们直接把对面全劈死了。
晚上继续在 ljr 房间蒸,但大约到十一点多人就不够了。茶话会到了一点多才回房睡。
2023.12.6
坐了 7h 高铁回福州。
2023.12.7
说到交友,这趟 CTT 我似乎没有新认识多少人。
尽管我一直声称自己是社恐,和我比较熟的人却都不相信!和比较熟的人,我的表现确实很像社牛。但我完全不敢和不认识的人主动说话阿/ll
我新认识人几乎都需要别人和我主动说话,或者共同参加打牌之类的活动积累一定时间。抑或是抱紧社牛(Linshey)的大腿,跟着他们去认识别人。
比起其他人,和我熟的选手的数量相当少。这一方面要归结到我的社恐上。而另一方面来说,这可能又归结于我从来不去那些主流的培训而只呆在福州,这就导致我没机会认识别人!
好想和大家认识阿/ll 有没有人主动来认识我阿/ll