2026 CCPC 分站赛 长春站 游记:六兆年零一夜的 CCPC
lizihan250 · · 生活·游记
午后的时光显得如此的漫长。在一个从莫名奇妙的集体活动中跑路,开完一个几乎是走过场的团会,又在寝室里给手机充好电,再在主楼打印好自己从来没在正赛场上用过的板子之后,终于到了与队友会合的时候。
两个小时的地铁旅途上多少有一些交流,不过大抵是没什么值得记录的事情。倒是到机场后由于身份证过期了导致耽误了点时间,但总之无伤大雅。
上飞机后先是睡了一觉。终于睡到天昏地暗之后清醒过来,吃完盒饭,先是玩了会儿蔚蓝,打玛德琳:泡泡随手打了几分钟没有什么进展。于是又跑去玩茜塔与世界线悖论,长考之后一关也没想出来。于是去玩 vivid/stasis,这下倒是莫名其妙的把紫 lorelei 和 :3c 各推了几百分。总之一直玩到开始降落,于是接着发了四十分钟的呆。
也不知道坐了多久的出租车,终于抵达了酒店。我随手给手机充上电,躺在床上,随手抓了一件衣服遮住眼睛,于是昏睡过去。
夜里不知怎得对被子进行了一次转置,第二天早上直接冻醒了。我轻轻给窗帘拉开一道缝,以在不弄醒 _Vector_ 的前提下赶线代作业。一下又过去了一个半小时。
出发签到。前方有高挂着的欢迎大家参加 CCPC 的标语,还有几组三人小团体。于是作为读地图白痴的我直接想也不想的往前走。走了也许上千米,real_man 才意识到走错了,应该直接在校门口右转。于是我们又掉头徐行至签到处。
签完到发现又有好几个队伍正在朝着远离签到处的校园内部走去。这何尝不是 CCPC 新赛制的一种体现呢?
吃完饭稍作休息,便来到了开幕式的时间点。门口多了一个前往比赛场馆的指示牌,看来是有至少
与预想的不同,开幕式结束并没有立刻开始热身赛,而是先延期了十分钟,再延期了十分钟。延期完开始比赛,结果 OJ 异常的卡,评测结果也要相当长的时间才会出来,以至于我们一度同时等待 ABCD 四个题的评测结果而无所事事。好在后来技术组紧急修复了一下,于是后面又恢复到了正常的参赛节奏中。
晚上两个队友都和朋友吃饭去了。独自填饱肚子后,我先是蠕动着完成了线代作业,然后又是在吃饭回来的 _Vector_ 的帮助下蠕动着完成了高数作业,学会了没思路就洛必达或者等价无穷小乱搞的思想。终于熬完了这个夜晚,是时候睡觉了。
终于到了比赛的日子。按常理而言,我应该先去做交互题 D 或者通信题 I 的。但是考虑到新赛制,我还是决定先做一个签到题再去看这类题目。于是我挑了个题面相当短的 L。
0 是好处理的,相邻的多个 0 一定可以变为一个 0。而且最后一定是 0 和 1 交替的,所以只需要尽可能减少 1 的数量就行了。那怎么处理 1 呢?
realman 告诉我 C 应该是一个匹配状物质。在简单的转述完题面后,我意识到直接每个位置减去
很显然榜上一个题都没有。于是我又回去看 L 了。
或许先研究相邻的两个 1 什么时候能删除。如果它们相邻,显然能删。如果中间有至少两个零,那也能删。只有当它形如 101 时不能删掉。也就是说,如果作差分,差为
这样一想只删相邻的 1 很有道理啊,因为串的长度为偶数,所以原先要一次删多个 1 的操作可以一直往里调到最内层的两个 1,删完之后内层 0 的个数是不比原来小的。唯一的例外是 1111 这种形式,但这时又能分别消去两边。
作差分后一次操作又相当于什么呢?是不是相当于删掉一个数然后把前后合并?这里删掉的数还不能是
总之,只需要分讨一下首尾保留与否,再把贡献加上去,就能把所有情况变成首尾都是
于是我上机写了一发,此时是 59min。WA 了。
我怎么没分讨开头结尾都是 1 的情况?改完再次提交,68min,再次 WA。
咦,A 题怎么开出来了?看一看换换脑子吧。
A 题是给一个网格,每次删一串列连续行递增的网格各减去
再看看 L。简单(?)给 realman 讲了讲当前的思路,讲一半突然意识到自己代码里没有判删除时中间的数必须不是
75min,再提交 L 题,再次 WA。好在紧接着写出来的 A 题倒是一遍过了。
那 L 为什么还是不对呢?
前排不少队伍都过了好几个没有开出来的题。这里一定有 L 题在吧,我想。
哦,原来删除头尾的数的时候并不是简单的把自己删去,它还要把前后的数一并删去。这样也就意味着先操作前后的数是比较亏的,先操作两侧都是
就在我快改完的时候,_Vector_ 先上机改了一下 I 的输出缓冲区,直接过了。我紧接着改完提交了,应该是一炮双响吧?
106min,L 题第四次 WA。
比赛仿佛陷入了永恒的停滞。我盯着 L 试图找出反例,但我先前的思路宛如一堵密不透风的墙阻挡着任何进展。我也没有别的选择:我曾试过跟正在看 E 的 real_man 一起想构造,但在我得到任何进展之前他就给出了相当不错的构造,并生成剩下的部分只需打表完成。于是我又开始与 L 干瞪眼了。
也许这个 L 就是个陷阱。也许放弃才是正确的选择。但是面对这空荡荡的榜单,我要是放弃了 L,我又该做什么题呢?
我没有选择。我只能做这个题。于是我一边啃着鸡腿一边想着题目。对了,所有的非
好像没有诶!(咀嚼)那是不是可以分别把相邻的
相当于每次选一个非
156min,L 题又一发 WA。
感觉明明对完了啊!于是我开始对 _Vector_ 讲述我的思路,希望他来验证。也不知道讲了多久,总算是讲完了。他也表示前半段应该是没问题的!后半段他还要再想想。
然而这个时候 realman 注意到了榜上莫名其妙多出来一个 M 题!于是 _Vector 去看 M 了。研究 L 的又只剩下了我一个。
哦不对,我这才意识到这个贪心是有问题的。除了相邻位置
根据对这类题的经验,猜个结论:当最大值比其它所有数的和都要大的时候等于两倍的最大值减去和,否则就总是能消完。跟 real_man 简单讨论了一下,他觉得有道理。
_Vector_ 的 M 挂了,于是我顺势上机改代码。
199min,L 题第六次提交,第六次 WA。不过 _Vector_ 又改了一下把 M 过了。这是这场的第几个在 L 挂完一发之后过的题了??
“你不一定是跟
现在这个思路绝对是无懈可击了!于是我再次提交!
205min,第七次 WA。
……
难道从一开始就错了吗?
我把整道题目的完整逻辑链重新过了一遍,找不出半点问题。于是我又开始检查代码,仍然找不出半点问题……吗?
原来遇到新的一段计数器我设成从
评测宛如永恒。但是当那第一秒结束而还没有将我的程序打断时,我就意识到这题结束了。
AC!我上一次过一个题兴奋到拍桌子是什么时候?我已经不记得了。
封榜后一看这题居然只过了
后面就没我什么事了。D 题完全不会;B 题一眼给出了一个
比赛结束没多久就开始讲评。F 题好像队友想的很对。B 题说是这个费用是可以动态维护的,而且可以在此基础上跑 Primal-Dual。何意味?
滚榜主持人非常有激情,语速也很快,当然滚榜流程依然不可避免的久。滚出来 9 题 rk9。获得了生涯中的第一块 CCPC 金牌!
滚榜结束后匆忙打车赶往机场。然而发现时间估计严重偏差导致提前了两个小时到达了机场。于是又在漫长的等待后坐上了漫长的航班。很遗憾的是我的手机和电脑都没什么电了,而不知为何碰巧睡不着。于是这次多数的时间都在发呆。
下飞机后打了一辆车回学校。夜色已深,即使是西安这样颇有夜生活气息的城市也已进入梦乡。在寂静中,出租车在永恒的夜幕下向着遥远的目的地一路前行。