9539.地图编辑器

Time Limit: 1s Memory Limit: 512MB

你正在实现一款简易的地图编辑器软件。

在这款简易地图编辑器中,树的形状只有一种,如下图所示,其中 “$\texttt{X}$” 为树的图块,“$\texttt{.}$” 为透明图块,第 5 行第 3 列为树根:
$$\texttt{..X..}\\ \texttt{.XXX.}\\ \texttt{XXXXX}\\ \texttt{..X..}\\ \texttt{..X..}$$
新建一张 $n\times m$ 的地图时,所有格子都是空地,优先级为 0,空地也用 “$\texttt{.}$” 表示。地图由 $n\times m$ 个格子组成,从上到下依次为第 $1,2,\dots,n$ 行,从左到右依次为第 $1,2,\dots,m$ 列。接下来,用户将往地图上放置 $k$($1\leq k\leq 9$)棵树。第 $i$($1\leq i\leq k$)次放置操作中,用户将选中地图内的格子($x_i,y_i$),将其作为第 $i$ 棵树的树根的位置,这棵树所有非透明图块均用数字 $i$ 表示,优先级均为 $x_i$。

你的任务是根据放置信息绘制出地图,每个位置仅需展示优先级最高的图块,并请忽略所有超出地图范围的图块。

Input Format(From the terminal/stdin)

第一行包含一个正整数 $T$($1\leq T\leq 10$),表示测试数据的组数。

每组数据第一行包含三个正整数 $n,m,k$($1\leq n,m\leq 10$, $1\leq k\leq9$),分别表示地图的尺寸以及树的数量。

接下来 $k$ 行,每行两个正整数 $x_i,y_i$($1\leq x_i\leq n$, $1\leq y_i\leq m$),依次表示每棵树的树根位置。

输入数据保证不会有两棵树位于同一行。

Output Format(To the terminal/stdout)

对于每组数据输出 $n$ 行,每行一个长度为 $m$ 的字符串,从上到下表示地图。

Sample Input

Copy
2
7 7 3
4 5
6 4
3 1
3 4 1
3 2 \n
 · · \n
 · \n
 · \n
 · \n
 · · \n
 · \n

Sample Output

Copy
333111.
3.12111
3.222..
.22222.
...2...
...2...
.......
1111
.1..
.1..       \n
       \n
       \n
       \n
       \n
       \n
       \n
    \n
    \n
    \n
Source: 2025“钉耙编程”中国大学生算法设计暑期联赛(7), HDU, 8055

Submit

请先 登录

© 2025 FAQs