P14108 [ZJCPC 2017] Domino Tiling

题目描述

Chiaki 有一个 $n \times m$ 的矩形棋盘。她想用多米诺骨牌(即 $2 \times 1$ 的矩形骨牌)铺满整个棋盘,要求满足: - 棋盘上的每一个格子都被覆盖,且任何两个骨牌不能重叠或部分跨出棋盘。 - 不能存在四个不同骨牌的角同时相交的点。 下图展示了一些不允许出现的排布: :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/x7djg92e.png) ::: 下图展示了两个 $4 \times 4$ 棋盘的合法铺法: :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/zuajpk7n.png) ::: 你还需要为棋盘上的每一张多米诺骨牌编上不同的编号。编号可以从 $1$ 到 $n \times m$ 之间任意选择。

输入格式

有多组测试数据。输入的第一行为一个整数 $T$,表示测试数据的组数。对于每组数据: 第一行包含两个整数 $n$ 和 $m$($1 \le n, m \le 100$),表示矩形棋盘的大小。 保证所有测试用例中 $n \times m$ 的总和不超过 $2 \times 10^6$。

输出格式

对于每组测试数据,输出一种满足题意要求的棋盘。输出共 $n$ 行,每行 $m$ 个整数。输出中的每个整数代表骨牌的 $id$,相同 $id$ 的格子属于同一张骨牌。 如果无解,则输出 “Impossible!”(不含引号)。

说明/提示

由 ChatGPT 5 翻译