Description
在两个n*m的网格上染色,每个网格中被染色的格子必须是一个四联通块(没有任何格子被染色也可以),四联通块是指所有染了色的格子可以通过网格的边联通,现在给出哪些格子在两个网格上都被染色了,保证网格的最外围一层不会在两个网格中同时被染色,即所有处于第x行第y列满足x=1或x=n或y=1或y=m的格子不会被在两个网格中同时被染色,请求出任意一种染色的方案,如果无解,请输出-1。
Solution
这是一道奇妙的题目。
比赛的时候想到了可能是构造的方法,但是没有想到如何优美的构造,最后只能打了个60分的暴力。
为了保证联通,我们把第一列分给第一个矩阵,最后一列分给第二个矩阵,然后奇数行分给第一个矩阵,偶数行分给第二个矩阵,这样可以先保证矩阵是联通的而且不相交,然后再把矩阵之间重叠的部分,加上去就好了。
Code