QOJ.ac

QOJ

Limite de temps : 3.0 s Limite de mémoire : 512 MB Points totaux : 100 Hackable ✓

#14683. Поймать монстра

Statistiques

Доисторический монстр прибыл на Землю с помощью машины времени доктора Питера. Вам нужно помочь доктору Питеру поймать его.

Монстр прячется в лесу с $n$ вершинами и $m$ рёбрами. Здесь лесом называется ациклический неориентированный граф, который может состоять из нескольких деревьев. Вы можете выполнять следующие операции, чтобы поймать монстра:

  • Сначала вы выбираете вершину $x$ ($1 \le x \le n$).
  • Затем, если монстр в данный момент находится в вершине $x$, он пойман.
  • В противном случае монстр остаётся непойманным, и после операции он может перейти в любую вершину, смежную с его текущей вершиной, кроме вершины $x$. Или же он может решить не двигаться и остаться в той же вершине.

Мы называем лес хорошим (nice) тогда и только тогда, когда существует конечная последовательность вершин $a$ такая, что независимо от начального положения монстра и того, как он перемещается, выполнение операций путём выбора вершин в порядке последовательности $a$ гарантирует поимку монстра.

Теперь вам нужно ответить на $q$ вопросов доктора Питера. В каждом вопросе он даёт вам отрезок $[l, r]$ ($1 \le l \le r \le n$). Вам нужно сказать ему, является ли подлес, порождённый вершинами с номерами из $[l, r]$ (то есть граф, образованный сохранением только этих вершин и рёбер между ними), хорошим.

Входные данные

Первая строка входных данных содержит три целых числа $n$, $m$ и $q$ ($2 \le n \le 10^6$, $1 \le m \le n - 1$, $1 \le q \le 10^6$), где $n$ — количество вершин в лесу, $m$ — количество рёбер в лесу, а $q$ — количество запросов.

Следующие $m$ строк входных данных содержат по два целых числа $u$ и $v$ ($1 \le u, v \le n$, $u \ne v$), представляющих ребро в лесу.

Следующие $q$ строк входных данных содержат по два целых числа $l$ и $r$ ($1 \le l \le r \le n$), представляющих запрос.

Выходные данные

Для каждого запроса выведите одну строку «Yes», если подлес является хорошим; в противном случае выведите одну строку «No».

Вы можете выводить ответ в любом регистре (верхнем или нижнем). Например, строки «yEs», «yes», «Yes» и «YES» будут распознаны как положительные ответы.

Примеры

Входные данные 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

Выходные данные 1

Yes
Yes
No

Входные данные 2

100000 1 1
1 2
1 9999

Выходные данные 2

Yes

Примечание

В первом примере:

  • В первом запросе для подлеса $[1, 3]$ можно положить $a = [3, 1, 2]$.
  • Во втором запросе для подлеса $[2, 6]$ можно положить $a = [3, 4, 5, 2, 6]$.
  • В третьем запросе для подлеса $[1, 10]$ можно доказать, что конечной корректной последовательности $a$ не существует.

Во втором примере:

  • В единственном запросе для подлеса $[1, 9999]$ можно положить $a = [1, 2, \dots, 9999]$.

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.