No.3378 Go Board
タグ : / 解いたユーザー数 2
作問者 : 👑
Iroha_3856
問題文
$N$ 行 $N$ 列の盤面があり、$i$ 行 $j$ 列目のマスを $(i, j)$ と表します。はじめすべてのマスは空きマスです。
あなたはこれから以下の条件をすべて満たすように、盤面のマスに石を置こうとしています。
- 石の置かれたマスはすべて連結 $\color{red} ^{*1}$ である。
- 石の置かれたマスはちょうど $K$ 個である。
- 石の置かれたマスと上下左右に隣接する空きマスはちょうど $K$ 個である。
このような石の置き方が存在するか判定し、存在する場合その置き方を一つ答えてください。
$T$ 個のテストケースが与えられるので、それぞれについて答えてください。
$\color{red} ^{*1}$ 連結とは(クリックで開く)
石の置かれたマスの組 $(i, j), (i', j')$ が連結であるとは、以下の条件を満たすことを表します。
- マス $(i, j)$ から上下左右に隣接する石の置いてあるマスへ移動する操作を繰り返すことで、マス $(i', j')$ に到達できる。
石の置かれたマスがすべて連結であるとは、任意の石の置かれたマスの組が連結であることを表します。
制約
- $1 \leq T$
- 各テストケースについて、以下の制約をすべて満たす。
- $2 \leq N \leq 500$
- $1 \leq K \leq N^2$
- 一つの入力ファイルにおける $N^2$ の総和は $5 \times 10^5$ を超えない。
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられます。ここで $\mathrm{case}_t ~ (1 \leq t \leq T)$ は $t$ 番目のテストケースを表します。
$T$
$\mathrm{case}_1$
$\mathrm{case}_2$
$\vdots$
$\mathrm{case}_T$
各テストケースは以下の形式で与えられます。
$N$ $K$
出力
$T$ 個のテストケースについての答えを、番号順に改行区切りで出力してください。
各テストケースについて、問題文の条件を満たす石の置き方が存在する場合 Yes 、そうでないとき No と出力してください。
また、Yes であったとき、改行した後に石の置き方を以下の形式で出力してください。
$C_{1, 1} C_{1, 2} \ldots C_{1, N}$
$C_{2, 1} C_{2, 2} \ldots C_{2, N}$
$\vdots$
$C_{N, 1} C_{N, 2} \ldots C_{N, N}$
ここで $C_{i, j} ~ (1 \leq i, j \leq N)$ は、マス $(i, j)$ に石が置かれているとき # 、そうでないとき . です。
問題文の条件を満たす石の置き方が複数ある場合、そのいずれを出力しても正解と判定されます。
サンプル
サンプル1
入力
2 5 10 9 1
出力
Yes ..... ##### ##### ..... ..... No
$1$ 番目のテストケースについて、出力例の置き方が条件を満たします。理由は以下の通りです。
- 石の置いてあるマスはすべて連結である。
- 石の置いてあるマスの個数と石の置いてあるマスと上下左右に隣接する空きマスの個数がどちらも $K = 10$ である。
$2$ 番目のテストケースについて、条件を満たす石の置き方は存在しません。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。