QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 256 MB Total points: 100

#367. Le long manoir

Statistics

Un vaste manoir se trouve près de la maison de JOI-kun. Il comporte $N$ pièces alignées d'est en ouest. La $i$-ième pièce en partant de l'extrémité est est appelée pièce $i$. Pour chaque $i$ tel que $1\le i\le N-1$, les pièces $i$ et $i+1$ sont reliées par un couloir, que l'on peut parcourir dans les deux sens. Une clé est nécessaire pour entrer dans un couloir depuis une pièce. Chaque clé porte un numéro appelé son type. Plusieurs clés peuvent avoir le même type.

Depuis la pièce $i$ ou la pièce $i+1$, il faut une clé de type $C_i$ pour entrer dans le couloir qui les relie.

La pièce $i$ contient $B_i$ clés, de types $A_{i,j}$ ($1\le j\le B_i$). Lorsque JOI-kun entre dans une pièce, il ramasse toutes les clés qui s'y trouvent. Il peut ensuite les utiliser pour entrer dans les couloirs.

JOI-kun peut utiliser les clés autant de fois qu'il le souhaite. Il obtient parfois plusieurs clés du même type. Toutefois, posséder plusieurs clés d'un même type n'offre aucun avantage particulier par rapport au fait d'en posséder une seule.

Pour parer à la situation où il se perdrait dans le manoir, JOI-kun prévoit d'écrire un programme répondant aux requêtes suivantes :

  • Si JOI-kun arrive dans la pièce $x$ sans aucune clé, peut-il atteindre la pièce $y$ ?

Votre tâche consiste à écrire ce programme à la place de JOI-kun.

Tâche

Étant donné les informations sur le manoir et les requêtes, écrivez un programme qui détermine, pour chaque requête, s'il peut se déplacer d'une pièce à une autre en supposant qu'il se trouve initialement dans le manoir sans aucune clé.

Entrée

Lisez les données suivantes sur l'entrée standard.

  • La première ligne contient un entier $N$, le nombre de pièces du manoir.
  • La deuxième ligne contient $N-1$ entiers $C_1,C_2,\ldots,C_{N-1}$ séparés par des espaces. Une clé de type $C_i$ est nécessaire pour entrer dans le couloir reliant les pièces $i$ et $i+1$.
  • La $i$-ième des $N$ lignes suivantes ($1\le i\le N$) contient un entier positif $B_i$, suivi de $B_i$ entiers $A_{i,1},A_{i,2},\ldots,A_{i,B_i}$ séparés par des espaces. La pièce $i$ contient $B_i$ clés, dont les types sont $A_{i,j}$ ($1\le j\le B_i$).
  • La ligne suivante contient un entier $Q$, le nombre de requêtes.
  • La $k$-ième des $Q$ lignes suivantes ($1\le k\le Q$) contient deux entiers $X_k,Y_k$ séparés par un espace. La $k$-ième requête demande si JOI-kun peut se déplacer de la pièce $X_k$ à la pièce $Y_k$, en supposant qu'il se trouve initialement dans la pièce $X_k$ sans aucune clé.

Sortie

Écrivez $Q$ lignes sur la sortie standard. La $k$-ième ligne ($1\le k\le Q$) doit contenir YES s'il peut se déplacer de la pièce $X_k$ à la pièce $Y_k$ en partant de la pièce $X_k$ sans aucune clé. Sinon, elle doit contenir NO.

Contraintes

Toutes les données d'entrée satisfont les conditions suivantes.

  • $2\le N\le500\,000$.
  • $1\le Q\le500\,000$.
  • $1\le B_1+B_2+\cdots+B_N\le500\,000$.
  • $1\le B_i\le N$ ($1\le i\le N$).
  • $1\le C_i\le N$ ($1\le i\le N-1$).
  • $1\le A_{i,j}\le N$ ($1\le i\le N$, $1\le j\le B_i$).
  • Les $B_i$ entiers $A_{i,1},\ldots,A_{i,B_i}$ sont tous distincts ($1\le i\le N$).
  • $1\le X_k\le N$ ($1\le k\le Q$).
  • $1\le Y_k\le N$ ($1\le k\le Q$).
  • $X_k\ne Y_k$ ($1\le k\le Q$).

Sous-tâches

Cette tâche comporte au total 4 sous-tâches. Les scores et les contraintes supplémentaires de chacune sont les suivants :

Sous-tâche 1 [5 points]

  • $N\le5\,000$.
  • $Q\le5\,000$.
  • $B_1+B_2+\cdots+B_N\le5\,000$.

Sous-tâche 2 [5 points]

  • $N\le5\,000$.
  • $B_1+B_2+\cdots+B_N\le5\,000$.

Sous-tâche 3 [15 points]

  • $N\le100\,000$.
  • $C_i\le20$ ($1\le i\le N-1$).
  • $A_{i,j}\le20$ ($1\le i\le N$, $1\le j\le B_i$).

Sous-tâche 4 [75 points]

Il n'y a aucune contrainte supplémentaire.

Exemples

Entrée 1

5
1 2 3 4
2 2 3
1 1
1 1
1 3
1 4
4
2 4
4 2
1 5
5 3

Sortie 1

YES
NO
NO
YES

Remarque

  • Pour la première requête, si JOI-kun visite les pièces $2,1,2,3,4$ dans cet ordre, il atteint la pièce $4$.
  • Pour la deuxième requête, il ne peut visiter que les pièces $3$ et $4$. Comme il ne peut obtenir que des clés de types $1$ et $3$, il ne peut pas atteindre la pièce $2$.
  • Pour la troisième requête, il ne peut pas obtenir de clé de type $4$ depuis la pièce $5$ vers la pièce $4$. Il ne peut donc pas atteindre la pièce $5$.
  • Pour la quatrième requête, s'il visite les pièces $5,4,3$ dans cet ordre, il atteint la pièce $3$.

Entrée 2

5
2 3 1 3
1 3
1 2
1 1
1 3
1 2
4
1 3
3 1
4 3
2 5

Sortie 2

NO
YES
NO
YES

Entrée 3

7
6 3 4 1 2 5
1 1
1 5
1 1
1 1
2 2 3
1 4
1 6
3
4 1
5 3
4 7

Sortie 3

YES
NO
YES

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.