考试经过
开考前几天都没有考试,感觉会巨大多暴毙。
8:30开始考试。通读一遍题面,T1是神仙构造,T2是神仙数据结构,T3是神仙交互。构造和交互是我非常不擅长的,于是有些自闭。
开始思考T1。各种画图也没有找到一种非常简洁的转化方式。于是考虑直接对着原题想做法,结果是做法不仅非常复杂,而且正确性和操作次数也没有什么保证,就转到T2了。
T2看起来是一道比较传统的数据结构题。考虑使用线段树、分块等在线数据结构进行维护,发现十分困难。又想了想莫队、cdq分治之类的离线算法,发现莫队似乎比较好入手。每次插入或删除时只需找到前驱或后继,使用set维护即可,理论复杂度为 \(\mathcal O(n\sqrt{n\log n})\) 。于是我马上开始写。考虑到set常数巨大,于是我手写Treap来代替set。写完后自己造了数据发现连 \(10^5\) 都跑不动。这时想到可以用压位Trie来单次 \(\mathcal O(\log \log n)\) 求出前驱/后继,可惜我并不会写。但是发现如果只有删除操作可以使用链表做到单次 \(\mathcal O(1)\) ,于是使用回滚莫队就可以做到 \(\mathcal O(n\sqrt n)\) 。我很快就写完了,然后稍微卡了卡常,结果发现 \(5\times 10^5\) 还是要跑 \(6.7\) 秒左右,弃了。
之后开始写T1部分分。5,6操作次数不限的部分分十分容易,直接先删干净再加就可以了。剩下我可能就只会纯搜索暴力了。然而可以预见这个暴力比较复杂。我不怕困难,写完了暴力,但此时距离考试结束仅剩10min了。我只能检查一遍,然后考试就结束了。
估分:40+80+0=120
实际得分:25+100+0=125
看似T1挂了15分,实则是因为出题人部分分没造,好耶!
最后只拿了个Ag,距离Au还是差25分,只能说考试策略以及自身实力还有待改进。
总结
T3获得70~80分并不困难,但我却在T1的15分暴力上花费了太多时间,导致最终没有时间做T3。这是本次考试最大的遗憾。为此,我需要改进考试策略。
拿到题目时,首先浏览一遍。接下来每道题都花20min左右认真思考而不是拿着一道题就开始写。之后评估哪道题有思路,似乎比较简单,就从这道题开始做。每当发现自己在某个问题上花费大量时间时,需要及时跳出,重新对全局进行审视以获得更优的做法而不是一直死磕。