#1483. BEAUTSET - Tập hợp đẹp

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

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à đẹp 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.

Dữ liệu vào:

  • Dòng đầu tiên chứa hai số nguyên dương n, q\ (1 ≤ n, q ≤ 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 ≤ a_i ≤ n) ;
  • n − 1 dòng tiếp theo, mối dòng chứa hai số nguyên dương u, v\ (1 ≤ u, v ≤ 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 một trong ba dạng như mô tả ở trên.

Dữ liệu ra:

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

Ví dụ:

Dữ liệu vào:

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

Dữ liệu ra:

1
-1
-1
3
2

Giải thích:

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 là ${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.

Giới hạn:

  • Subtask \#1\ (20\%): 1 ≤ n, q ≤ 2000 ;
  • Subtask \#2\ (20\%): 1 ≤ n, q ≤ 50000 và mỗi đỉnh có tối đa 2 cạnh nối trực tiếp;
  • Subtask \#3\ (20\%): 1 ≤ n, q ≤ 50000 1 ≤ a_i ≤ 2 ;
  • Subtask \#4\ (20\%): 1 ≤ n, q ≤ 50000 và không có truy vấn loại 3 ;
  • Subtask \#5\ (20\%): không có ràng buộc nào thêm.