CSP-S2 2022 游记
写在前面的
和 J组游记 一样的开头呢……
感谢 CCF 给了我参加复赛的机会。
感谢 杭师大 为我们营造了不错的考试环境。
感谢 教练、家长、同学、朋友 给予我鼓励和帮助。(尤其是某位威逼利诱要求我不要摆烂的大佬)
[鞠躬]
正文
考前5分钟看了遍题,觉得都写不出正解。根据模拟赛得出的经验,可以针对特殊性质写些程序,尽可能多拿写暴力分,不要挂分,就能混个不错的排名。
时间到,开 T1。暴力需处理两两点直接的最短路,统计答案也需要一些手段。
最短路嘛……自信Dijkstra,写堆优化,复杂度似乎很高。然后有用DFS进行答案的构造。码完暴力的暴力。
发现对每个点为起点进行Dijkstra,似乎复杂度高了亿点点,(因为不会写自动忽略了SPFA)改成Floyed,快了一个度,但是大样例还是要跑4秒。
继续卡,发现只要四个点,那不如把它们枚举出来?于是顺序枚举了a、b、c、d四个点进行计算,优化到了3秒。
不行不行,还得优化点,虽然数据应该比较水,但绝不能被卡掉。
于是改成了a、d、b、c的顺序枚举,加了点剪枝(?),然后大样例混了2秒多一点。期望 \(70\) 分。
于是换 T2。开始想贪,但发现样例过不了,于是针对特殊性质想出了线段树维护最大最小值(不会ST表QAQ),并且猜到了要维护什么绝对值最大最小之类的但没写,期望 \(70\) 分,开打。
噼里啪啦打了30+分钟,线段树打挂了,调了10+分钟,过样例了。
开 T3,认真读了5分钟读完题面,5分钟整理题意,10分钟手摸样例。
好哇不会,根据题意模拟吧。
根据发现的 每点出度为1
的性质,打了个预计 \(40\) 分的 \(O(nq)\)。
开 T4,觉得跟 T1 挺像的。先针对 \(k=1\) 写了份代码,然后搞 \(k=2\) 和 \(k=3\) 的情况。
遇事不决BFS,打BFS分类处理,发现不需要单独写的 \(k=1\) 部分,但是 \(k=2\) 和 \(k=3\) 还是过不了。
比赛快结束了,罢了,\(16\) 分跑路吧。
终于记起了普及赛后说的5.9.2版DEV,去桌面翻了翻,真有。
呆。
洛谷估分70+65+60+16=211,似乎能多拿点分。
反思
没有找到顺手的编译器……下次记得先装软件叭。
写代码前还是要想清楚到底怎么写,逐步优化会很费时间。。
不要咕咕咕啊啊啊。
写在最后
膜拜AK了的各位神仙。
换句话放吧:愿时光不负岁月,愿世界不负温柔,愿每一个善良的人都被认真对待。千山万重,不离不弃来日方长,未来可期!。
NOIP RP++