Đếm số thành phần liên thông và tìm cụm máy chủ lớn nhất bằng DFS
Hạ tầng tính toán đám mây của AI Empire Academy có N máy chủ được đánh số từ 1 đến N và M kết nối mạng nội bộ hai chiều (1 ≤ N ≤ 105, 0 ≤ M ≤ 2 · 105).
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: recursion, std vector, graph representation.
Nội dung đề bài
Mục tiêu kiến thức
- Áp dụng thuật toán Duyệt theo chiều sâu (Depth-First Search - DFS) trên đồ thị vô hướng.
- Nhận diện và đếm số lượng thành phần liên thông (Connected Components) trong đồ thị rời rạc.
- Thu thập danh sách các đỉnh thuộc từng thành phần liên thông để tìm thành phần có kích thước lớn nhất.
- Đạt độ phức tạp thời gian tuyến tính O(V + E).
Mô tả bài toán
Hạ tầng tính toán đám mây của AI Empire Academy có N máy chủ được đánh số từ 1 đến N và M kết nối mạng nội bộ hai chiều (1 ≤ N ≤ 105, 0 ≤ M ≤ 2 · 105).
Do sự cố phân vùng mạng, các máy chủ có thể bị chia cắt thành nhiều cụm độc lập (mỗi cụm là một thành phần liên thông, trong đó các máy chủ trong cùng cụm có thể truyền tin được cho nhau, nhưng không thể kết nối tới máy chủ thuộc cụm khác).
Bạn hãy viết chương trình:
- Đếm tổng số lượng cụm máy chủ độc lập (bao gồm cả các máy chủ đứng cô lập một mình).
- Xác định kích thước của cụm máy chủ có số lượng máy chủ đông nhất.
- In ra danh sách các máy chủ thuộc cụm lớn nhất này theo thứ tự tăng dần. Nếu có nhiều cụm có cùng kích thước lớn nhất, hãy chọn cụm chứa đỉnh có số hiệu nhỏ nhất.
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 2 số nguyên u, v (1 ≤ u, v ≤ N, u ≠ v) đại diện cho một kết nối hai chiều giữa máy chủ u và v.
Output
- Dòng 1: In 2 số nguyên cách nhau bởi dấu cách:
So_cum Kich_thuoc_lon_nhat - Dòng 2: In danh sách các máy chủ thuộc cụm lớn nhất được chọn, sắp xếp theo thứ tự tăng dần, cách nhau bởi một dấu cách.
Ràng buộc
- 1 ≤ N ≤ 105.
- 0 ≤ M ≤ 2 · 105.
- Thời gian chạy: 1000ms.
- Bộ nhớ tối đa: 256MB.
Ví dụ 1
Input
7 4
1 2
2 3
4 5
6 7Output
3 3
1 2 3Giải thích
Đồ thị có 3 cụm liên thông:
- Cụm 1: {1, 2, 3} (kích thước 3).
- Cụm 2: {4, 5} (kích thước 2).
- Cụm 3: {6, 7} (kích thước 2).
Tổng số cụm là 3. Cụm lớn nhất có kích thước 3 gồm các đỉnh 1 2 3.
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.
