QOJ.ac

QOJ

Time Limit: 4 s Memory Limit: 512 MB Total points: 100

#2617. Parcourir la collection

Statistics

Vous parcourez une collection en ligne de $n$ objets numérotés de $1$ à $n$ et disposés en cercle. L'objet à droite de chaque objet $i$ est l'objet $i+1$, et l'objet à droite de l'objet $n$ est l'objet $1$. De même, l'objet à gauche de chaque objet $i$ est l'objet $i-1$, et l'objet à gauche de l'objet $1$ est l'objet $n$.

Les objets possèdent $m$ paramètres numérotés de $1$ à $m$. La valeur du paramètre $j$ de l'objet $i$ est un entier $a_{i,j}$.

Pendant la navigation, à tout instant, un pointeur désigne un objet, appelé l'objet courant.

De plus, vous pouvez gérer un ensemble de conditions de filtrage. Chaque condition est une paire $(j,v)$, signifiant que le $j$-ème paramètre de l'objet doit être égal à $v$. L'objet courant satisfait toujours toutes les conditions de l'ensemble.

Pour parcourir la collection, vous pouvez effectuer des opérations. Chaque opération doit être de l'un des quatre types suivants :

  • Cliquer sur « droite ». Le pointeur se déplace vers l'objet le plus proche à droite de l'objet courant qui satisfait toutes les conditions de filtrage. En particulier, si l'objet courant est le seul de ce type, le pointeur ne bouge pas.

  • Cliquer sur « gauche ». De même, le pointeur se déplace vers l'objet le plus proche à gauche de l'objet courant qui satisfait toutes les conditions de filtrage, et reste sur place si l'objet courant est le seul de ce type.

  • Ajouter une nouvelle condition de filtrage $(j,v)$, pour certains entiers $j$ et $v$. Si l'objet courant satisfait cette condition, le pointeur ne bouge pas. Sinon, il se déplace vers l'objet le plus proche à droite de l'objet courant qui satisfait toutes les conditions de filtrage, y compris la nouvelle. S'il n'existe aucun objet de ce type, l'opération est illégale et ne peut pas être effectuée.

  • Supprimer de l'ensemble une condition de filtrage $(j,v)$ quelconque. Le pointeur ne bouge pas.

Pour chaque paire ordonnée d'objets $(i,j)$, répondez à la question suivante :

  • Si vous commencez à parcourir la collection avec le pointeur sur l'objet $i$ et sans aucune condition de filtrage dans l'ensemble, quel est le nombre minimal d'opérations nécessaire pour déplacer le pointeur vers l'objet $j$ ? L'ensemble des conditions de filtrage peut être quelconque à la fin.

Entrée

La première ligne contient deux entiers $n$ et $m$, indiquant le nombre d'objets de la collection et le nombre de paramètres de chaque objet ($2\le n\le500$; $1\le m\le5$).

La $i$-ème des $n$ lignes suivantes contient $m$ entiers $a_{i,1},a_{i,2},\ldots,a_{i,m}$, indiquant les valeurs des paramètres de l'objet $i$ ($1\le a_{i,j}\le n$).

Sortie

Affichez $n$ lignes contenant chacune $n$ entiers.

Le $j$-ème entier de la $i$-ème ligne doit être égal au nombre minimal d'opérations nécessaire pour déplacer le pointeur de l'objet $i$ vers l'objet $j$, en commençant avec un ensemble vide de conditions de filtrage.

Exemples

Entrée 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

Sortie 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

Remarque

Dans l'exemple, voici une façon la plus rapide possible de passer de l'objet 2 à l'objet 5 :

  • Ajouter une nouvelle condition de filtrage $(3,4)$. Puisque le paramètre 3 de l'objet 2 vaut effectivement 4, le pointeur reste sur l'objet 2.

  • Cliquer sur « droite ». Le pointeur se déplace vers l'objet le plus proche à droite de l'objet 2 satisfaisant l'unique condition active $(3,4)$. Il s'agit de l'objet 5. (Cliquer sur « gauche » à la place fonctionne également.)

Voici une façon la plus rapide possible de passer de l'objet 8 à l'objet 3 :

  • Ajouter une nouvelle condition de filtrage $(3,4)$. Puisque l'objet 8 ne satisfait pas cette condition, le pointeur se déplace vers l'objet le plus proche à droite de l'objet 8 dont le paramètre 3 vaut 4. Il s'agit de l'objet 2.

  • Supprimer la condition de filtrage $(3,4)$. Le pointeur reste sur l'objet 2.

  • Cliquer sur « droite ». Puisque l'ensemble ne contient aucune condition de filtrage, le pointeur se déplace vers l'objet 3.

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#3151EditorialOpenNew Editorial for Problem #2617EustiaAstraeaView
#1945EditorialOpenNew Editorial for Problem #2617zrczrczrczrcView

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.