QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 512 MB 満点: 100

#16487. Kluczowy wierzchołek

統計

Dany jest graf skierowany $G$ mający $n$ wierzchołków i $\boldsymbol{n-1}$ krawędzi skierowanych oraz dodatnia liczba całkowita $k$ nie większa niż $n$. Zagwarantowano, że po potraktowaniu wszystkich krawędzi grafu $G$ jako nieskierowanych graf jest spójny (czyli tworzy drzewo).

Należy wykonać $q$ operacji. Istnieje pięć rodzajów operacji o następujących parametrach:

  • 1 x y: odwróć kierunek krawędzi między wierzchołkami $x$ i $y$. Zagwarantowano, że istnieje krawędź między wierzchołkami $x$ i $y$;
  • 2 a: odwróć kierunki wszystkich krawędzi wchodzących do wierzchołka $a$;
  • 3 b: odwróć kierunki wszystkich krawędzi wychodzących z wierzchołka $b$;
  • 4 c: odwróć kierunki wszystkich krawędzi wchodzących do wierzchołka $c$ i wychodzących z niego;
  • 5 p: zmień wartość $k$ na $p$.

Krawędź wchodząca do wierzchołka $u$ to krawędź skierowana kończąca się w $u$, a krawędź wychodząca z wierzchołka $u$ to krawędź skierowana zaczynająca się w $u$.

Utrzymuj ten graf skierowany. Przed pierwszą operacją i po każdej operacji ustal, czy ze wszystkich wierzchołków innych niż $k$ można dotrzeć do wierzchołka $k$ po aktualnych krawędziach skierowanych. Jeśli tak, wypisz YES, w przeciwnym razie wypisz NO.

Wejście

Pierwszy wiersz zawiera trzy liczby całkowite $n,k,q$ ($2 \le n \le 10^6$, $0 \le q \le 10^6$, $1 \le k \le n$).

Każdy z kolejnych $n-1$ wierszy zawiera dwie dodatnie liczby całkowite $u_i,v_i$, oznaczające krawędź między wierzchołkami $u_i$ i $v_i$: krawędź skierowaną od wierzchołka $u_i$ do wierzchołka $v_i$ ($1 \le u_i,v_i \le n$).

Każdy z kolejnych $q$ wierszy zawiera $2\sim3$ dodatnie liczby całkowite opisujące jedną operację. Znaczenie i format podano powyżej w treści zadania ($1 \le x,y,a,b,c,p \le n$).

Zagwarantowano, że po potraktowaniu wszystkich krawędzi grafu $G$ jako nieskierowanych graf jest spójny (czyli tworzy drzewo), a podczas operacji pierwszego rodzaju istnieje krawędź między wierzchołkami $x$ i $y$.

Wyjście

Wypisz łącznie $q+1$ wierszy. Przed pierwszą operacją i po każdej operacji ustal, czy ze wszystkich wierzchołków innych niż $k$ można dotrzeć do wierzchołka $k$ po aktualnych krawędziach skierowanych. Jeśli tak, wypisz YES, w przeciwnym razie wypisz NO.

Przykład

Wejście 1

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

Wyjście 1

YES
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO

Wejście 2

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

Wyjście 2

YES
NO
YES
NO
NO
YES
NO
YES
NO
NO
NO

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.