记 2022 CCPC 绵阳区域赛
start at 2022/11/21?

比赛时间是在昨天,2022年11月20日,趁记忆还有热度,稍微记录一下吧( 虽然可能会拖到之后写

好的,现在是11月26日,让我们来回忆一下吧

因为当天有icpc合肥,309要让给icpc(因为集训队管理人员里权力最大的要打icpc

所以比赛地点是赛北310,我倒是蛮喜欢310这种平行的座位,换位置比309方便,反正可以白嫖309的椅子

比赛九点就开始了,所以定了一个七点半的闹钟,强行把自己从床上拉起来,真的困得要死(昨天晚上游戏王打到3点才睡

做好大概的洗漱,背上电脑睡眼朦胧地出门了,直奔超市买了一条长的和一条中等长度的士力架当午饭(这比赛可是从9点到下午2点,真的是体力活啊),出超市怕今天状态不对,在瑞幸小程序斥巨资点了热半糖的生酪拿铁,然后去G3大酒店买了一碗南瓜粥配榨菜和一个蛋饼夹土豆丝,吃的可香了,G3大酒店的早饭又便宜又美味,可惜就是早上起不来,取完咖啡去赛北了

image-20221126173332423

这学期第一杯咖啡?

到310的时候已经8:30左右了,发现队友都到了,差不多都登陆好了,志愿者还没到,我也赶紧开始oms一条龙,期间扫错了好几次码,后来发现集训队的大群根本没发绵阳的码,很难不说是熬夜的问题,很快就登录进去了,然后按照惯例去赛南2楼灌开水上好卫生间,回到310和队友一起躺尸睡觉,我不敢说我3点才睡,怕被队友骂死

意料之外的,志愿者在比赛开始前几分钟到了,这个志愿者是H3班的女生,我和队友对她的印象就是不靠谱,虽然CCPC已经不跟拍上厕所了,但是还是怕遇到什么特殊情况(伏笔)

比赛开始,发现页面上有写交互题的提醒,知道这场CCPC有交互题,因为昨天热身赛就有一题二分的交互题所以也没啥意外,点进A发现是dota2的ban pick,但题面很长感觉不像是签到题skip了,队友发现有一道题目和昨天热身赛的题面几乎一模一样,感觉可能是签到题,但是感觉不可能和昨天完全一样,于是我们都逐字符扫描哪里不一样,最后发现这题目居然是交互题!!这交互题和cf上的交互题还不一样,它只允许我们读取一次输入

image-20221126175207069

只能读取一次输入

本想让队友先把昨天那题代码再敲一遍,但是看了下榜,交了20多发没一个人过,感觉非常的奇怪,顺便看了眼队友在干啥,TomiokapEace在看G题,ADguy在看C题,我继续盯着榜,不久之后ADguy和我说了C题的题意,想了一会两人恍然大悟,只需要把深度2的点的最大深度子节点的深度加起来就行了,确认了思路的正确性之后决定开始敲代码,ADguy敲完向前星的板子之后起身了,是让我敲代码的样子,我因为昨天熬夜太晚的原因感觉有点心虚,但看上去这是签到题的难度,我就坐下了机位,开始敲dfs,敲完之后运行,过了样例,试了下队友给的样例,错了,然后开始短暂的盯代码环节,没盯几秒ADguy起身要敲个双dfs的代码,我就让位,在屏幕上继续看自己代码的问题,看了没一会发现我dfs外层取最大值的数组名取错了,导致它只能取到子节点,修改完之后过了之前的样例,1A了

image-20221126201509132

#170

继续看榜发现G也能做,然后TomiokapEace已经翻译好了题意,说每次操作只保留峰,求最后只剩一个人时的操作数,想了没一会,ADguy说直接模拟对不对,然后我们分析了下发现每次操作模拟的话每次会删掉很多数,时间复杂度也是log级别的,完全可行,于是TomiokapEace直接开敲,我看了会榜然后开始看TomiokapEace敲代码,帮她造了点样例之后交了1A

image-20221126201532245

#116

继续看了下榜,发现还有两题可做,一题是石头剪刀布,另一题是一个构造题,鉴于之前两次比赛都失在找规律题的教训下,TomiokapEace开始写暴力打表石头剪刀布,ADguy看懂了构造题给我解释题意,我一听发现这题意就是个生命游戏嘛

image-20221126205258482

生命游戏

之前接触过,知道它是一个有限还是无限状态机,要求是输入一个周期数,要求输出的初始图能在那个周期数刚好全部死亡,然后我就短路了,感觉要在指定回合数刚好死亡,这需要把生命游戏给理解透啊,然后我看了下要求,输入只有100,我就提出结论,这题只要本地暴力枚举打100个离线表肯定能AC,ADguy表示荒谬,我想了想要写个状态机,还要暴力枚举初始点,很多状态可能都是永生状态确实有点难实现,就转而放弃去找特殊例子了,然后我干脆在一条直线上横着画了3个点,然后发现这个周期数是1,又画了5个点,发现是2,于是把发现和ADguy说,他表示好像是这么一个规律,我说要是这么简单应该过了一堆人了吧,然后TomiokapEace去旁边看虚拟打印的表找规律,我坐到机位刚准备敲,看了一眼题目给的例子,发现旁边死掉的点还会重生,然后就假了,又坐了画一会,ADguy问我说斜着来是不是就行了,我试了下,我去还真是,然后我说我状态不大好让他来敲,然后1A了

image-20221126201601690

#60

最后压力来到了石头剪刀布上,题意很简单,给一个石头剪刀布数组,相邻两个比一次,把比赛结果进入下一层,问你最后一层是谁赢了

image-20221126205400112

石头剪刀布の塔

我感觉这和斐波那契数列很像,往矩阵方向想了,队友则表示还惦记着你那b矩阵快速幂呢(之前有一场一个结论题我歪解出矩阵快速幂,但是板子抄错了加上常数大,最后赛中没过,赛后得知是结论震惊一年),然后队友开始敲他们的猜测,我开始研究矩阵怎么继承下一层的状态,ADguy发现连续重复出现的可以直接抵消掉,于是大胆猜测模拟按顺序找三个不同的比一次,胜者进入下一层,写完之后用之前打的表的数据验证,发现有反例,经过多次修改,还是有反例,我分析出了问题说这样的思路可能会导致中间一些状态消失,但是如果想让所有状态都保留,时间复杂度肯定是会爆炸的,于是经过我的一番验证我就直接大胆提出直接用第一个状态和后比,保留胜利状态,最后那个留下来的就是答案,经过一番代码的敲,反复修改后也能找到那几个始终过不去的样例,不得不说TomiokapEace这样例真的太好了,成功了保住了罚时!经过了我的一番分析,发现我这种做法会让那些本来输掉的状态留下来,是多状态,于是又开始了坐牢阶段,TomiokapEace表示没思路了开始看A题的ban pick,过了十来分钟上了个卫生间回来,还是没有调出来,于是我开始继续往状态转移的方向想了,甚至还觉得这是 大数运算+矩阵快速幂

image-20221126211122972

俺坚信の矩阵快速幂终究还是没有用上

看着过的人越来越多,就开始急了,随手开始翻板子,翻着翻着翻到了单调栈,就想会不会是个栈,结果手推,我去还真的可以,然后发现因为直接遍历多状态中多的状态是能被之前打败的状态打败的状态,打败别人不一定会胜利,但是被别人打败一定会输,所以如果当前状态能打败栈顶元素就让栈顶pop,否则就push自己,结果一番代码の敲,又又又发现了反例,但是由于我对我思路的自信,手推了一遍反例,发现按照我的思路算出的就是正确的答案,然后开始调代码,发现我pop的时候没有写进while,于是经过一同修改,成功拿下了之前打表的所有数据,犹豫半天后一交,1A

image-20221126202323720

#94

最后剩下A了,ADguy(刀斯林)一看,表示这就是Ti11的决赛,我虽然也玩过刀,但还只是云的阶段,dota2太难了!

02becc8931e47d165e7255e247efc28217ef1578

ban & pick

team split turn to pick,我满脑子都是dota比赛的语音,感觉非常带感啊

题意是每个英雄都有自己的贡献,可以ban对面或者pick自己,每方都想最后超过对方最多,每次都是最优决策,求最后的结果是什么,我直接傻眼,给的样例看了半天才看懂怎么决策,当时就是想了一番之后直接自信地把题意转换成ban和pick等价,A队选人是加,B队选人是减,排序之后贪心即可,调了半天过样例和队友给的数据(之后手推发现是队友盲目相信了我的答案,推错了答案),交了一发,非常快的WA…

然后我发现其实ban和pick不能等价,因为pick次数是有限制的,如果同样的贡献用pick而不用ban会导致之后最优需要pick的时候无法pick只能ban,经过一番修改之后过了之前提出的特殊情况之后又交了一发,又很快的WA了,然后我又发现写的格式有问题,因为只有选满人之后才会管vis数组,导致pick了重复的人,需要完全用起vis数组,然后我的思路就开始爆炸了,最后决定全部重写,写一个链表来模拟(中间电脑还断了一次网,志愿者蹑手蹑脚的不知道做什么被TomiokapEace说了几句),写了半天终于调好,又进行一个勇敢的交,WA,然后我发现没把所有的if改成while,感觉又交了一发,本来以为应该能过,结果又WA,就WA麻了

image-20221126214421828

WA麻了

看了眼时间只剩几分钟了,我看了下刚刚开始的样例,发现A组是有决策一定让他们选到更高的分数的,而我的程序输出的贪心肯定是错的,然后我就受到了冲击,这两个小时我到底在做什么,表示当初应该写个暴力决策函数打表,手推决策太难了,队友表示绝望,我也直接离开机位开躺,感觉这把又要铁了

失落地等着倒计时,大喊寄!

我收拾完东西之后和ADguy去309-34坐会,顺便复习点R语言(马上就要考试了),TomiokapEace是直接回家了,毕竟之前已经铁了两把了,这种感受我非常熟悉,封榜前我们的排名是100出头一点,后面的人如果一大片都能5题的话我们就铁了,封榜后没过题,按照这个势头,大概率会铁,所以也没必要等闭幕式了

玩了会手机之后感觉还是要听一下闭幕式,万一铜了呢,就问ADguy要了会议链接,进去就是在讲A题,结果发现正解是DP,直接黑人问号拉满,我们队刚好动态规划是弱点,想出来思路也不一定写的出来,某种意义上也算是一种安慰了…

image-20221126215040730

动态规划

官方题解在这里

然后后面的题我们都没看过,就直接逛b站去了,看了会死亡细胞的视频,还顺便把我电脑键盘的CapsLock重新映射成Esc,这样我就不用再按蹩脚的Ctrl+[来退出插入模式了,等主持人开始报获奖名单了,就又开始边看会议画面边看队友电脑里的石姬娘娘虐猫变态行为,然后19级在字节实习的现充学长霄聚突然发QQ问我们铜了吧,我一脸懵逼

image-20221126215840027

霄聚の问候

感觉不可信,抱着万一铜了呢的心情继续听主持人报奖,突然听到了一个 中国计量大学 fufu吃大米,直接拍了ADguy的大腿,高兴的要死,甚至不相信我自己的耳朵,多次怀疑是不是自己听错了,主持人会不会连铁都报

最后也没有直播滚榜,会议结束之后等群里的终榜,点开一开真铜了,看来这个套着博弈的dp是有那么点含金量的哈哈哈

挺意外的,本来以为我会用一路铁牌加省赛铁首和个蓝桥杯国二概括我的ACM生涯,没想到还能铜一个区域赛

本来连怎么四铁后安慰队友都想好了,就说为ACM生涯画上一个不那么圆满的句号(队友和我一样都没拿过区域赛的奖

真的很不容易,从来没有打过线下赛,XCPC一直都是网络赛,都感觉要被卷死了,我们队除了周三惯例训练赛之外,课外也没怎么补题,都在忙自己的事情,可以说完全就是啃大二的老本,其实我们三个大二是三个不同队的,我和ADguy都是和学长学姐组队的,他们都退役了,TomiokapEace是和另外两个20级的组(其中有一个本来打算和我组队的,但是在我决定前被另外两个强实力的聚聚提前抢走了,当时可以说是又气又无奈,谁叫自己没实力还不懂维护关系呢,还有一个是在打了两次ICPC后放弃了ACM生涯,挺可惜的),就这么三个人莫名其妙地组成了一队,可以说是遗老队了哈哈哈

虽然只是个区域铜啊,但是还是好开心啊

DzskuabUYAccQXP

YEAH

image-20221126172001279

终榜

image-20221126171937930

刺激!

IMG_20221127_210636

送的咖啡杯
2022/11/21
> CLICK TO back <