QOJ.ac

QOJ

Limite de temps : 2 s Limite de mémoire : 1024 MB Points totaux : 100 Hackable ✓

#18493. 흔한 타일 색칠 문제

Statistiques

Istnieje wiele problemów związanych z kolorowaniem i układaniem kafelków. Ten problem jest jednym z nich i dotyczy L-tromin, czyli figur powstałych z połączenia w kształt litery L trzech kwadratowych kafelków o boku długości 1. Uwzględniając obroty, istnieją 4 różne kształty L-tromina, jak pokazano poniżej.

Rysunek I.1: L-tromina

Rozważmy kwadratową planszę składającą się z $2^k \times 2^k$ kafelków dla dodatniej liczby całkowitej $k$. Wiadomo, że niezależnie od tego, który kafelek zostanie usunięty z planszy, pozostałą część można idealnie pokryć nienachodzącymi na siebie L-trominami. Może istnieć wiele różnych sposobów na takie rozmieszczenie L-tromin.

Po rozmieszczeniu L-tromin chcemy pokolorować każde z nich tak, aby wszystkie L-tromina były rozróżnialne. Mówimy, że L-tromina są rozróżnialne, jeśli każde L-tromino ma inny kolor niż wszystkie inne L-tromina, z którymi dzieli wspólną krawędź.

Ponieważ te L-tromina leżą na płaszczyźnie, na mocy słynnego twierdzenia o czterech barwach można je pokolorować przy użyciu zaledwie 4 kolorów tak, aby wszystkie były rozróżnialne. Co ciekawe, niezależnie od pozycji usuniętego kafelka, zawsze istnieje takie rozmieszczenie, które można pokolorować przy użyciu co najwyżej 3 kolorów, zachowując rozróżnialność wszystkich L-tromin.

Mając dany rozmiar planszy oraz pozycję usuniętego kafelka, znajdź przykładowe rozmieszczenie i pokolorowanie L-tromin spełniające powyższe warunki.

Wejście

W pierwszym wierszu podane są: liczba całkowita $T$ oznaczająca łączną liczbę przypadków testowych oraz liczba całkowita $k$ określająca rozmiar planszy ($1 \le T \le 2^{10}$, $1 \le k \le 10$).

Wartość $T \times 2^{2k}$ jest nie większa niż $2^{22}$.

W kolejnych $T$ wierszach podane są po dwie liczby całkowite $a$ i $b$ oddzielone spacją, określające pozycję usuniętego kafelka dla każdego przypadku testowego ($1 \le a, b \le 2^k$).

Wyjście

Dla każdego przypadku testowego wypisz w $2^k$ wierszach sposób pokolorowania L-tromin na kwadratowej planszy o rozmiarze $2^k \times 2^k$ kafelków po usunięciu kafelka w $a$-tym wierszu i $b$-tej kolumnie.

Spośród nich, $i$-ty wiersz reprezentuje układ $i$-tego wiersza planszy.

Kolory kafelków należy oznaczyć literami a, b lub c, a usunięty kafelek należy oznaczyć znakiem @. Oczywiście dwa L-tromina sąsiadujące krawędzią nie mogą mieć tego samego koloru.

Przykład

Wejście 1

2 1
1 2
2 2

Wyjście 1

a@
aa
bb
b@

Wejście 2

1 3
7 6

Wyjście 2

bbccaacc
baacabbc
ccabcbaa
cabbccab
aaccaabb
bbcbbacc
bcabc@bc
ccaaccbb

Uwagi

Rysunek I.2: Błędna odpowiedź, ponieważ dwa sąsiednie L-tromina mają ten sam kolor na krawędzi oznaczonej czerwoną linią ciągłą.

Rysunek I.3: Jedna z możliwych poprawnych odpowiedzi dla planszy $2^3 \times 2^3$ przy $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.