20210811数据结构
还是开始写的很晚……因为调题速度比较慢……
赛时
约20分钟看全四道题目。
感觉还好,感觉\(T1\)可以马上切掉,用了一个\(\text{deque}\),大概\(10\min\)就切掉了。
\(T2、3\)没有太好的思路,转而去准备\(T4\).
\(T4\)还是很快就想到\(O(n^3\log n)\)的\(50pts\)做法,约\(20\min\)内实在没有想到更好的优化,便写上了。
正解:把问题离线,逆向考虑.
每次去掉一个点后,若最大正方形扩大,则扩大的正方形一定经过此点.
设\(f(i,j)\)、\(g(i,j)\)分别表示\((i,j)\)向上/向下分别可以达到多远.
对于点\((X,Y)\),考虑区间\([l,r]\),则纵向最大可选取长度为\(\min\{f(X,i)\}+\min\{g(X,j)\}(i,j\in[l,r])\).
维护时使用线段树\(O(n\log n)\)或单调队列\(O(n)\).
这时候 已经稳拿了\(150pts\),准备去冲\(T2\),\(T3\).
惊喜的是\(T3\)想到了正解:将问题离线处理后转化为路径边权最值问题。但因为询问的记录出现细节错误导致\(100\to30\)!.
\(T2\)没有太好的思路,写了20分的暴力。
赛后
除了\(T3\),估分很准确!
\(T3\)再次败在了细节问题上!!!!导致正解变成30分!
细节!