QOJ.ac

QOJ

時間限制: 2 s 記憶體限制: 512 MB 總分: 100

#16487. Ponto-chave

统计

É dado um grafo dirigido $G$ com $n$ vértices e $\boldsymbol{n-1}$ arestas dirigidas, e um inteiro positivo $k$ não superior a $n$. É garantido que, ao considerar todas as arestas de $G$ como não dirigidas, o grafo é conexo (ou seja, forma uma árvore).

Há $q$ operações. Existem cinco tipos de operações, com os seguintes parâmetros:

  • 1 x y: inverta a direção da aresta entre os vértices $x$ e $y$. É garantido que existe uma aresta entre os vértices $x$ e $y$;
  • 2 a: inverta a direção de todas as arestas que entram no vértice $a$;
  • 3 b: inverta a direção de todas as arestas que saem do vértice $b$;
  • 4 c: inverta a direção de todas as arestas que entram ou saem do vértice $c$;
  • 5 p: altere o valor de $k$ para $p$.

Uma aresta de entrada do vértice $u$ é uma aresta dirigida cujo destino é $u$, e uma aresta de saída do vértice $u$ é uma aresta dirigida cuja origem é $u$.

Mantenha este grafo dirigido e, antes da primeira operação e após cada operação, determine se todos os vértices diferentes de $k$ conseguem alcançar o vértice $k$ seguindo as arestas dirigidas atuais. Em caso afirmativo, imprima YES; caso contrário, imprima NO.

Entrada

A primeira linha contém três inteiros $n,k,q$ ($2 \le n \le 10^6$, $0 \le q \le 10^6$, $1 \le k \le n$).

Cada uma das $n-1$ linhas seguintes contém dois inteiros positivos $u_i,v_i$, indicando uma aresta entre os vértices $u_i$ e $v_i$: uma aresta dirigida do vértice $u_i$ para o vértice $v_i$ ($1 \le u_i,v_i \le n$).

Cada uma das $q$ linhas seguintes contém $2\sim3$ inteiros positivos que descrevem uma operação. O significado e o formato encontram-se na descrição acima ($1 \le x,y,a,b,c,p \le n$).

É garantido que, ao considerar todas as arestas de $G$ como não dirigidas, o grafo é conexo (ou seja, forma uma árvore), e que, ao realizar uma operação do primeiro tipo, existe uma aresta entre os vértices $x$ e $y$.

Saída

Imprima $q+1$ linhas no total. Antes da primeira operação e após cada operação, determine se todos os vértices diferentes de $k$ conseguem alcançar o vértice $k$ seguindo as arestas dirigidas atuais. Em caso afirmativo, imprima YES; caso contrário, imprima NO.

Exemplos

Entrada 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

Saída 1

YES
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO

Entrada 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

Saída 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.