B - Black or White 2 Editorial
by
miscalculation53
一般性を失わず、\(N \leq M\)(横長)および \(K \leq NM - K\)(0 が 1 より多い)を仮定します。
まず、次のように 0 を左側に、1 を右側に寄せて並べます。
0000011111
0000011111
0000011111
0000011111
0000011111
0000001111
0000001111
0000001111
0000001111
0000001111
これで条件を満たさないのは 0 と 1 の境界部です。次のように、境界部の 1 とその \(2\) つ左の 0 を swap することを \(1\) 行飛ばしで交互に行います。swap する行の決め方としては、1 の数が切り替わる隣接行(この例では \(5, 6\) 行目)をそのままにします。
0000011111
0001001111
0000011111
0001001111
0000011111
0000001111
0000100111
0000001111
0000100111
0000001111
これで条件を満たすことができます。
冒頭の仮定から、この操作は \((N, M, K) = (2, 2, 2)\) の場合以外は常に可能であることが確認できます。
posted:
last update:
