春测 2023 游记

· · 个人记录

忘了 diff 如何忽略行末空格和空行,再此上花了 30min

开场看题,秒会 T1 一种奇怪的链表做法,然后用 20min 读完了题,初步判断 T2 可以暴力 check,T4 k = 1 是送的,完全看不懂 T3。

50min 时过掉了 T1 所有大样例。

然后看 T2,发现就是直接计算 sqrt,但是需要去重,想到让每个数只被最小的底数筛掉,于是就去掉了所有本身是 a^b 形式的数。因为 sqrt(x, k) 的 double 会炸精度,也不会 long double 和 sqrtl(x, k),写了个双 log 的二分开根。1h50min 时过掉所有大样例。由于没有写过二分开根,调试了很长时间,然后又写了个对拍检验二分正确性,写挂了,又花了 20min

然后觉得可以开始打暴力了,开 T3。发现爆搜是 n \le 930 分,又想了一下发现 n \le 1860 分可以状压,看了一下特殊性质,发现 B1\sim nA 是先向一个方向走到头,然后跳到另一个方向上。看了 10min 样例,又画了一会图,发现好像是从最高点左右反复横跳,走到另一个方向没有走到的点,搞个两边的 dp 好像能做,但是不知道如何统计答案。2h50min 时过掉状压的大样例,然后写性质 B,结果把定义为数组范围的常量开成了 1000,原来状压的 dp 数组开了 1000 \times 2^{18},报错了 20min 才查出来。

然后把 T1 和 T2 检查了两遍,写了个 T1 的快读,但是没有写对拍。T3 和 T4 检查好了就开摆,检查时间 $45min$,感觉自己不会挂分。最后 $15min$ 检查文件,数组范围,又手造了几组 T2 的大数据,和暴力拍上了。 实际上,本次比赛用于想题和写题的时间只有 $3h15min$,有 $1h$ 用于检查,$15min$ 用于手动检测大样例,本质上还是平时各类代码模板和 Linux 使用不够熟练,为此只能多花时间,确保代码的正确性。 人均 $300+$,炸裂。