CCPC 河北省赛亚军寄

BrotherCall

2024-05-26 20:03:35

Life & Travel

打完就一句话 What can I say?

至今最难忘+体验感最强的比赛。

Day 0

热身赛,和@TLE_Automat(以下均称 zyd)去打着玩的。

本来是打算切完最后一题就走的,结果被最后一题卡了一卡,索性把前三题切了,然后把最后一题也调出来了,成为了封榜前唯一一个 ak 的正式队。

解榜后发现成为了 ak 队的垫底,符合预期,属于达成目标了。

哦对,中途@warzone(以下均称 wrx)也来了,不过主要是试试编译器的,发现无法正常运行 C++14 以上的版本。后面调了啥我也不太懂反正就是接到 codeblocks 的编译环境上就能正常运行了。

Day 1

没吃早饭就来打比赛。

签到还是一如既往的只有一个输出,zyd 选择直接用 python 在零分钟的时候秒了。

然后就是我看到 A 也是签到,就顺手写掉了。

写完和 wrx 都看了看 B ,wrx 认定这是防 ak 题,但我当时预言我能乱搞过。

接着就是我和 wrx 发现 C 也是签,按 L 排序随便搞搞就出来了,于是我直接开写。

写的时候完全没进入状态,脑子极其混乱,写完测样例一直过不了。

于是 zyd 帮我看了看,发现我的 push 写的很没道理,把 push 改了一下就过了。说实话当时脑子确实乱的不行了。

接着就是 zyd 说自己会了 G,然后 wrx 用字符串处理做了 I ,不过 WA 了,于是 wrx 决定先退下去想 J 。

我听了 zyd 的 G 思路,发现非常对,然后看了 I 题,感觉直接 scanf 就能处理,zyd 也觉得是,所以在写 G 之前顺便把 I 写过了,然后很顺利地写出了 G 。

不得不说 zyd 的代码能力和冷静能力都非常强,我到现在还没冷静下来,一直不敢写代码。

后面就是 wrx 接手矩阵快速幂 J 题,15min 就秒了。

zyd 写完 G 之前我已经知道 E 咋写了,就是枚举+背包,但我还是不敢上手写,所以直接把思路告诉 zyd 让他写了,最后他吃了点小罚时就过了。

两小时切七题,感觉速度还可以。

后面就是煎熬时间了

只剩四题,确定这些是争夺冠军的题。

但是非常恐怖的是燕山大学第一个队已经在三个小时多的时候切了九题了,压力山大。

首先 F,我们都会 O(n^4) 做法,但过不了,我和 zyd 猜测是通过优化降次。

我提出先随机生成一个排列,然后 O(n^4) 暴力整,接近 1s 没搞出答案就直接输出无解。而 zyd 提出使用西安金牌大法 bitset!然而在场的没有擅长 bitset 的。

wrx 选择直接去想 H 题,并且很快想出了 LCT 的解法,跟我讨论之后我确定 100% 对,于是把机子让给他写了。

突然,zyd 告诉我他会 D 了,就一暴力 n^3 dp,我听了他的做法发现究极无敌非常对!于是直接开码,十几分钟就码完了。

结果 WA 了几发,改了很多细节,突然这时候 wrx 过来说你们考虑交换相邻两个相同字符的情况了吗?

我靠!!!发现没有考虑,赶紧改改改,然后交,还是没过!

这时候才吃三发罚时吧好像,又改了些细节,越来越错了!

这道题,耗了非常长时间,这期间把 H 给 wrx 做,他过了,算是吃了一颗定心丸。

还剩四十多分钟,wrx 选择使用 bitset 来做 F,然后我们爆炸讨论了 B,发现很有想法但做不出来,然后回去看 D。

这时候我看着题面粗体的恰好两个字陷入了沉思,按我们的做法,恰好这两个字并不值得注意啊。

这时候我灵光一闪,会不会数据造错了???出题人没考虑到可交换相邻两个相同字符???

直接把一个 -- 改成 -=2,交了一发,觉得出题人肯定没出锅,不过最后几分钟了交下试试。

正在我打算坐等比赛结束的时候,那时候已经开始四处看了,突然 zyd 大喊过了。我一下垂死病中惊坐起。我靠,真是数据出锅了!!!然后我们骂了几分钟的出题人,可能把整个考场都吓着了。

最后 F 还是没调过,不过由于 D 数据出错了而没拿冠军,我们队也是死而无憾了(zyd 认为应改为死不瞑目)。

出考场

直接爆破 D 题数据,北邮出题组表示很抱歉,但也没办法。

题解和滚榜

听完题解,发现我那个 F 的 O(n^4) 然后无解直接输出的写法是可以过的,这时候为自己代码能力太差而惋惜了。D 题确实数据锅了,出题人谢罪了。B 题我开始的思路非常对,但是由于不会笛卡尔树而中断。

滚榜还是北京市赛那哥们,群里认识了下,走的时候跟他打了个招呼但他好像是究极 I 人所以并没有回应我。

最后是 9 题,和燕大一个题数但罚时小输,痛失冠军,还是不够强,明年再来 ak 。