Tập hợp đẹp (Contest Practice VNOI 2021 Round 3)

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Prolog, Pypy, Pypy 3, Ruby, Rust, Scala, Swift
Điểm: 2100 Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho một cây có \(n\) đỉnh đánh số từ \(1\) đến \(n\) và đỉnh \(1\) là gốc. Mỗi đỉnh trên đều được tô màu, đỉnh thứ \(i\) được tô bởi màu \(a_{i}\).

Một tập hợp các đỉnh trên được gọi là đep nếu có hơn một nửa số đỉnh trong tập được tô bởi cùng một màu.

\(q\) truy vấn, mỗi truy vấn thuộc một trong các dạng sau:

  • Truy vấn dạng: \(1\) \(u\), truy vấn này kiểm tra xem tập đỉnh gồm các đỉnh nằm trong cây con gốc \(u\) có phải là một tập đẹp hay không.
  • Truy vấn dạng: \(2\) \(u\), truy vấn này kiểm tra xem tập đỉnh gồm các đỉnh nằm ngoài cây con gốc \(u\) có phải là một tập đẹp hay không.
  • Truy vấn dạng \(3\) \(u\) \(v\), truy vấn này kiểm tra xem tập đỉnh gồm các đỉnh nằm trên đường đi đơn từ \(u\) tới \(v\) (tính cả \(u\)\(v\)) có phải là một tập đẹp hay không.

Input

  • Dòng đầu tiên chứa số nguyên dương \(n, q\) \((1 \leq n, q \leq 50000)\) là số đỉnh của cây và số lượng truy vấn.
  • Dòng thứ hai chứa \(n\) số, số thứ \(i\)\(a_{i}\) mô tả màu sắc của đỉnh \(i\) \((1 \leq a_{i} \leq n)\).
  • \(n − 1\) dòng tiếp theo, mối dòng chứa hai số nguyên dương \(u, v\) \((1 \leq u, v \leq n)\) mô tả cạnh nối hai đỉnh \(u\)\(v\).
  • Tiếp theo gồm có \(q\) dòng mô tả các truy vấn. Các truy vấn thuộc \(1\) trong \(3\) dạng \(1\) \(u\), \(2\) \(u\) hoặc \(3\) \(u\) \(v\).

Output

  • Ghi ra \(q\) dòng, mỗi dòng chứa một số nguyên là kết quả của \(q\) truy vấn. Nếu truy vấn đang xét có quá nửa số đỉnh được tô cùng màu, in ra giá trị của màu đó. Ngược lại, in ra \(−1\).

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): \(1 \leq n, q \leq 2 000\).
  • Subtask \(2\) (\(20\%\) số điểm): mỗi đỉnh có tối đa \(2\) cạnh nối trực tiếp.
  • Subtask \(3\) (\(20\%\) số điểm): \(1 \leq a_{i} \leq 2\)
  • Subtask \(4\) (\(20\%\) số điểm): không có truy vấn loại \(3\).
  • Subtask \(5\) (\(20\%\) số điểm): không có ràng buộc nào thêm.

Example

Test 1

Input
8 5
2 3 3 1 2 1 3 1
1 2
1 3
2 4
2 5
3 7
5 6
6 8
1 2
3 4 6
2 6
2 5
3 1 5
Output
1
-1
-1
3
2
Note

Dưới đây là hình vẽ của ví dụ thứ nhất với màu \(1\) được tô màu xám, màu \(2\) được tô màu đỏ và màu \(3\) được tô màu xanh.

  • Truy vấn \(1\): xét các đỉnh trong cây con gốc \(2\)\(\{2, 4, 5, 6, 8\}\), màu \(1\) xuất hiện \(3\) lần.
  • Truy vấn \(2\): xét các đỉnh trên đường đi từ \(4\) đến \(6\)\(\{2, 4, 5, 6\}\), không có màu nào xuất hiện quá \(2\) lần.
  • Truy vấn \(3\): xét các đỉnh nằm ngoài cây con gốc \(6\)\(\{1, 2, 3, 4, 5, 7\}\), không có màu nào xuất hiện quá \(3\) lần.
  • Truy vấn \(4\): xét các đỉnh nằm ngoài cây con gốc \(5\)\(\{1, 2, 3, 4, 7\}\), màu \(3\) xuất hiện \(3\) lần.
  • Truy vấn \(5\): xét các đỉnh nằm trên đường đi từ \(1\) đến \(5\)\(\{1, 2, 5\}\), màu \(2\) xuất hiện \(2\) lần.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.