重庆CPC吃时记

· · 生活·游记

Day -inf

教练说要去参加重庆 CCPC。

反正就去吧,去划水顺便做点题。

哦不对,CCPC 不是附带旅游性质吗,很明显教练并没有考虑这一点,四川离重庆反正那么近,直接一天闪击重庆早出晚归,打完就跑颁奖仪式都不看还是太有实力了。

诶教练怎么自动分队了呜呜呜,我不能和阿尔法大师一个队了呜呜呜。但是没事我们有超级大佬 Paper27 和 403notfound,这把也许有的办。至于我?我负责当吉祥物\ll。

居然是坐高铁去重庆吗,有意思。没想到第一次运转成渝高铁会是这种情况。而且也是在回程的时候坐上了成局自己的车😋,G8632,,查了交路表,也是坐上了成局的 CR400AF。可惜不是 CR400AF-S 或者 AF-Z,想坐智动。不管了,反正可以体验一波 350 千米每小时达速运行。去程的话坐的是 CRH380AL,大老鼠上次去河北坐过了。但是成局本地车跑 350 是绝对没问题滴。

学校:成都外国语学校(德阳校区)。

队名:近卫步兵第 272 团。

没错就是这个东西:

你看他阳光开朗的笑容,一定会带我们走向胜利罢(喜)。

然后就普普通通打 CF。

通过一场 div.2 上青了,然后幽默的我在打 edu 时选择了 unr,结果那一场打得出奇的好,如果不报 unr 应该能加 100 分罢。结果后面又打 div.2 直接吃到石了,掉回了绿名。我刚提的青名啊,然后又是打几场 ABC,之前打 ABC 都水垮垮的,认真打了一次一下冲上了棕名。但是我真的要吐槽这个颜色看上去就是一坨,还不如让我当灰名。

当日

教练给我们看座位表:

啊?我们队的名字怎么被改了(一看就是教练自作主张)不!!!我们的微笑哥没了!心情烂透了。

CRH380A 担当本次 G1755,估计是客流没多少所以没有请 CRH380AL 来。福州客运段的车挺良心,还有免费的果盘,但是我并不是很想要所以就没拿。在成渝高铁上因为不是成局本地车+CRH 车型只能跑 300 了。

到重庆,晚进场 10 分钟,得知 F 是签到题迅速秒掉。以下称 Paper27 为 BY,403notfound 为 403。

我在打 F 代码的时候 BY 顺便在看 A,然后我刚刚打完,BY 就开始在一旁说:

“按我说的来写!先输入一个数组,长度是 n,记得有多测!然后分解数组的每一个元素的二进制,然后找每一个元素的二进制的某一位构成的序列的 0 元素的最长段的长度,然后对所有段的长度取 min,这道题就做完了,快写!!!”

赛后发现很明显这个思路是错误的。因为我坐在键盘面前所以 BY 让我来写,结果写到一半他看不下去了,怒吼一声:“我来!!!”然后把我踹到了旁边去。(好吧其实没有这么夸张)

然后 BY 开始写 A,403 那边对着 J 题若有所思,我开始翻题库,一眼看见 I 题疑似非常有搞头,于是开始思考 I。发现构造有解的条件是每个点所对应的其他的可以与其连边的点的个数必须 \ge 2k,然后就开始想怎么构造,刚开始的思路是对于每一个点都向任意 k 个点合法连边,这样连下来所有点出度全部为 k,然后画了几个图发现入度条件疑似也自动满足了。结果回头一看:诶这怎么还是个 m 分图???搞半天我讨论的是 m=1 的情况???

此时回头看一眼自信的 BY,哦我的天哪!\text{A -4}

接着说回来,这个结论在 m=1 的情况下是正确的:把 n 个点想象成一个环,对于点 i,我们使 i\{i+1,i+2,i+3,\dots,i+k\},连边,所有点连边完成后,点 \{i-1,i-2,i-3,\dots,i-k\} 恰好全部向 i 连了一条边。赛后才发现这个思路假完了,我赛时居然没有发现这个思路假也是天才了。画了那么多图等于白画。

对于这个思路,一个二分图就能完全 hack 掉。

