[THHV 2017 - CHL - 11] Bài 3: Xếp hạng nhà hàng

Xem dạng PDF

Gửi bài giải

Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Cho một đồ thị cây gồm ~n~ đỉnh, mỗi đỉnh được tô một trong hai màu, trắng hoặc đen. Trên đồ thị cây này ta định nghĩa một thao tác ~changeColor(u)~ với ~u~ là một đỉnh bất kì của cây, thao tác này có tác dụng đổi màu tất cả các đỉnh ~v~ mà tất cả các đỉnh nằm trên đường đi ngắn nhất từ ~u~ đến ~v~ (kể cả ~u, v~) có cùng một màu.

Bạn hãy tìm cách sử dụng ít thao tác ~changeColor~ nhất sao cho tất cả các đỉnh của cây có cùng một màu.

Yêu cầu: Tìm số thao tác ít nhất để đưa toàn bộ các đỉnh của cây về cùng một màu.

Input

  • Dòng đầu tiên chứa số nguyên ~n~ (~1 \le n \le 2 \times 10^5~).
  • Dòng thứ hai chứa ~n~ số nguyên ~c_i~ (~0 \le c_i \le 1~) tương ứng là màu của các đỉnh, ~c_i = 0~ ứng với màu trắng, ~c_i = 1~ ứng với màu đen.
  • Tiếp theo có ~n - 1~ dòng, mỗi dòng gồm 2 số nguyên ~u, v~ (~1 \le u, v \le n~) miêu tả một cạnh của đồ thị.

Output

  • Ghi ra một dòng duy nhất là số thao tác ít nhất cần thực hiện để đưa toàn bộ các đỉnh của cây về cùng một màu.

Sample Input 1

11
0 0 0 1 1 0 1 0 0 1 1
1 2
1 3
2 4
2 5
5 6
5 7
3 8
3 9
3 10
9 11

Sample Output 1

2

Sample Input 2

4
0 0 0 0
1 2
2 3
3 4

Sample Output 2

0

Bình luận

Hãy đọc nội quy trước khi bình luận.


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