[DHBB25 - DX16 - 11] Bài 3: Kỳ thi chọn đội tuyển
Xem dạng PDFTrong 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
Để chuẩn bị cho kì thi HSGQG năm 2025, trường CBH tổ chức một kỳ thi tuyển chọn đội tuyển thi Tin học cấp quốc gia. Trường có ~N~ học sinh đăng kí tham gia dự thi, mỗi học sinh có sở trường ở đúng một ngôn ngữ lập trình trong ~K~ ngôn ngữ phổ biến.
Hệ thống tổ chức học tập của trường có dạng cây phân cấp. Có một giáo viên trưởng nhóm (số 0) phụ trách toàn bộ học sinh. Mỗi học sinh (trừ giáo viên trưởng nhóm) có một giáo viên hướng dẫn duy nhất. Không có chu trình nào trong hệ thống, tức là có thể xem đây như một cây gốc với gốc là giáo viên trưởng nhóm.
Nhà trường muốn thành lập một đội tuyển lớn nhất có thể để tham gia kỳ thi. Quy tắc thành lập đội như sau:
- Chọn một học sinh làm đội trưởng. Học sinh này sẽ quyết định ngôn ngữ lập trình chung của đội.
- Tất cả các học sinh nằm trong cây con dưới đội trưởng và có cùng ngôn ngữ lập trình với đội trưởng sẽ được chọn vào đội.
Để tối đa hóa số lượng học sinh tham gia, nhà trường có thể thực hiện các bước hoán đổi bằng cách:
- Chọn 2 học sinh:
- Một học sinh đang nằm trong cây con của đội trưởng nhưng không có sở trường cùng ngôn ngữ lập trình với trưởng nhóm.
- Một học sinh không nằm trong cây con của đội trưởng nhưng có cùng ngôn ngữ lập trình với đội trưởng.
- Hai học sinh này phải cùng một khối lớp (tức là cùng một độ sâu trong cây phân cấp).
- Sau khi hoán đổi, cây phân cấp vẫn giữ nguyên quan hệ giữa các giáo viên và học sinh, chỉ thay đổi vị trí của hai học sinh được chọn.
Yêu cầu: Hãy tìm số lượng học sinh tối đa (bao gồm cả đội trưởng) có thể tham gia đội tuyển Tin học thi Quốc gia và số lần hoán đổi tối thiểu cần thiết để đạt được con số này.
Input
- Dòng đầu tiên chứa hai số nguyên ~N~ và ~K~ lần lượt là số học sinh và số ngôn ngữ lập trình.
- Dòng tiếp theo chứa ~N~ số nguyên ~l_i~ (~0 \le l_i < K~) tương ứng với ngôn ngữ lập trình sở trường của từng học sinh.
- ~N - 1~ dòng tiếp theo, mỗi dòng chứa một số nguyên ~b_i~ (~0 \le b_i < N~) thể hiện giáo viên phụ trách trực tiếp của học sinh ~i~ (với chỉ số ~i~ từ 1 đến ~N - 1~). Giáo viên trưởng nhóm (học sinh 0) không có giáo viên phụ trách.
Output
- Gồm một dòng duy nhất chứa hai số nguyên ~P~ và ~S~ lần lượt là số học sinh tối đa có thể tham gia đội tuyển Quốc gia Tin và số lần hoán đổi tối thiểu cần thực hiện để đạt được số lượng ~P~.
Bình luận