CCPC 分赛站 郑州站 游记
lizihan250 · · 生活·游记
:::warning[剧透警告]{open} 警告:本文包含剧透内容,涉及比赛包括:第 11 届 CCPC 中国大学生程序设计竞赛济南站,第 11 届 CCPC 中国大学生程序设计竞赛郑州站(热身赛),第 11 届 CCPC 中国大学生程序设计竞赛郑州站。 :::
2025.11.21 Day 0
抵达郑州时正是午后。大街上没有几个人几辆车。
郑州的红绿灯有些神秘,部分红绿灯是不显示的,需要通过其它的红绿灯推断当前信号灯的状态。
到达酒店,放下行李,与队友一起出去吃了烤肉。回酒店,_Vector_ 说要睡觉,于是不想睡觉的我决定到 real_man 房间。
然而实际情况是,real_man 过了一会儿也睡了。
然而实际情况是,我过了一会儿也直接趴在桌子上睡着了。不过我睡的时间并不算太长,以至于我醒来之后发现 real_man 还在睡觉。
等到大家都睡醒了之后开始 VP 济南站。
根据武汉站和沈阳站的经历,似乎我应该上来先看 C。于是果然发现 C 是大水题,一个 DP 秒了。于是写了一发。挂了。发现把字符串长度上限设为了字符串个数上限,改完过了。
这都能罚一发?
然后看 M,不会做。看 L,感觉可以对每一层分开考虑,交换两个人的时候暴力修改一下。这样是修改是
显然我是不会写数据结构的。于是简单的跟 real_man 交流了一下之后他去写 L,我继续往前看。
看 K。先大胆猜测了一下答案不超过
那我对于她手里自匹配的牌,只要在每一对这样的牌前分别加一张自己手里的匹配牌就行了。至于我手里与她手里都有的牌,我只需要把她出牌顺序的序列记下来,然后向后平移一步就行了。
L 还在写,我先去看 F。
F 有些段是固定的,这些段的代价不可避免。剩余点如果有超过两个选择方案,那必然是可以和前后独立出来的。否则试一下这一组连续二选一段落能不能与前后都错开,如果不能的话中间花
那如果一段只有一个数,且它总是会和前一段或者后一段连上呢?
那就总是选较短的一段连上,如果一样短选前面那段。因为一段最多加两次,所以这样一定是不劣的。
还有 E。E 直接对于每种颜色建一棵虚树,然后枚举虚树上每个点是多少个集合的 lca,以这个集合作为
此时队友表示 L 要看一下。于是我把 K 先写了。一发通过。接着 L 也过了。
接着就开始写 F。写完提交,挂了。
为什么呢?因为单点的情况没有判它是否与后面那段相等。改完提交,还是不对。
为什么呢?因为我把
为什么呢?
现在 _Vector_ 在想 A,real_man 在想 E 有没有好写的做法。我在对着 F 大眼瞪小眼。怒调 2 小时无果。
最后发现是在填数的时候使用了假定法,但反悔的时候忘撤销了。改完过了。
那这场倒闭完了,而且后面我也帮不上忙。
不对,好像 H 非常可做!
用常规的二叉树数量统计的方法先写了个框架。接着经过长时间的推导和对数据的拟合,把小样例全过了!
就是……模意义下除以
怎么模数可以是合数??
那没救了。
A 题最后会了,但也没调出来。
彻底失败。
感觉被 CCPC 克制了啊,一个 Ag 两个 Ag。不过往好处想起码不是个 Cu。
感觉后天(不过已经后半夜了,所以说明天更适合?)也要 Ag 了啊!不管了,前面那 20 个出线队打不过也正常。
2025.11.22 Day 1
上午签到。签完到差不多已经是吃饭时间了,于是在学校食堂吃饭。
食堂离比赛场馆相当近,而且选择非常多(起码对于一只猫来说够了),满意度 + +!某某赛站学着点。
怎么一个学校的所有队伍的牌子是一起发的?我们还要把另一支队伍的牌子带过去他们才能进场?满意度 - -。
吃完饭回酒店睡大觉。看到牌子上标的 3 点半的热身赛,我定了个 3 点的闹钟,然后就倒在床上晕过去了。
下午 2 点 50 醒了。迷迷糊糊看到隔壁队伍在群里问“你们什么时候出发”。
“我们再过几分钟出发。”
“那不是开始热身赛了?”
诶?不是三点半吗?
“胸牌错的,要看册子”
于是赶忙叫醒队友紧急行动,慢慢赶到赛场(跑步可能会快一点,但谁会刚睡醒就跑步的?)。看热身赛。
A 题是原题,直接找所有的最大值就行了。于是 real_man 写掉了。
B 题
“哦它好像暴力就行了”real_man 说。
哦它好像
至于 E 题……猜出题人生日??
究竟是谁想出来的这题??
通过 QQ 群侦察找到了一个出题人的生日,不过我不确定它对不对(毕竟我 QQ 生日也填的是假的),于是我决定先看后面的题。
“C 题枚举前面加多少个数推推式子就行了。”_Vector_ 说。
“那要不你写一下?”real_man 说。
“不行,我要压榨 real_man!”
那既然他们都会 C 了那我直接看 D 吧。
D 是个树上计数题。我先提出了一种树上背包的做法,然而在换根的时候遇到了问题——树上退背包(应该)是
于是我上机把 E 写了,发现之前搜集的信息居然是对的。然后顺便测试了机速,用题目中给出的式子能跑
然后 C 到最后也没调出来式子错哪里了。
被热身赛击毙了!
晚上在路上想出来了 D 的做法。感觉挺有道理,不过也没心情验证了。
晚上随便跳了几道数论题。第一题是个大水题,被 _Vector 秒了,一看 *2800,感觉完全没有这个难度啊!第二题猜出结论了不会证明,一看证明发现看不懂。数学定理这一块。第三题完全就是天才啊!一开始我和 _Vector 完全没有看出来这是哪门子数论,结果一看题解,对那个
上床,很快睡着了。
2025.11.23 Day 2
早早起了床,去学校吃了早饭。不过好像都是我在吃,_Vector_ 习惯性不吃早饭,real_man 也只是点了一杯豆浆。
背包不能带进考场。不过存包处秩序还挺不错,从这点来讲应该夸夸承办方。
手机记得关机……诶我手机呢?!
于是 real_man 陪同我赶到的食堂,发现我手机落在食堂桌子上了。还好没丢掉,不然真随时都有可能失联了。
开场了。
根据前两站的经验,开 C 题准没错!于是开 C 题。
哇是
M 题看起来就比较简单了,而且榜上也陆陆续续的有人过了。这题应该不难!让我想想。
假如第一位是
上机写了一发,29 min 提交,WA 了。一下子调不出来,此时 real_man 会 B 了,于是打印代码,让出机位。
过了一会儿发现是前导
再看了一会儿发现有个分支写了个小错误。于是直接上机改。64 min 再提交,终于过了。
完成了本场卡题任务!接下来一定会很顺利吧!
_Vector_ 随后把 G 写完了,68 min 提交的时候没过,稍微改了一下,70 min 的时候过了。
接下来看 J,推了一下找到一个非常优美的性质啊!real_man 上机一写,怎么对不上样例?
“你这个结合律少异或了一个啊。”real_man 说。
哦,式子推假了。那怎么做呢?
接下来 real_man 开始打表找规律,而我尝试从理论角度进行分析。两个
后来,我意识到两个
于是上机写代码,155min 时提交,挂了。难道我这场要卡两个题?
于是写了个对拍,磕磕绊绊的把问题拍出来了,发现之前的代码允许结尾不止一个
为何呢?
此时 _Vector_ 的 D 会了,于是我打印代码,让他上机写。瞪眼等了一会后发现有个地方循环上界小于等于写成小于了,改完再交,162min,过了。
怎么已经进入后半场了?
接着 real_man 和我说了 I 的一个大致思路,说是能用多项式优化但显然这题不能这么做。我花了很久才理清楚他的思路,然后也不知道怎么优化。接着他又提出了一个
趁 _Vector_ 整理 D 后半段的思路时,real_man 上机验证了一下
就是……这带个组合数系数还不定,怎么优化啊?感觉很困难啊!不过一定是因为我太菜才想不出来的,这感觉很像正解啊!
于是乎我最终终于在数小时的思考后放弃了。转向其它题目,也是一个比一个不可做。
D 也写不出来。
整个后半场,我就像无头苍蝇一样乱撞,做不出任何实际的贡献。而且这还是 CCPC 赛场,没有部分分能打——比起虽然不会做题但总是能想特殊性质的省选来说,坐牢多了。
最后时刻 real_man 想出了一个和前面的做法毫无关联的容斥,而且听起来更有道理了!
就是没时间写了……
于是比赛结束了。
吃饭。马斯卡彭好吃!
一定是上海那边把郑州献祭了,上海要 3 Au 了吧。
怎么上海那边也倒闭了?
看讲题。real_man 说 I 题最后想的做法完全正确!有点可惜。不过多一题也金不了,倒也算不上遗憾了。
K 题跟我想的第一步就对不上。哈哈!
滚榜,毫无疑问的银牌了。
听说上海三块银牌。我们学校银麻了。
不过没关系,至少还是银牌中位,比 VP 济南的银尾好!不是铜牌就不算输!
上台领奖的时候借了队友的猫耳帽子。怎么感觉我比队友更适合这顶帽子?
赛后和同校另一支队伍一起吃了晚饭。一支签一块钱的火锅,性价比还挺高。晚上坐高铁返校。
感觉这场银牌也正常吧,不是说哪道题明明会但是没写完(其实 D 题算这种情况,但问题是 D 过了也是 Ag),纯纯是题目不会做。不过后半段完全零贡献有点对不住队友们了。
武汉的 A 题,沈阳的 A 题,还有这场的 I 题,怎么每一场的数学题都没做出来?这下必须要加训数论还有计数了!
两场 ICPC,一场 CCPC,学期内的比赛也就圆满结束了。下一场,我们 EC Final 见!