QOJ.ac

QOJ

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

#16487. Đỉnh then chốt

统计

Cho một đồ thị có hướng $G$ gồm $n$ đỉnh và $\boldsymbol{n-1}$ cạnh có hướng, cùng một số nguyên dương $k$ không lớn hơn $n$. Bảo đảm rằng khi xem mọi cạnh của $G$ là vô hướng, đồ thị liên thông (tức là tạo thành một cây).

Có $q$ thao tác. Có năm loại thao tác với các tham số như sau:

  • 1 x y: đảo hướng cạnh giữa đỉnh $x$ và đỉnh $y$. Bảo đảm có một cạnh giữa đỉnh $x$ và đỉnh $y$;
  • 2 a: đảo hướng mọi cạnh đi vào đỉnh $a$;
  • 3 b: đảo hướng mọi cạnh đi ra từ đỉnh $b$;
  • 4 c: đảo hướng mọi cạnh đi vào và đi ra từ đỉnh $c$;
  • 5 p: đổi giá trị của $k$ thành $p$.

Cạnh đi vào đỉnh $u$ là cạnh có hướng có đỉnh kết thúc là $u$, còn cạnh đi ra từ đỉnh $u$ là cạnh có hướng có đỉnh bắt đầu là $u$.

Bạn cần duy trì đồ thị có hướng này và, trước thao tác đầu tiên cũng như sau mỗi thao tác, xác định xem mọi đỉnh khác $k$ có thể đi đến đỉnh $k$ theo các cạnh có hướng hiện tại hay không. Nếu có, in YES; nếu không, in NO.

Dữ liệu vào

Dòng đầu chứa ba số nguyên $n,k,q$ ($2 \le n \le 10^6$, $0 \le q \le 10^6$, $1 \le k \le n$).

Mỗi dòng trong $n-1$ dòng tiếp theo chứa hai số nguyên dương $u_i,v_i$, biểu thị một cạnh giữa đỉnh $u_i$ và đỉnh $v_i$, là cạnh có hướng từ đỉnh $u_i$ đến đỉnh $v_i$ ($1 \le u_i,v_i \le n$).

Mỗi dòng trong $q$ dòng tiếp theo chứa $2\sim3$ số nguyên dương mô tả một thao tác. Ý nghĩa và định dạng được nêu trong phần mô tả bài toán phía trên ($1 \le x,y,a,b,c,p \le n$).

Bảo đảm rằng khi xem mọi cạnh của $G$ là vô hướng, đồ thị liên thông (tức là tạo thành một cây), và khi thực hiện thao tác loại thứ nhất, có một cạnh giữa đỉnh $x$ và đỉnh $y$.

Dữ liệu ra

In tổng cộng $q+1$ dòng. Trước thao tác đầu tiên và sau mỗi thao tác, xác định xem mọi đỉnh khác $k$ có thể đi đến đỉnh $k$ theo các cạnh có hướng hiện tại hay không. Nếu có, in YES; ngược lại, in NO.

Ví dụ

Dữ liệu vào 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

Dữ liệu ra 1

YES
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO

Dữ liệu vào 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

Dữ liệu ra 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.