CSP-S2021 游记

今年在九中光华校区考的 CSP。

赛前一周

做了几次 CSP 模拟,发挥都不错但是经常巨大多挂分(指 CE 或 MLE 等),后来被教练要求好好反思。

心态一点都不稳健.jpg

考试当天

考试是下午于是上午睡大觉,中午起来吃了个午饭就叫了个出租车往考点走了。路上巨大多堵车,到考点吹了一会儿水就进考点了。

(在门口收获 cxr 神仙的棒棒糖 \(*1\)

在考试楼下排队进考场。queue 的时候看了一圈发现周围除了(初中、高中)同学大部分都是不认识的老哥,感慨了一下 oi 的迅猛发展就进考场了。

典中典开考之前不让动键盘。监考老师反复强调各种注意事项,然后就开考了。

(中间听到有个高一同学问 DEV-C++ 5.11 的安装包的位置,后来不知道他用上没有)

开考之后发现键盘巨大多难打,低版本 DEV 也果然不支持 c++14,吐槽了一下主办方就去看题了。通读了一遍题面,感觉 T1 是个考过的原题,T2 是个神仙 dp,T3 是个贪心,T4 是神必网格图性质题。然后感叹了一下今年没有签到题。

然后就对着 T1 写某个原题的代码,大概写了 \(0.5h\) 就写完了,然后马上过了第一个样例。第二个样例跑出来比答案大(嗯?),然后手算发现程序没有写错,于是重新读题:

……廊桥的使用遵循先到先得的原则……

心 肺 骤 停,读错题以为是使用最优策略。于是把代码删掉了用来最优化的部分,大概在 \(1h\) 的时候过掉了这题。

然后去看 T2。最开始想的做法是维护栈里面的 \((***((*(\) 状物,但是这个要对 \(((\)\((*(\) 的东西分类讨论,然后复杂度就寄了。

冷静了一下,考虑了一下 \(k=0\) 的做法,发现有个经典区间 dp 做法,可以直接套到这个题来。

然后就是 coooooooooooooding,中间经历了算重、算漏、算重并且算漏(这个过了第一个样例),以及优化掉一个 \(n\) 的巨大多调试。总而言之,大概就是 \(\mathcal O(n^4)\) 写了 \(0.5h\)\(\mathcal O(n^3)\) 写了 \(0.5h\)

写完过大样例就已经过去 \(2h\) 了。这时候就有点慌了,快速开始看 T3,然后手动模拟了一下,发现第一次操作之后就两边独立了,可以直接贪心,然后就对着这个写,大概在 \(2.5h\) 的时候过了大样例。

然后检查了一下前三道就去看 T4 了。手推了一下感觉会有一些分割线状物,然后会变成一块一块的,然后发现把每一块染色后相当于一个最小割(我要 AK 了.jpg)。

然后就是写写写,前四个样例都很快通过了。第五个样例:F11->waiting->waiting->waiting->嗯?->waiting->出答案。

心 肺 骤 停。加了个输出时间,发现跑了 \(13s\),然后以为是机子太慢,但是打开配置一看发现海星,然后用虚拟机测了下时发现也是这个速度。

没救了。又去检查了一下前面的题(这个时候发现 T1 有个 off by 1 error)。然后就开始看数据范围找性质。

然后快速反应到 \(k=2\) 就是个狼抓兔子,然后发现 \(k>2\) 不太能直接转对偶图,最后 \(1h\) 就一直在想怎么做 \(k>2\),无果。

出来之后问了一下发现都是 360 大众分,然后就安心吃饭去了。

最后出分 95+100+100+60=355。


总结:技不如人,甘拜下风。

posted @ 2021-10-28 17:08  whx1003  阅读(127)  评论(0编辑  收藏  举报