trang chủ / bài tập / watertree

Cây nước

Đề bài

Mô tả

Cho một cây có gốc gồm n đỉnh, đỉnh gốc là đỉnh số 1. Mỗi đỉnh là một bể chứa, ban đầu tất cả các bể đều rỗng. Các cạnh của cây là các đường ống dẫn nước theo chiều từ cha xuống con.

Bạn cần xử lý q thao tác trên cây, mỗi thao tác thuộc một trong ba loại sau:

  1. Đổ nước vào đỉnh v: đỉnh v và toàn bộ các đỉnh thuộc cây con gốc v đều được lấp đầy nước.
  2. Tháo cạn đỉnh v: đỉnh v và tất cả tổ tiên của v (đường đi từ v lên gốc) đều bị tháo cạn nước.
  3. Truy vấn đỉnh v: trả lời 1 nếu hiện tại đỉnh v đang chứa nước, ngược lại trả lời 0.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số đỉnh của cây.
  • n1 dòng tiếp theo, mỗi dòng chứa hai số ai, bi mô tả một cạnh của cây.
  • Dòng tiếp theo chứa số nguyên q — số thao tác.
  • q dòng tiếp theo, mỗi dòng chứa hai số ci, vi trong đó ci là loại thao tác và vi là đỉnh được thao tác.

Dữ liệu ra

Với mỗi thao tác loại 3, in ra một dòng chứa 1 nếu đỉnh đang chứa nước, 0 nếu rỗng. Các câu trả lời in theo đúng thứ tự xuất hiện trong dữ liệu vào.

Ràng buộc

  • 1n500000
  • 1q500000
  • 1ai,bin, aibi
  • 1ci3, 1vin
  • Dữ liệu vào đảm bảo đồ thị cho là một cây.

Ví dụ

Input Output Giải thích
5
1 2
5 1
2 3
4 2
12
1 1
2 3
3 1
3 2
3 3
3 4
1 2
2 4
3 1
3 3
3 4
3 5
0
0
0
1
0
1
0
1
Sau thao tác 1 1, toàn bộ cây có nước. Sau 2 3, đỉnh 3 và các tổ tiên (2, 1) bị tháo cạn, chỉ còn 45 có nước. Sau 1 2, cây con của 2 (gồm 2,3,4) đầy nước. Sau 2 4, đỉnh 4 và tổ tiên (2, 1) bị tháo cạn; còn lại nước ở 35.
3
1 2
1 3
4
1 1
2 2
3 1
3 3
0
1
Sau 1 1, cả cây đầy nước. Sau 2 2, đỉnh 2 và đỉnh 1 bị tháo cạn. Đỉnh 1 rỗng, đỉnh 3 vẫn đầy.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0