Gravatar
LikableP
积分:1660
提交:388 / 1046

枚举平移的距离,考虑把第二张图中所有的点分成四类:

  • 当前和第一张图不相等,在平移之后也不相等。
  • 当前和第一张图不相等,在平移之后相等。
  • 当前和第一张图相等,在平移之后也不相等。
  • 当前和第一张图相等,在平移之后也相等。

最终的答案一定是由第二类点和第四类点组成的极大子矩阵。这个可以 使用全 1 子矩阵的算法计算。

第一类点必须是平移之后被随机填充的部分,如果他的坐标是 $(x,y)$,那 么 $(x,y-d)$ 必须被平移。我们可以找到一个能覆盖所有 $(x,y−d)$ 的最小 矩形,答案矩形必须包含这个矩形。

再考虑第二类点,它要么是被随机填充的部分,要么是被平移的部分。 对于一个矩阵,我们只需要求出这两块里第二类点的数量,就知道其是 否合法了。

做全 1 子矩阵,把求出的每个极大子矩阵 check 一遍即可。