健康)状况
有一个大小为 w * h (1 ≤ w, h ≤ 40000) 的区域,其上放置了 N 个车 (0 ≤ N ≤ min(w, h))。
每个车由场地上的坐标 (x, y) (1≤ x ≤ w, 1 ≤ y ≤ h) 给出,并捕获与其在同一水平或垂直上的所有单元格。描述一种有效的算法,用于找到具有最大面积的矩形,该矩形的单元格未受到任何车的攻击。
我的想法:我想过,但我还没有在逻辑上正确的事情上取得成功
健康)状况
有一个大小为 w * h (1 ≤ w, h ≤ 40000) 的区域,其上放置了 N 个车 (0 ≤ N ≤ min(w, h))。
每个车由场地上的坐标 (x, y) (1≤ x ≤ w, 1 ≤ y ≤ h) 给出,并捕获与其在同一水平或垂直上的所有单元格。描述一种有效的算法,用于找到具有最大面积的矩形,该矩形的单元格未受到任何车的攻击。
我的想法:我想过,但我还没有在逻辑上正确的事情上取得成功
任务是找到面积最大的矩形。在2个二维数组中,我们将写下每个正方形的左上角和右下角的坐标,没有受到攻击。我们从 a[1,1] 和 b[w,h] 开始。一个接一个地,我们将车添加到字段中并重写方块。假设正方形是 6x6,车在 x=3,y=3 上。那么数组是 A[1,1][1+x,1][1+x,1][1+x,1+x] B[x-1,y-1][w,y-1] [x-1,h][w,h] 所以让我们添加所有的车,然后从 2 对坐标中找到最大的矩形。自然地,需要从数组中删除之前迭代的坐标,并删除长度和面积等于 0 的坐标。
我不确定这是否非常有效,但根据 Olympiad 问题对内存和速度的要求,它应该适合。或者至少给一些思考的食物