GDCPC2026 游记 & Sol
游记
Before
被期中和各种人际关系搞得很累,深圳的狗屎天气又让人犯风湿,骨关节疼,起红疹,在前一天晚上还因为担心去医院检查了登革热和基孔肯亚热,略焦虑,没睡好,估计一点过睡的。
第二天早上七点半起床了,直接打车一个多小时前往深技大,在车上睡了一个多小时,luanmenglei 和 ckain 在看风景而我直到车到才醒。
发现没有带板子,于是三个神人在考场门口开始手抄 SAM、NTT 全家桶等板子,感觉看着像 csps 赛前对着模板被代码的小朋友一样,还得是我们古法编程。
喝了一大杯咖啡,入场!
Contest
你打过 5h 40min 的 acm 比赛吗?
入场发现题目就在旁边放着,拿起来就能看,似乎还有小朋友直接翻看题目了,令人无语。比赛才开始,luanmenglei ckain 各自看了大半个题,我找到 I 是签子之后直接上机写了一半突然告诉我们比赛延迟开始了?延迟 15min,让我们把题放回去……?
然后乖乖照做了,在这十五分钟内我们尝试读后续写 C 的题面,想了好久不会,这个不是比任意 or xor and 造线性空间还难不少吗(……)
十五分钟过去了,拿到题目,发现是 01 串。彻底无语,队友随便上了下机写完了,直接秒掉了,ckain 写 A 吃了一发罚时,给我气笑了,简单思考并讨论后就秒掉了 F,三人讨论并估测量级后会了 B,但被卡常了一发,这个时候 luanmenglei 秒掉了 K,但很过拟合地写了个线段树二分……,在我写 B 的时候打印代码并调试,约 1h 时,我们过掉了 ICAFBK,这个时候应该是在榜上三位。
然后是 L,我最擅长的博弈论题目,在和 cka 的交流中很快发现可以归纳地做掉这个题,上机发现有些细节没想清楚,稍微感觉了一下就写完了。
开始尝试对 E 进行一些猜测,做了半天才发现,允许 popcount(a&s) 来划分,尝试了发现很对,直接全部加起来除以一个容斥系数,但我并不会推这个容斥系数,我又不是学数学的,赶时间,直接急中生智,把一个有且仅有一条边
(于是就这么在考场上发明了 hadamard 矩阵…… )
这个时候来到了榜上的二位,仅次 mynoghra。
接下来 luanmenglei 直接把 J 的做法看出来了,本质拼好题,前面 dp 后面是快速算单个问题最优化的答案,我当时凭感觉上去写了半天发现假了,犯罪了,赶紧切割,luanmenglei 来求稳接手,我与 cka 讨论了 D,发现就是本质是选取两条相交的两端点分别都为黑 or 白的线段,cka 思考实现,我去看了 H,在这期间 luanmenglei 接受我的烂摊子,经过各种被卡常和爆栈终于得以战胜 J。
在带着思路和 luanmenglei 会合后,我尝试把问题形式化了,在网络流建模未果后直接转化出了类似 “在前缀和数组上做若干后缀加法,使得前缀和数组所有数都非负” 的模型,且效果大的操作代价还更小,这个时候贪心就呼之欲出了,稍微讨论了下感觉贪心很对,直接让 luanmenglei 上机写了一个基于堆和 set 维护延迟删除的贪心,很快就过了。
最后 cka 开始冲刺 D,但因为时间确实剩余太少了,遗憾没能写完求凸包切线。
最终过了 ICAFBKLEJH,没有过 DG。
最终广工过了 E,反超了我们,我们以一百多点罚时惨败了中大25一队,位居金牌区第四,没能捧杯。 感觉还是得加训啊,不够熟练。
感觉这场比赛还是太过 ez,简单题太多了,而中档题的 J 质量不高,比较偏拼好题 dirty work,我们很久没有做dirty work 了,对于 hall 定理理解也不够透彻,所以花了较多时间。
让我不太开心的是感觉这场比赛 gap 太显著了,上来几个题几乎都是纯签到,L 还算比较有趣,从 K,J,开始才出现 CF 2000 左右的题目,比较接近区域赛金牌题的 CF 2500 大概只有 E 和 H 两个题,D 是计算几何不做评价,而 G 就已经达到 Unsolved 的 3500+ 的难度了,没有那种很好玩的以思维决胜负的题。