题目描述
在长宽为L,W的二维平面上有n个障碍点,试找到一个不覆盖任何障碍点(但点可以在边缘线上的)面积最大的矩形(长宽均与坐标轴平行)。
输出面积。
题意分析
n的范围在5e3,考虑O(n2)的做法。
易得面积最大的矩形四条边要么有障碍点,要么覆盖的边界。否则四条边可以继续扩展,面积会变得更大。
那么考虑对点的X坐标排序,以每两个点向x轴做垂线作为矩形的两条边,统计这两条边之间最大能覆盖多少面积即可。
由于边界线的情况,需将(0,0)点和(L,W)点也放入n个障碍点之中考虑。
设i,j表示矩形两条边所找的点,在从i循环到j的过程中用遇到的点更新所得矩形的边界。
设k是i,j之间的点,若y[k]>y[i],说明上边界最多只能扩展到y[k];反之,下边界最多只能扩展到y[k]。