奇数码问题

Luogu
IDLGP10454
Time1000ms
Memory512MB
DifficultyP5
树状数组排序
你一定玩过八数码游戏,它实际上是在一个 $3 \times 3$ 的网格中进行的,$1$ 个空格和 $1 \sim 8$ 这 $8$ 个数字恰好不重不漏地分布在这 $3 \times 3$ 的网格中。 例如: 5 2 8 1 3 _ 4 6 7 在游戏过程中,可以把空格与其上、下、左、右四个方向之一的数字交换(如果存在)。 例如在上例中,空格可与左、上、下面的数字交换,分别变成: 5 2 8 5 2 _ 5 2 8 1 _ 3 1 3 8 1 3 7 4 6 7 4 6 7 4 6 _ 奇数码游戏是它的一个扩展,在一个 $n \times n$ 的网格中进行,其中 $n$ 为奇数,$1$ 个空格和 $1 \sim n^2-1$ 这 $n^2-1$ 个数恰好不重不漏地分布在 $n \times n$ 的网格中。 空格移动的规则与八数码游戏相同,实际上,八数码就是一个 $n=3$ 的奇数码游戏。 现在给定两个奇数码游戏的局面,请判断是否存在一种移动空格的方式,使得其中一个局面可以变化到另一个局面。 ## Input 多组数据,对于每组数据: 第 $1$ 行输入一个整数 $n$,$n$ 为奇数。 接下来 $n$ 行每行 $n$ 个整数,表示第一个局面。 再接下来 $n$ 行每行 $n$ 个整数,表示第二个局面。 局面中每个整数都是 $0 \sim n^2-1$ 之一,其中用 $0$ 代表空格,其余数值与奇数码游戏中的意义相同,保证这些整数的分布不重不漏。 ## Output 对于每组数据,若两个局面可达,输出 `TAK`,否则输出 `NIE`。 [samples] ## Note $1 \le n < 500$
Samples
Input #1
3
1 2 3
0 4 6
7 5 8
1 2 3
4 5 6
7 8 0
1
0
0
Output #1
TAK
TAK
API Response (JSON)
{
  "problem": {
    "name": "奇数码问题",
    "description": {
      "content": "你一定玩过八数码游戏,它实际上是在一个 $3 \\times 3$ 的网格中进行的,$1$ 个空格和 $1 \\sim 8$ 这 $8$ 个数字恰好不重不漏地分布在这 $3 \\times 3$ 的网格中。 例如:     5 2 8     1 3 _     4 6 7      在游戏过程中,可以把空格与其上、下、左、右四个方向之一的数字交换(如果存在)。 例如在上例中,空格可与左、上、下",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P5"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10454"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "你一定玩过八数码游戏,它实际上是在一个 $3 \\times 3$ 的网格中进行的,$1$ 个空格和 $1 \\sim 8$ 这 $8$ 个数字恰好不重不漏地分布在这 $3 \\times 3$ 的网格中。\n\n例如:\n\n    5 2 8\n    1 3 _\n    4 6 7\n    \n\n在游戏过程中,可以把空格与其上、下、左、右四个方向之一的数字交换(如果存在)。\n\n例如在上例中,空格可与左、上、下...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments