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