QOJ.ac

QOJ

حد الوقت: 3 s حد الذاكرة: 256 MB مجموع النقاط: 100

#367. Langes Herrenhaus

الإحصائيات

In der Nähe von JOI-kuns Haus steht ein weitläufiges Herrenhaus. Das Herrenhaus hat $N$ Zimmer, die von Osten nach Westen in einer Reihe liegen. Das $i$-te Zimmer vom östlichsten Zimmer aus heißt Zimmer $i$. Für jedes $i$ mit $1\le i\le N-1$ sind Zimmer $i$ und Zimmer $i+1$ durch einen Korridor verbunden. Die Korridore können in beiden Richtungen durchquert werden. Um von einem Zimmer aus einen Korridor zu betreten, benötigt man einen Schlüssel. Jeder Schlüssel hat eine Nummer, die sein Typ genannt wird. Mehrere Schlüssel können denselben Typ haben.

Um von Zimmer $i$ oder Zimmer $i+1$ aus den Korridor zwischen ihnen zu betreten, benötigt man einen Schlüssel vom Typ $C_i$.

In Zimmer $i$ liegen $B_i$ Schlüssel. Ihre Typen sind $A_{i,j}$ ($1\le j\le B_i$). Wenn JOI-kun ein Zimmer betritt, nimmt er alle Schlüssel in diesem Zimmer mit. Anschließend kann er sie verwenden, um Korridore zu betreten.

JOI-kun kann Schlüssel beliebig oft verwenden. Manchmal erhält er mehrere Schlüssel desselben Typs. Mehrere Schlüssel eines Typs zu besitzen bringt ihm jedoch keinen besonderen Vorteil gegenüber dem Besitz nur eines Schlüssels dieses Typs.

Für den Fall, dass er sich im Herrenhaus verirrt, plant JOI-kun ein Programm zu schreiben, das folgende Anfragen beantwortet:

  • Wenn JOI-kun ohne Schlüssel in Zimmer $x$ kommt, kann er dann Zimmer $y$ erreichen?

Deine Aufgabe ist es, anstelle von JOI-kun ein Programm zu schreiben, das diese Anfragen beantwortet.

Aufgabe

Schreibe ein Programm, das anhand der Informationen über das Herrenhaus und die Anfragen für jede Anfrage entscheidet, ob er von einem Zimmer zu einem anderen gelangen kann, wenn er sich zunächst ohne Schlüssel im Herrenhaus befindet.

Eingabe

Lies die folgenden Daten von der Standardeingabe.

  • Die erste Zeile enthält eine ganze Zahl $N$, die Anzahl der Zimmer im Herrenhaus.
  • Die zweite Zeile enthält $N-1$ durch Leerzeichen getrennte ganze Zahlen $C_1,C_2,\ldots,C_{N-1}$. Das bedeutet, dass ein Schlüssel vom Typ $C_i$ benötigt wird, um den Korridor zwischen Zimmer $i$ und Zimmer $i+1$ zu betreten.
  • Die $i$-te Zeile ($1\le i\le N$) der folgenden $N$ Zeilen enthält eine positive ganze Zahl $B_i$ und $B_i$ durch Leerzeichen getrennte ganze Zahlen $A_{i,1},A_{i,2},\ldots,A_{i,B_i}$. Das bedeutet, dass in Zimmer $i$ genau $B_i$ Schlüssel liegen und ihre Typen $A_{i,j}$ ($1\le j\le B_i$) sind.
  • Die nächste Zeile enthält eine ganze Zahl $Q$, die Anzahl der Anfragen.
  • Die $k$-te Zeile ($1\le k\le Q$) der folgenden $Q$ Zeilen enthält zwei durch ein Leerzeichen getrennte ganze Zahlen $X_k,Y_k$. Die $k$-te Anfrage fragt, ob JOI-kun von Zimmer $X_k$ zu Zimmer $Y_k$ gelangen kann, wenn er sich zunächst ohne Schlüssel in Zimmer $X_k$ befindet.

Ausgabe

Schreibe $Q$ Zeilen in die Standardausgabe. Die $k$-te Zeile ($1\le k\le Q$) dieser $Q$ Zeilen enthält YES, wenn er von Zimmer $X_k$ zu Zimmer $Y_k$ gelangen kann, wenn er sich zunächst ohne Schlüssel in Zimmer $X_k$ befindet. Andernfalls enthält sie NO.

Beschränkungen

Alle Eingabedaten erfüllen die folgenden Bedingungen.

  • $2\le N\le 500\,000$.
  • $1\le Q\le 500\,000$.
  • $1\le B_1+B_2+\cdots+B_N\le 500\,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$).
  • Die $B_i$ ganzen Zahlen $A_{i,1},\ldots,A_{i,B_i}$ sind paarweise verschieden ($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$).

Teilaufgaben

Diese Aufgabe hat insgesamt 4 Teilaufgaben. Die Punkte und zusätzlichen Beschränkungen jeder Teilaufgabe sind wie folgt:

Teilaufgabe 1 [5 Punkte]

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

Teilaufgabe 2 [5 Punkte]

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

Teilaufgabe 3 [15 Punkte]

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

Teilaufgabe 4 [75 Punkte]

Es gibt keine zusätzlichen Beschränkungen.

Beispiele

Eingabe 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

Ausgabe 1

YES
NO
NO
YES

Hinweis

  • Bei der ersten Anfrage erreicht JOI-kun Zimmer 4, wenn er die Zimmer 2, 1, 2, 3, 4 in dieser Reihenfolge besucht.
  • Bei der zweiten Anfrage kann er nur die Zimmer 3 und 4 besuchen. Da er nur Schlüssel der Typen 1 und 3 erhalten kann, kann er Zimmer 2 nicht erreichen.
  • Bei der dritten Anfrage kann er keinen Schlüssel vom Typ 4 für den Weg von Zimmer 5 zu Zimmer 4 erhalten. Daher kann er Zimmer 5 nicht erreichen.
  • Bei der vierten Anfrage erreicht er Zimmer 3, wenn er die Zimmer 5, 4, 3 in dieser Reihenfolge besucht.

Eingabe 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

Ausgabe 2

NO
YES
NO
YES

Eingabe 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

Ausgabe 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.