今天的比赛反应了我的许多问题。
首先是策略不太对:我看完第一题后,感觉这道题很难实现。还有第三题,看完后感觉暴力也很难打(后来才知道这是个很水的题),于是把时间都花在第二、四题上。
接着是时间分配不对:我把前半部分的时间花在想第四题的正解上。虽然正解算出来了,但是我检查时遗漏了一点。后半部分时间则花在了第二题上。想出了50分的算法和70分的算法(后来这7个点有2个超时了)。然后没有想到正解,也没有打第一题的暴力。
最后得分也不太满意:第二题拿了50分,第四题只拿了48分,错了的点都是Wrong Answer。本来我的估分是170的。
第一题:要运用单调队列维护n个值,还要用斜率优化。可是我只想到用c++的优先队列。
第二题:考的是二进制和DP,要用到容斥原理。但是我打的DP理论复杂度是能过7个点的,但是可能是常数较大。
第三题:是一道“物理”题。比赛完才发现是二分答案+贪心。
第四题:原来正解是AC自动机,因为题目是一道多串匹配的题目。但是我不会打。所以我把模式串放在Trie里,再给匹配串求出SA。在Trie上遍历的同时记录一个区间L..R,表示SA[L..R]的前缀是当前得到的字符串,然后维护一个最大值。关于一个字符是否被匹配就用并查集维护。(感觉用了很多数据结构)