QOJ.ac

QOJ

時間限制: 2 s 記憶體限制: 1024 MB 總分: 100 可 Hack ✓

#18493. よくあるタイルの彩色問題

统计

世の中には彩色問題も、タイルを敷き詰める問題も多く存在する。この問題もその一つであり、一辺の長さが $1$ の正方形のタイル $3$ 個を L 字型に繋ぎ合わせた図形である L-トロミノを扱う。L-トロミノは回転を含めて、以下のように $4$ つの形状がある。

図 I.1: L-トロミノ

正の整数 $k$ に対し、 $2^k \times 2^k$ 個のタイルからなる正方形の盤面を考えてみよう。ここで、タイルを $1$ つどの位置から取り除いたとしても、盤面上に L-トロミノを重ならないように適切に配置することで、残りの部分を隙間なく敷き詰めることができることが知られている。このように L-トロミノを配置する方法は複数存在し得る。

このように L-トロミノを配置した後、それぞれの L-トロミノに色を塗ることで、すべての L-トロミノが区別できるようにしたい。ある L-トロミノが、辺を共有する他のすべての L-トロミノと異なる色であるとき、L-トロミノが区別されると呼ぶ。

これらの L-トロミノは同一平面上に置かれているため、有名な四色定理により、 $4$ つの色だけを用いてすべての L-トロミノが区別できるように彩色することができる。興味深いことに、タイルを $1$ つどの位置から取り除いたとしても、 $3$ 色以下の色ですべての L-トロミノを区別できるように彩色できる配置が存在する。

盤面の大きさと取り除いたタイルの位置が与えられるとき、上記の内容に従って L-トロミノを配置し、彩色する一例を求めてみよう。

入力

1行目には、総テストケース数である整数 $T$ と、盤面の大きさを決定する整数 $k$ が与えられる。 ($1 \le T \le 2^{10}$, $1 \le k \le 10$)

$T \times 2^{2k}$ は $2^{22}$ 以下である。

その後 $T$ 行にわたって、各テストケースごとに $2$ つの整数 $a$ と $b$ が空白で区切られて与えられる。 ($1 \le a, b \le 2^k$)

出力

各テストケースごとに $2^k$ 行にわたって、 $2^k \times 2^k$ 個のタイルからなる正方形の盤面において、上から $a$ 番目の行、左から $b$ 番目のタイルを取り除いたときの L-トロミノの彩色方法を出力する。このうち $i$ 番目の行は、盤面の $i$ 番目の行の配置を表す。

タイルの色は a, b, c のいずれかであり、取り除いたタイルは @ で表される。もちろん、辺を共有して隣接する $2$ つの L-トロミノの色が同じになってはならない。

入出力例

入力 1

2 1
1 2
2 2

出力 1

a@
aa
bb
b@

入力 2

1 3
7 6

出力 2

bbccaacc
baacabbc
ccabcbaa
cabbccab
aaccaabb
bbcbbacc
bcabc@bc
ccaaccbb

注記

図 I.2: 赤い実線で示された辺で隣接する2つの L-トロミノの色が同じであるため誤答

図 I.3: $2^3 \times 2^3$ の盤面において $a = 7, b = 6$ のときに可能な正答の一つ

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.