CSP2020 二轮游记
11.6
去看考场。
我的两组座位都有一遍没人,感到了几丝自由。
电脑是 WindowsXP,C++ 内没有 Consolas 语言……
J 组考场键盘是藏在抽屉里的,但好像抽屉没法完全打开……
S 组考场的隔板是浅红色木板,很有年代感
总之体验不是很好。
11.7
11.16 作者终于发现自己还留了一个坑,并补了上去。
以下左端时间不一定十分准确。
$08:15$ 到考场的时候状态一般,精神并不是特别地好。
$08:30$ 不过监考人员还是非常负责的,开始比赛后下去检查了每一个人的提交格式是否正确。
$08:30$ 睡眼惺忪打开 pdf。
$08:31$ T1 发现没有以前那么㴇了,不过还是可以快速通过的,5 分钟写完。
$08:36$ 然后看到 T2,???什么玩意
$08:38$ 由于没看数据范围,脑子中不停蹦出「堆」「第 K 大」什么的假算法。
$08:42$ 然后又看到有 $85\%$ 的数据是 $n \le 10000$,难不成真的 A 不掉 T2?
跑了跑了,去看后面的题
$08:44$ 看到 T3 光是输入方式就直接被吓跑,然后翻到了 T4。
啊,方格取数,时隔多年再次出现在 OI 考试中(虽然只是题目一样)。
$08:48$ 发现记忆化不好写,就想 DP。
又发现路径不可以往左走,所以就设计了一个以列为最外层的 DP,复杂度 $O(n^2 \times m)$,可以有 70 分。
$09:16$ 把 70 分的 DP 写完了,之后修正了一些小问题。
$09:26$ 回来看 T2,原来 $0 \le a_i \le 600$ 啊,那没事了。
$09:39$ 直接甩一个 $O(600n)$ 的做法跑路。
$09:45$ 等到我再次点开了逃不过的 T3,职能硬头皮重新学后缀表达式求值。
一个特殊限制的部分分都不会写.jpg
$10:25$ 只能一步一步把输入处理好,把栈写好,把代码写完。
作为一个有追求的 OIer,怎么能在充裕的时间中放过部分分?
好在几乎没有 bug,很快就通过了大样例,可以得到 $30$ 分。
$10:30$ 不想再继续在这道题耗了,就离开了这个是非之地,开始想 T4 的满分做法。
尝试了很多种办法,但甚至连前两个小样例都过不去。
$10:40$ 开始实际意义上的思考:
- 可以向上走,也可以向下走,如何排除后效性?
- 开两个 DP 就可以了。
- 一个记同一列从上到下递推出的最大值,另一个记同一列从下往上递推出的最大值。
- 最后在转移到下一列之前,用一个别的变量记录这两者答案的最大值。
- 注意第一列和最后一列要特判。
然后就想出 100 分做法了?
$11:10$ 改完程序,三个样例都是过的。
$11:15$ 写了个对拍和 70 分的对,拍了上万组数据都没有挂。
剩下的时间几乎没有做别的事情。
$12:15$ 在出考场对答案的时候,我猛然记起,我两个 DP 是存在同一个变量数组的,只不过开 dp[N][M][2] 分别讨论。
我却在 DP 中写的是 dp[i][j][1] 和 dp[i][j][2],我调用了 [2]……
希望程序没事
晚上在信奥题库自测,是 $100+100+30+100=330$,T4 竟然没有 RE?
不过测了好几个地方没有一个是挂的。
其余估分情况:
Luogu nowcoder $100+100+30+100=330$
S 组
$13:55$ 母亲给了一片什么参的含片,结果等到我开始考试了那个味道还在嘴中环绕。
$14:10$ 进入考场旁边的签到教室,人明显少了很多。
$14:15$ 进入考场,结果发现键盘有点难用……
$14:25$ 监考员允许开题面。
扫了一下四道题,有种不祥的预感。
T1 大模拟,T2 二进制,T3 没看出,T4 博弈论。
$14:35$ 极力让自己冷静下来看 T1。
$14:50$ 看了半天,只写出预处理……
$15:05$ 写完 BC 的情况。
$15:20$ 写完小于 1582 年的情况。
$15:35$ 写完所有情况。
$16:20$ 调了半天……没什么用。
$16:40$ 打完 T2 暴力。
$16:50$ 我也不知道哪来的自信(可能是为了多骗点数据水的分),看到部分分直接去莽线段树。
$17:05$ 而且,线段树板子还打完了,甚至没有问题???
$17:15$ 把 main 函数写完,并调完了程序。
$17:35$ T4 的暴力写完了,并马上返回去调试 T1。
结果发现随手写了一个对拍,光是大样例就排出居量的差异。
怎么办?只能调啊。
$17:50$ 调完了预处理的 bug。
$18:10$ 调完了“绝大部分” bug,并在 $10^5$ 组数据中只有 3 组出问题。
$18:15$ 发现 1582 年前,4 的倍数年份都是闰年,就改了一下,再拍只有 1 组 出问题。
$18:20$ 把 1582 年的情况调了一下,十万组数据全过了?
然后就检查了一下文件,今年的 CSP 之旅就结束了。
预估:$100+40+30+20=190$,感觉全世界都比我高。
回家,在信奥题库自测了一下,甚至没有预期的好。
T1 从 $100$ 变成 $60$,T2 从 $40$ 变成 $20$。
不过或许是造数据的人都是随机数据,我的 T3 才在那里有 75 分。
然后是洛谷,结果发现更炸,T1 炸成只有 BC 的分,T3 降为 30。
估计管理员出了一堆链、菊花图数据,然后把我的线段树卡掉。
其实分析一下,线段树常数真的不高,最坏 $O(Q \times \sum{C_j} \log n)$,平均可能是 $O(Q \cdot \frac{\sum{C_j}}{\sqrt{m}} \log n)$(这里我不会求,大概吧)。
并且,整体乘以 2 操作复杂度是 $O(1)$ 的。
以下是所有估分情况:
洛谷:$40+15+30+20=105$
信奥题库:$60+20+75+20=175$
牛客:$40+20+70+20=150$
小图灵:$40+40+55+15=150$
好像 T3 就 luogu 卡掉了,或许分数还能高一些。
11.16
出成绩了。
J:$100+100+30+100=330$
S:$70+35+70+20=195$
第一反应:
???我 S 组 T1 和 T2 还多了???T3 也没卡???
可能这是我打的最懵逼的一次比赛吧。
看了看 FJ 的分数,感觉整体水平不是很高,但分数也不会很低。
有两所公立学校都有初一的考生拿到全校最高,并且过 200。
好像市内初三段最高分是一个女生。
技不如人,甘拜下风。
完。