官方题解|染色
2025-04-28 12:46:50
发布于:浙江
9阅读
0回复
0点赞
模拟,分支
首先对于本题,我们发现对于 n = 1 时,因为 可以将唯一的位置进行设置, 无法将全部的点变成黑色。
接下来我们考虑如果有一个无限的空间,你有 次染色的机会,最多会有多少位置会被染色。
根据题面,只有一个点的四联通的位置有至少两个黑色的点,这个点可以被被动染色。
我们设两个黑色点的坐标分别为 , 中间的点的坐标为 ,那么很容易证明 。
因此我们设被染色的点的最大的横坐标为 ,最小的横坐标为 ,最大的纵坐标为 ,最小的纵坐标为 ,所有被染色点的坐标 , 满足 , 。
因此最好的情况似乎是沿着一个对角线进行染色,这样可以染成一个 的矩形。当 时,无法将所有的矩阵染成黑色。
还有另外一种证明,如果一个点被相邻的两个点给染色,这几个点所构成的周长不会增加,因此 次操作,最大染色后的图像,周长为 ,最大组成一个边长为 的正方形。
对于剩下的情况判断经过 次染色,将整个矩阵染成黑色。可以分别按照奇偶性进行考虑,是可以构造的
时间复杂度 0(1)
#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
using i32 = int32_t;
int main() {
ios::sync_with_stdio(false), cin.tie(nullptr);
int n , k;
cin >> n >>k;
if( n == 1)cout <<"No"<<endl;
else if( n > k )cout <<"No"<<endl;
else cout <<"Yes" <<endl;
}
这里空空如也
有帮助,赞一个