QOJ.ac

QOJ

時間限制: 4 s 記憶體限制: 512 MB 總分: 100

#2617. 浏览藏品

统计

你正在浏览一个包含 $n$ 个项目的在线集合,这些项目编号为 $1$ 到 $n$,排列在一个圆环上。每个项目 $i$ 右侧的项目是 $i+1$,项目 $n$ 右侧的项目是 $1$。类似地,每个项目 $i$ 左侧的项目是 $i-1$,项目 $1$ 左侧的项目是 $n$。

这些项目具有 $m$ 个参数,编号为 $1$ 到 $m$。项目 $i$ 的第 $j$ 个参数的值是一个整数 $a_{i,j}$。在浏览时,任何时刻都有一个指向某个项目的指针,称为当前项目。此外,你可以管理一组过滤条件。每个条件是一个二元组 $(j, v)$,表示项目的第 $j$ 个参数必须等于 $v$。当前项目始终满足集合中的所有条件。

为了浏览集合,你可以执行操作。每个操作必须是以下四种类型之一:

  • 点击“右移”。指针移动到当前项目右侧满足所有过滤条件的最近项目。特别地,如果当前项目是唯一满足条件的项,指针不移动。
  • 点击“左移”。类似地,指针移动到当前项目左侧满足所有过滤条件的最近项目;如果当前项目是唯一满足条件的项,指针保持在原位。
  • 添加一个新的过滤条件 $(j, v)$,其中 $j$ 和 $v$ 为整数。如果当前项目满足此条件,指针不移动。否则,指针移动到当前项目右侧满足所有过滤条件(包括新添加的条件)的最近项目。如果不存在这样的项目,则该操作非法,无法执行。
  • 从集合中移除任意过滤条件 $(j, v)$。指针不移动。

对于每一对有序项目 $(i, j)$,回答以下问题:

  • 如果你开始浏览时指针指向项目 $i$,且集合中没有任何过滤条件,那么将指针移动到项目 $j$ 所需的最少操作次数是多少?结束时过滤条件集合可以是任意状态。

输入格式

第一行包含两个整数 $n$ 和 $m$,表示集合中的项目数量和每个项目拥有的参数数量 ($2 \le n \le 500; 1 \le m \le 5$)。

接下来的 $n$ 行中,第 $i$ 行包含 $m$ 个整数 $a_{i,1}, a_{i,2}, \dots, a_{i,m}$,表示项目 $i$ 的参数值 ($1 \le a_{i,j} \le n$)。

输出格式

输出 $n$ 行,每行包含 $n$ 个整数。

在第 $i$ 行中,第 $j$ 个整数必须等于从项目 $i$ 移动到项目 $j$ 所需的最少操作次数,开始时过滤条件集合为空。

样例

样例输入 1

9 3
5 3 7
5 3 4
5 3 7
5 3 2
5 3 4
5 3 7
2 3 7
5 3 7
2 3 7

样例输出 1

0 1 2 1 2 3 1 2 1
1 0 1 1 2 2 1 3 2
2 1 0 1 1 2 1 3 2
3 2 1 0 1 1 1 3 2
3 2 2 1 0 1 1 3 2
3 1 2 1 1 0 1 2 2
2 1 3 1 2 1 0 1 2
2 1 3 1 2 2 1 0 1
1 1 3 1 2 3 2 1 0

说明

在样例测试中,以下是从项目 2 移动到项目 5 的一种可能的最快方式:

  • 添加一个新的过滤条件 $(3, 4)$。由于项目 2 的第 3 个参数值确实等于 4,指针保持在项目 2。
  • 点击“右移”。指针移动到当前项目右侧满足唯一激活条件 $(3, 4)$ 的最近项目。该项目是项目 5。(点击“左移”同样有效。)

以下是从项目 8 移动到项目 3 的一种可能的最快方式:

  • 添加一个新的过滤条件 $(3, 4)$。由于项目 8 不满足此条件,指针移动到当前项目右侧第 3 个参数值为 4 的最近项目。该项目是项目 2。
  • 移除过滤条件 $(3, 4)$。指针保持在项目 2。
  • 点击“右移”。由于集合中没有过滤条件,指针移动到项目 3。

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.