QOJ.ac

QOJ

时间限制: 3.0 s 内存限制: 512 MB 总分: 100 可 Hack ✓

#14683. Fang das Monster

统计

Ein prähistorisches Monster ist über Dr. Peters Zeitmaschine auf der Erde angekommen. Du musst Dr. Peter helfen, es zu fangen.

Das Monster versteckt sich in einem Wald mit $n$ Knoten und $m$ Kanten. Hierbei ist ein Wald ein azyklischer ungerichteter Graph, der aus mehreren Bäumen bestehen kann. Du kannst die folgenden Operationen ausführen, um das Monster zu fangen:

  • Zuerst wählst du einen Knoten $x$ ($1 \le x \le n$).
  • Wenn sich das Monster aktuell am Knoten $x$ befindet, ist es gefangen.
  • Andernfalls bleibt das Monster ungefangen und kann sich nach der Operation zu einem beliebigen Nachbarknoten seines aktuellen Knotens bewegen, außer zum Knoten $x$. Oder es entscheidet sich dafür, sich nicht zu bewegen und am selben Knoten zu bleiben.

Wir definieren einen Wald genau dann als schön (nice), wenn eine endliche Folge $a$ von Knoten existiert, sodass unabhängig von der Startposition des Monsters und davon, wie es sich bewegt, das Ausführen von Operationen durch Auswahl von Knoten in der Reihenfolge von $a$ garantieren kann, dass das Monster gefangen wird.

Nun musst du $q$ Fragen von Dr. Peter beantworten. In jeder Frage gibt er dir ein Intervall $[l, r]$ ($1 \le l \le r \le n$). Du musst ihm sagen, ob der durch die Knoten mit Indizes in $[l, r]$ induzierte Teilwald (d. h. der Graph, der entsteht, wenn man nur diese Knoten und die Kanten zwischen ihnen behält) schön ist.

Eingabe

Die erste Zeile der Eingabe enthält drei ganze Zahlen $n$, $m$ und $q$ ($2 \le n \le 10^6$, $1 \le m \le n - 1$, $1 \le q \le 10^6$), wobei $n$ die Anzahl der Knoten im Wald, $m$ die Anzahl der Kanten im Wald und $q$ die Anzahl der Anfragen ist.

Die nächsten $m$ Zeilen der Eingabe enthalten jeweils zwei ganze Zahlen $u$ und $v$ ($1 \le u, v \le n$, $u \ne v$), die eine Kante im Wald darstellen.

Die nächsten $q$ Zeilen der Eingabe enthalten jeweils zwei ganze Zahlen $l$ und $r$ ($1 \le l \le r \le n$), die eine Anfrage darstellen.

Ausgabe

Gib für jede Anfrage eine einzelne Zeile „Yes“ aus, falls der Teilwald schön ist; andernfalls gib eine einzelne Zeile „No“ aus.

Du kannst die Antwort in beliebiger Groß- und Kleinschreibung ausgeben. Beispielsweise werden die Zeichenketten „yEs“, „yes“, „Yes“ und „YES“ als positive Antworten erkannt.

Beispiele

Eingabe 1

10 9 3
1 2
1 3
1 8
2 5
2 6
2 7
3 4
8 9
8 10
1 3
2 6
1 10

Ausgabe 1

Yes
Yes
No

Eingabe 2

100000 1 1
1 2
1 9999

Ausgabe 2

Yes

Hinweis

Im ersten Testfall:

  • In der ersten Anfrage kannst du für den Teilwald $[1, 3]$ die Folge $a = [3, 1, 2]$ wählen.
  • In der zweiten Anfrage kannst du für den Teilwald $[2, 6]$ die Folge $a = [3, 4, 5, 2, 6]$ wählen.
  • In der dritten Anfrage lässt sich für den Teilwald $[1, 10]$ beweisen, dass keine endliche gültige Folge $a$ existiert.

Im zweiten Testfall:

  • In der einzigen Anfrage kannst du für den Teilwald $[1, 9999]$ die Folge $a = [1, 2, \dots, 9999]$ wählen.

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.