Official

E - Tile Grid with One Hole Editorial by vwxyz


制約より、\(H\)\(W\)\(L\) の倍数でないとしてよいです。
条件を満たす敷き詰め方が存在するとします。
まず、\(3 \leq L\) の場合を考えます。 \(h\) 行目のマスに \(h\pmod L\) を書くことにします。 タイルで覆われたマスのうち \(i\) が書かれているものの個数を \(C_i\) とすると、\(C_0,C_1,\dots,C_{L-1}\)\(\mod L\) ですべて等しいことから、\(H\equiv 1,L-1 \pmod L\) であることがわかります。 同様に、\(W\equiv 1,L-1 \pmod L\) もわかります。 \(H \times W=L \times (N+M)+1\) から、以下の \(2\) 通りが考えられます。
\(H \equiv 1 \pmod L\) かつ \(W \equiv 1 \pmod L\) かつ \(r \equiv 1 \pmod L\) かつ \(c \equiv 1 \pmod L\)
\(H \equiv L-1 \pmod L\) かつ \(W \equiv L-1 \pmod L\) かつ \(r \equiv 0 \pmod L\) かつ \(c \equiv 0 \pmod L\)
また、\(L=2\) の時もこのいずれかとなることがわかります。

①のとき

\(w \neq c\) のとき、\(w\) 列目のマスのうち \(1\) つ以上は横向きのタイルに含まれることから、\(\frac{W-1}{L}\leq N\) がわかります。 同様に、\(\frac{H-1}{L}\leq M\) がわかります。 \(h\) 行目のマスに \(h\pmod L\) を書くことにすると、縦向きのタイルには \(0,1,\dots,L-1\) が一つずつ含まれることから、\(N \equiv \frac{W-1}{L} \pmod L\) がわかります。
これらを満たすとき、条件を満たす敷き詰め方が存在します。
\(r\) 行目の \((r,c)\) 以外のマスを横向きのタイルで、\(c\) 列目の \((r,c)\) 以外のマスを縦向きのタイルで敷き詰めます。 残った部分を \(L\times L\) のグリッドに分割することができます。 これらを横向きのタイル \(L\) 枚か縦向きのタイル \(L\) 枚で敷き詰めることができ、横向きのタイルが \(N\) 枚になるように調整することができます。

②のとき

\(w \neq c\) のとき、\(w\) 列目のマスのうち \(L-1\) つ以上は横向きのタイルに含まれます。また、\((1,c),(2,c),\dots,(r-1,c)\)\((r+1,c),(r+2,c),\dots,(H,c)\) のうち、それぞれ \(L-1\) マス以上が横向きのタイルに含まれます。 このことから、\(\frac{(W+1)(L-1)}{L}\leq N\) がわかります。 同様に、\(\frac{(H+1)(L-1)}{L}\leq M\) がわかります。 \(h\) 行目のマスに \(h\pmod L\) を書くことにすると、縦向きのタイルには \(0,1,\dots,L-1\) が一つずつ含まれることから、\(N \equiv \frac{(W+1)(L-1)}{L} \pmod L\) がわかります。
これらを満たすとき、条件を満たす敷き詰め方が存在します。
\(r-L+1\) 行目から \(r+L-1\) 行目と \(c-L+1\) 行目から \(c+L-1\) 列目からなる正方形の部分に縦向きのタイルと横向きのタイルを \(2(L-1)\) 枚ずつ用いて風車状に並べることで敷き詰めることができます。この正方形の上と下の部分のうち \(L-1\) 列を縦向きのタイルで、右と左の部分のうち \(L-1\) 行を横向きのタイルで敷き詰めます。\(L-1\) 行と \(L-1\) 列の位置を適切に選ぶことで残った部分を \(L \times L\) のグリッドに分割することができ、①と同様に調節することができます。

posted:
last update: