Cây khung nhỏ nhất bằng thuật toán Kruskal và DSU
AI Empire Academy cần lắp đặt hệ thống cáp mạng quang tốc độ cao kết nối N trạm nghiên cứu trí tuệ nhân tạo (1 ≤ N ≤ 105). Có M tuyến cáp tiềm năng hai chiều có thể lắp đặt (0…
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: dsu, std sort, graph representation.
Nội dung đề bài
Mục tiêu kiến thức
- Cài đặt cấu trúc dữ liệu Các tập hợp rời rạc (Disjoint Set Union - DSU) với kỹ thuật Nén đường đi (Path Compression) và Gộp theo hạng/kích thước (Union by Rank/Size) đạt độ phức tạp gần như hằng số O(α(N)).
- Cài đặt thuật toán Kruskal tìm Cây khung nhỏ nhất (Minimum Spanning Tree - MST) trong O(E log E).
- Kiểm tra tính liên thông toàn bộ của đồ thị sau khi dựng cây khung.
- Quản lý tổng chi phí lớn bằng kiểu
long long.
Mô tả bài toán
AI Empire Academy cần lắp đặt hệ thống cáp mạng quang tốc độ cao kết nối N trạm nghiên cứu trí tuệ nhân tạo (1 ≤ N ≤ 105). Có M tuyến cáp tiềm năng hai chiều có thể lắp đặt (0 ≤ M ≤ 2 · 105). Tuyến cáp thứ i nối giữa trạm u và trạm v có chi phí lắp đặt là W (1 ≤ W ≤ 109).
Mục tiêu là chọn ra một tập hợp các tuyến cáp sao cho:
- Tất cả N trạm nghiên cứu đều liên thông được với nhau (từ một trạm bất kỳ có thể truyền dữ liệu tới bất kỳ trạm nào khác).
- Tổng chi phí lắp đặt là nhỏ nhất có thể.
Bạn hãy viết chương trình:
- Nếu đồ thị liên thông và lắp đặt được: In ra tổng chi phí nhỏ nhất của cây khung.
- Nếu đồ thị không thể liên thông hoàn toàn (không thể kết nối đủ N trạm): In ra
-1.
Quy ước nộp bài
- Chỉ cần viết một chương trình đọc
stdinvà in rastdout. Bài này không yêu cầu viết hàm. - Không dùng
coutđể in lời nhắc trước khi đọc dữ liệu. Lời nhắc sẽ lọt vàostdoutvà làm bài sai. - Chỉ in đúng nội dung ở mục Output. Không in thêm nhãn, dòng trống hay ký tự thừa.
- Output được so khớp từng ký tự, phân biệt chữ hoa/thường và dấu câu.
Input
- Dòng 1: Gồm 2 số nguyên N và M (1 ≤ N ≤ 105, 0 ≤ M ≤ 2 · 105).
- M dòng tiếp theo: Mỗi dòng gồm 3 số nguyên u, v, W (1 ≤ u, v ≤ N, 1 ≤ W ≤ 109) đại diện cho một tuyến cáp tiềm năng.
Output
In ra một số nguyên duy nhất là tổng chi phí nhỏ nhất của cây khung (hoặc -1 nếu không thể liên thông).
Ràng buộc
- 1 ≤ N ≤ 105.
- 0 ≤ M ≤ 2 · 105.
- 1 ≤ W ≤ 109.
- Thời gian chạy: 1000ms.
- Bộ nhớ tối đa: 256MB.
Ví dụ 1
Input
4 5
1 2 3
1 3 1
2 3 7
2 4 5
3 4 2Output
6Giải thích
Ta chọn 3 cạnh có trọng số nhỏ nhất không tạo chu trình:
- Cạnh (1, 3) với chi phí 1.
- Cạnh (3, 4) với chi phí 2.
- Cạnh (1, 2) với chi phí 3.
Tổng chi phí: 1 + 2 + 3 = 6. Cả 4 đỉnh {1, 2, 3, 4} đều đã liên thông.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
