模拟,分支
首先对于本题,我们发现对于 n = 1 时,因为 BobBobBob 可以将唯一的位置进行设置, AliceAliceAlice 无法将全部的点变成黑色。
接下来我们考虑如果有一个无限的空间,你有 kkk 次染色的机会,最多会有多少位置会被染色。
根据题面,只有一个点的四联通的位置有至少两个黑色的点,这个点可以被被动染色。
我们设两个黑色点的坐标分别为 (x1,y1)(x_1, y_1)(x1 ,y1 ) (x2,y2)(x_2 , y_2)(x2 ,y2 ), 中间的点的坐标为 (x3,y3)(x_3,y_3)(x3 ,y3 ),那么很容易证明 min(x1,x2)≤x3≤max(x1,x2),min(y1,y2)≤y3≤max(y1,y2)min(x_1 ,x_2) \le x_3 \le max(x_1 , x_2),min(y_1 ,y_2) \le y_3 \le max(y_1 , y_2)min(x1 ,x2 )≤x3 ≤max(x1 ,x2 ),min(y1 ,y2 )≤y3 ≤max(y1
,y2 )。
因此我们设被染色的点的最大的横坐标为 xmaxx_{max}xmax ,最小的横坐标为 xminx_{min}xmin ,最大的纵坐标为 ymaxy_{max}ymax ,最小的纵坐标为 yminy_{min}ymin ,所有被染色点的坐标 (xi,yi)(x_i ,y_i)(xi ,yi ), 满足 xmin≤xi≤xmaxx_{min} \le x_i \le x_{max}xmin ≤xi ≤xmax , ymin≤yi≤ymaxy_{min} \le y_i \le y_{max}ymin ≤yi ≤ymax 。
因此最好的情况似乎是沿着一个对角线进行染色,这样可以染成一个 k×kk \times kk×k 的矩形。当 n>kn \gt kn>k 时,无法将所有的矩阵染成黑色。
还有另外一种证明,如果一个点被相邻的两个点给染色,这几个点所构成的周长不会增加,因此 kkk 次操作,最大染色后的图像,周长为 4×k4\times k4×k,最大组成一个边长为 kkk 的正方形。
对于剩下的情况判断经过 nnn 次染色,将整个矩阵染成黑色。可以分别按照奇偶性进行考虑,是可以构造的
时间复杂度 0(1)