QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100

#16487. Sommet clé

Statistics

On vous donne un graphe orienté $G$ comportant $n$ sommets et $\boldsymbol{n-1}$ arêtes orientées, ainsi qu'un entier positif $k$ ne dépassant pas $n$. Il est garanti que, si toutes les arêtes de $G$ sont considérées comme non orientées, le graphe est connexe (c'est-à-dire qu'il forme un arbre).

Il y a $q$ opérations. Il existe cinq types d'opérations, avec les paramètres suivants :

  • 1 x y : inverser le sens de l'arête entre les sommets $x$ et $y$. Il est garanti qu'une arête existe entre les sommets $x$ et $y$ ;
  • 2 a : inverser le sens de toutes les arêtes entrantes du sommet $a$ ;
  • 3 b : inverser le sens de toutes les arêtes sortantes du sommet $b$ ;
  • 4 c : inverser le sens de toutes les arêtes entrantes et sortantes du sommet $c$ ;
  • 5 p : remplacer la valeur de $k$ par $p$.

Une arête entrante du sommet $u$ est une arête orientée dont l'extrémité d'arrivée est $u$, et une arête sortante du sommet $u$ est une arête orientée dont l'extrémité de départ est $u$.

Vous devez maintenir ce graphe orienté et, avant la première opération et après chaque opération, déterminer si tous les sommets autres que $k$ peuvent atteindre le sommet $k$ en suivant les arêtes orientées actuelles. Si oui, affichez YES ; sinon, affichez NO.

Entrée

La première ligne contient trois entiers $n,k,q$ ($2 \le n \le 10^6$, $0 \le q \le 10^6$, $1 \le k \le n$).

Chacune des $n-1$ lignes suivantes contient deux entiers positifs $u_i,v_i$, indiquant une arête entre les sommets $u_i$ et $v_i$, à savoir une arête orientée du sommet $u_i$ vers le sommet $v_i$ ($1 \le u_i,v_i \le n$).

Chacune des $q$ lignes suivantes contient $2\sim3$ entiers positifs décrivant une opération. Leur signification et leur format sont indiqués dans l'énoncé ci-dessus ($1 \le x,y,a,b,c,p \le n$).

Il est garanti que, si toutes les arêtes de $G$ sont considérées comme non orientées, le graphe est connexe (c'est-à-dire qu'il forme un arbre), et qu'une arête existe entre les sommets $x$ et $y$ lors d'une opération du premier type.

Sortie

Affichez au total $q+1$ lignes. Avant la première opération et après chaque opération, déterminez si tous les sommets autres que $k$ peuvent atteindre le sommet $k$ en suivant les arêtes orientées actuelles. Si oui, affichez YES ; sinon, affichez NO.

Exemples

Entrée 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

Sortie 1

YES
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO

Entrée 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

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