Màu chiếm ưu thế
Xem dạng PDF📖 Bài giảng & lời giải: đây là Bài tập 5 trong bài giảng Bài 44: Small-to-large, Euler tour trên blog Lập trình thuật toán – có lý thuyết, mô phỏng từng bước, gợi ý và code C++ / Python.
⚠️ Lưu ý: hãy đảm bảo em đã thật sự cố gắng tự làm bài trước, rồi mới xem gợi ý và lời giải nhé!
🎓 Khóa học Lập trình Thuật toán thi đấu của thầy Nguyễn Việt Nam Sơn – 111 buổi video, kèm cặp cá nhân, luyện thi chuyên Tin · HSG Tin học · Tin học trẻ · đội tuyển quốc gia · Olympic/ICPC. 👉 Xem chi tiết khóa học · Thành tích học viên
📞 Đăng ký học: Zalo 0767 666 702 · Facebook Nguyễn Việt Nam Sơn · 🌐 laptrinhthuattoan.blogspot.com
Cho cây $n$ đỉnh, đánh số $1..n$, gốc là đỉnh $1$; đỉnh $u$ được tô màu $c_u$. Trong cây con gốc $u$, một màu được gọi là chiếm ưu thế nếu nó xuất hiện trong cây con đó và không có màu nào xuất hiện nhiều lần hơn nó (có thể có nhiều màu cùng chiếm ưu thế). Với mỗi đỉnh $u$, hãy tính tổng (giá trị) các màu chiếm ưu thế trong cây con gốc $u$.
Dữ liệu vào
- Dòng 1: số nguyên $n$ ($1 \le n \le 10^5$).
- Dòng 2: $n$ số nguyên $c_1, c_2, \ldots, c_n$ ($1 \le c_u \le n$).
- $n - 1$ dòng tiếp theo, mỗi dòng gồm hai số nguyên $u, v$ ($1 \le u, v \le n$, $u \ne v$) là một cạnh của cây (dữ liệu đảm bảo $n - 1$ cạnh tạo thành một cây).
Kết quả
In ra trên một dòng $n$ số nguyên, số thứ $u$ là tổng các màu chiếm ưu thế trong cây con gốc $u$, các số cách nhau một dấu cách (chú ý kết quả có thể vượt quá phạm vi kiểu int).
Sample Input
5
1 2 3 2 3
1 2
1 3
2 4
3 5
Sample Output
5 2 3 2 3
Note
Ở gốc $1$, cây con gồm các màu $1, 2, 3, 2, 3$: màu $2$ và màu $3$ cùng xuất hiện $2$ lần (nhiều nhất) nên đáp án là $2 + 3 = 5$. Cây con gốc $2$ gồm màu $2, 2$ nên đáp án là $2$.
Bình luận