CF1586I 题解
1|0CF1586I 题解
简化题意:有 的网格,你需要进行黑白染色,使得每个格子的颜色恰好与 2 个与其四联通的格子的颜色相同,其中有些位置已经确定,问是否有解及是否有唯一解。
1|1思路:
很神仙的构造题。
先从特殊的地方入手。对于 4 个角,它们只和 2 个格子相邻,因此颜色也必须相同。接着考虑与主对角线相邻的两条对角线,我们可以从边界上入手,边界上的两个格子颜色必须相同,而对于主对角线上的第二个格子,现在已经有两个相邻格子是一个颜色了,因此剩下的两个格子颜色一定与刚刚的两个格子不同,于是可以推出这两条对角线上的格子的颜色是黑白交替的,如下图(图都是搬运自 CF 官方题解 ):
考虑到这和奇偶性有关,可以分析一下 的奇偶性。发现当 为奇数时,主、副对角线相邻的各两条对角线会在中心的边上重合,但是两边都得是黑黑白交替的,无法同时满足,因此必然无解。
接着考虑另一个方向的对角线,如下图的黄色部分:
对于在左边界上的蓝色格子,我们已经知道它下面的格子和它一个颜色了,因此与它相邻的两个黄色格子颜色一定不同,于是可以推出黄色的格子颜色也是黑白交替的。又因为这条对角线的长度是奇数,因此在边界上的两个格子颜色相同。而这两个格子颜色相同也可以推出下图中红色格子颜色相同:
于是可以推出两个红色的格子所在对角线是相同的,且都是黑白交替的:
这样不断拓展下去可以推出整个图形是关于主、副对角线对称的。
然后是关键一步:对于下图中上面那个红色格子,与其相邻的两个黄色格子只会有一个的颜色与它相同,于是下面的格子也一定是红色,
那么继续拓展下去可以知道,我们把边界上的格子两两一组,每一组格子的颜色一定相同:
再根据之前与对角线相关的结论,我们可以知道每一组格子会对应哪些对角线,于是我们就知道了每个格子会影响哪些格子:
具体地,对于相同颜色的格子,在边界上黑白应该相同,在对角线上应该黑白交替。这样我们相当于是把每个格子的限制转到了对边界的限制,于是我们就很容易求出答案了。
代码:
点击查看代码
__EOF__

本文作者:Xttttr
本文链接:https://www.cnblogs.com/Xttttr/p/17790311.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Xttttr/p/17790311.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】