对于 \{1,2,3,4\},\{5,6,7,8\}k=2 的情况,首先肯定是有解的,但是我的代码会把 \{1,2,3,4\} 所有的出边全部连向 5,6,而 7,8 则没有入度,同时因为 5,6 已经无法构造合法出边,则没有出度,最后会变成这样一坨:

只有 \{1,2,3,4\} 满足了出入度条件,而一种合法的构造是这样的:

你不需要知道我中途是怎么做的,你只需要直到一直到比赛结束:\text{I -8}

不过中途 BY 有一个很忍俊不禁的操作,他让我证明上面所说的“有解条件”的充要性。我简简单单证明了一下,但是他跟我说这不算证明!我又详细口头说了一遍,他说这不叫证明!气死我了!反正这个结论是没问题的,BY 一直不相信,所以死活不帮我一起想 I 的之前解法,气死我了喵!喵喵喵!

我们来看 BY 和 403 的操作。

BY 从赛时十分钟出假结论到赛时一小时还是没有 AC,气急败坏。中途他说:“哦!哦哦!答案还要 \log_2,看我的!”(然后其实这个结论还是错的)

然后他的目光转向了 C,“这不是唐题吗????直接给我 AC!!!!”十分钟直接切掉。一小时过去,403 成功想出 J 结论,两发 AC,此时我对 I 题也有“初步”结论,然后贡献 -4,难绷。BY 在一边看不下去了,一脚把我从机位上踹飞,此时他想 B 已经想了一会了,得出结论两发 AC,现在是一小时四十分钟。我放弃死磕,与 403 商量写 A 题对拍。

拍了 500 组出了 hack,BY 开始光速调试,两小时时成功过掉 A 题。(赛后结算我对拍得了 MVP!)

接近十二点,供应的小汉堡一股现代工业的味道,不过冰镇可乐好喝。我们吃饭的时候 BY 开始写 L。然后 BY 发现自己不会使用 deque。我现场教完一遍之后他果断使用原生数组过掉了 L,现在是两小时四十分钟。BY 回去吃饭,我和 403 共同攻破 H,现在已经 AC 了 ABCFHJL,我们看了看榜发现 D 很有搞头,开始写 D。

最唐氏的一集来了:

首先我因为不太会推计数类的式子,所以并没有过多参与其中,于是去看题单里面的 EGIK,所以视角切换到 BY 和 403。

他们写了一堆转移式子,最后没有过样例,于是采用 DP 的传统套路调试方法:输出中间变量,然后就遇到了这么一个玄学问题。

如果输出中间变量,最后 ans=0,如果不输出中间变量,最后 ans=4,保证代码当中没有其他的改变,只是多加了一句输出变量。BY 和 403 瞬间懵了,所以把我叫来,然后又给我演示了一遍,他们把输出放在循环的不同位置,甚至放在不同的函数里面,结果还是一样:注释掉输出代码,ans=4,输出中间变量,ans=0

这情况有点太过于玄学了,以至于我都有点懵逼,然后大家就在这里把那一段输出代码挪过来挪过去,实际上并没有什么有效解决方案。

于是,我一脚把 BY 踹下机位(并非),然后输入了一行关键编译命令 -Wall。然后编译:

[Warning] 'l' may be used uninitialized [-Wmaybe-uninitialized]

这下释然了,局部变量不初始化是什么操作,绷不住了,他们在那里调半个小时啥进展都没有,我一行命令直接出结果。

太难绷了。

更难绷的是:一直到比赛结束我们都没有 AC 掉 D 题。

最难绷的是:我封榜之后再为 I 题贡献了几发罚时,最终 -8 遗憾离场。

封榜了,想着反正也不会有什么进展了,于是我们打开了 edge://surf

我冲了 6000+ 分,太有实力了。

考完出来吃火锅,辣死我了,故吃了三碗蛋炒饭。

回高铁站的路程中遇到超级大堵车,还好在开车前 10 分钟极限进站。

在高铁 350 公里每小时的时速下成功把银币立了起来,真的是又快又稳,为国家基建点赞。

战绩结算:

BY 得了 MVP!我是调试之神加罚时之神加躺赢狗,403 是传奇助攻王。

赛后

I 题不难,但是太恶心了,赛后我 +17 才 AC 掉,加上赛时罚时,总共来到了 +25。不过也算练习代码能力了。