2022CCPC广州复盘


经历上周的沈阳打铜之后,这周广州又打铜了,而且还是差点打铁的水平,哈哈。

热身赛

热身赛看了眼四个题除了C题外全都做过,有三个是去年广州的原题,写了两个简单的之后,帆哥看了眼C说这不是一眼三分吗,不过我说我想写写B就让我上机了。B是2021广州的G题,是个莫队套线段树,我信誓旦旦的说这题我做过,结果我第二次写没过,哈哈。后来结束之后找了好久的原因发现是线段树合并的时候多求了个gcd导致TLE啦,并且发现以前写的时候跑的慢是因为块大小算错了(少开了个更号)。改完之后在cf上跑了2s就AC了。

正式赛

正式赛当天7点就起了(貌似是近半个月起的最早的)。然后去比赛场地布置完之后开始恰mdd早餐。开局zty就读错了签到题的题意,导致帆哥推了好久的样例推不出来开始质疑题意,于是理解正确题意之后就签完了第一个到。之后第二题由于我没看清楚题目的加粗部分导致判断的范围多了$2$然后就拿到了全场第一个WA。第三个签到看着像个博弈,玩了一会之后zty说这不是摁拿就完了然后就过了。之后,三个人就戴上了痛苦面具

我们先看了I题,我看了眼范围和输出就说这肯定是个树上背包,可是研究了半天都不会 有多个感染源 的情况。然后帆哥跟我们说题目给的每个点为感染源的概率是 $\frac{a_i}{\sum a_j}$ , 所以肯定只有一个点是感染源,此时我和zty都不相信。又想了一会之后我感觉有多个感染源的情况是不可做的,然后试着把样例给的概率加起来,发现正好等于$1$,这时我才知道帆哥说的是对的。于是我开始想怎么处理只有一个感染源的情况(此时大概过了2h30min)。

这中途队友看了M和C,对于M我感觉一眼数位dp,但可惜我上一次做到数位dp还是在上一次,已经完全不记得该怎么处理了,然后我问了问帆哥和zty怎么做数位dp,结果我们都不会

对于C题的构造帆哥有点想法,就上去敲了,此时我还在想怎么树上背包。之后我想了个转移式,在帆哥下机的途中敲了敲,这期间就是我们两个互相上下机,谁卡了就换另一个,调了好久我终于成功算出了以某个点为感染源时的答案,可惜按照我的做法得对$n$个点每个点为根跑一遍树上背包,时间复杂度来到了$O(n^3)$。

此时帆哥的C题还在WA,zty在搞M题。之后我想了想好像能通过换根来计算其他点为根时的答案,但是敲到一半发现背包好像不能撤销,然后就寄了,我在望着代码发呆

最后C题也没有调出来,I题我根本不知道要怎么优化,M题也不知道该咋搞,复刻了当初CCPC Final,三线开题,三线卡题,最后封榜前rk128,于是就寄了。

后记

比较意外的是揭榜之后发现我们在rk135,居然没有打铁。

然后发现I题可以多开一个状态(赛中我在想的都是通过一个状态直接转移),这样就能用树上背包直接处理出所有答案了,而且I题的定位还是简单题,而且比赛前我还专门练习过树上背包,然而我却没写出来,还是太菜了。

现在我们队的状态可以说是越来越差,一场不如一场,这个趋势的话可能下周就铁了吧。

最近真的好忙(又要应付课程又要出题管理新生啥的),训练比去年这个时候少了也是事实,打算下周多抽空训练训练恢复点状态吧。