题解:AT_awtf2024_e Colorful Stamps

· · 题解

让我们把压印操作重新措辞如下:

邮票 (h,w) 的颜色保持不变的单元格对应于标记为已使用的单元格。目标是对所有邮票执行此操作。

让我们考虑一个有效操作序列的属性。

总之,以下属性具有:

我们将用归纳法来证明这些性质,很明显,它们在初始状态是成立的。

考虑按下来自任意状态的戳记。首先,要压印的邮票的尺寸必须是最大的。假设按下了非最大戳记并且使用的单元格为 (x,y) 。然后,考虑到包含单元格 (x,y) 的最大矩形,将不再可能使用与此矩形相同大小的戳记。这不会导致有效的操作序列,因此要按下的戳记的大小必须始终是最大的。

出于同样的原因,也不可能使用包含在两个或多个最大矩形中的单元格。

此外,不能使用矩形的四个角以外的单元格。考虑以下状态(其中’。表示使用过的单元格)。假设我们要在左上角 4 \times 5 矩形上按一个戳记。

如果使用单元格 A ( =(4,4) )会发生什么情况?使用大小为 4 \times 4 的戳记将不再可能,因此此操作无效。一般来说,我们看到除了四个角之外的单元格不能使用。

相反,如果我们使用的单元格恰好包含在一个最大矩形中,并且对应于四个角中的一个,那么它总是有效的吗?事实上,它将是有效的。如果使用满足上述条件的单元格,剩余的未使用单元格将满足最初提出的所有条件。

让我们回到最初的问题。对于已经按下的 K 邮票,我们需要适当地确定使用了四个角中的哪一个,以确保满足上述条件。

假设在位置 (a,b) 处按下邮票 (h,w) ,并使用单元格 (x,y) ( x=a 或 a+h-1 ,以及 y=b 或 b+w-1 )。若要获得有效操作, (x,y) 必须满足以下条件:

我们将使用布尔变量表示 x=a 和 x=a+h-1 之间的选择。类似地,在 y=b 和 y=b+w-1 之间的选择也将用布尔变量表示。

然后,所有的条件都可以写成2-SAT 的形式,这样,我们就可以解决这个问题了。

让我们分析一下计算的复杂性。2-SAT 中变量和约束的个数为 O(K) ,因此该部分的复杂度为 O(N^2) 。但是,我们需要在按下初始的 K 邮票(需要 O(N^3) (或任何可行的复杂性))之后确定板状态。因此,最终的复杂度是 O(N^3)。