QOJ.ac

QOJ

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

#16487. Titik Kunci

統計

Diberikan sebuah graf berarah $G$ dengan $n$ simpul dan $\boldsymbol{n-1}$ sisi berarah, serta sebuah bilangan bulat positif $k$ yang tidak lebih besar dari $n$. Dijamin bahwa jika semua sisi $G$ dianggap tidak berarah, graf tersebut terhubung (yaitu membentuk sebuah pohon).

Ada $q$ operasi. Terdapat lima jenis operasi dengan parameter berikut:

  • 1 x y: balik arah sisi antara simpul $x$ dan $y$. Dijamin bahwa terdapat sisi antara simpul $x$ dan $y$;
  • 2 a: balik arah semua sisi masuk simpul $a$;
  • 3 b: balik arah semua sisi keluar simpul $b$;
  • 4 c: balik arah semua sisi masuk dan sisi keluar simpul $c$;
  • 5 p: ubah nilai $k$ menjadi $p$.

Sisi masuk simpul $u$ adalah sisi berarah yang berakhir di $u$, sedangkan sisi keluar simpul $u$ adalah sisi berarah yang berawal di $u$.

Anda harus memelihara graf berarah ini dan, sebelum operasi pertama serta setelah setiap operasi, menentukan apakah semua simpul selain simpul $k$ dapat mencapai simpul $k$ melalui sisi berarah saat itu. Jika bisa, cetak YES; jika tidak, cetak NO.

Masukan

Baris pertama berisi tiga bilangan bulat $n,k,q$ ($2 \le n \le 10^6$, $0 \le q \le 10^6$, $1 \le k \le n$).

Masing-masing dari $n-1$ baris berikutnya berisi dua bilangan bulat positif $u_i,v_i$, yang menyatakan adanya sisi antara simpul $u_i$ dan $v_i$, yaitu sisi berarah dari simpul $u_i$ menuju simpul $v_i$ ($1 \le u_i,v_i \le n$).

Masing-masing dari $q$ baris berikutnya berisi $2\sim3$ bilangan bulat positif yang menyatakan satu operasi. Makna dan formatnya diberikan dalam deskripsi soal di atas ($1 \le x,y,a,b,c,p \le n$).

Dijamin bahwa jika semua sisi $G$ dianggap tidak berarah, graf tersebut terhubung (yaitu membentuk sebuah pohon), dan ketika operasi jenis pertama dilakukan, terdapat sisi antara simpul $x$ dan $y$.

Keluaran

Cetak total $q+1$ baris. Sebelum operasi pertama dan setelah setiap operasi, tentukan apakah semua simpul selain simpul $k$ dapat mencapai simpul $k$ melalui sisi berarah saat itu. Jika bisa, cetak YES; jika tidak, cetak NO.

Contoh

Masukan 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

Keluaran 1

YES
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO

Masukan 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

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