Số lượng thành phần liên thông (Olympic 30/4 K11 - 2023)
Xem PDF
Điểm:
1800
Thời gian:
1.0s
Bộ nhớ:
1G
Input:
bàn phím
Output:
màn hình
Cho một đồ thị vô hướng \(A\) có \(N\) đỉnh và \(M\) cạnh. Dựa vào đồ thị \(A\) cho trước, một đồ thị \(B\) cũng có \(N\) đỉnh và \(N \times (N-1)/2 − M\) cạnh được định nghĩ như sau: với hai đỉnh \(u\) và \(v\) bất kỳ, nếu không có cạnh nối giữa chúng trong đồ thị \(A\) thì sẽ có cạnh nối giữa \(u\) và \(v\) trong đồ thị \(B\).
Yêu cầu: Hãy cho biết số lượng thành phần liên thông có trong \(B\).
Input
- Dòng đầu tiên chứa số nguyên \(T\) cho biết số lượng test có trong bài. Mỗi test bao gồm:
- Dòng đầu chứa 2 số nguyên \(N\) và \(M\) được mô tả trong đề bài.
- \(M\) dòng tiếp theo mỗi dòng chứa 2 số nguyên \(u\) và \(v\ (1 \le u, v \le N)\) cho biết có cạnh nối giữa hai đỉnh \(u\) và \(v\).
Output
- Với mỗi test:
- Dòng đầu là một số nguyên cho biết số lượng thành phần liên thông có trong test đó.
- Dòng thứ 2 in ra độ lớn của từng thành phần liên thông theo thứ tự tăng dần.
Scoring
- \(1 \le T \le 100\); \(1 \le N \le 2 \times 10^5\); \(1 \le M\le min (N\times (N-1)/2,2\times 10^5)\); Tổng của \(N\) và \(M\) trong các test \(\le 2\times 10^5\)
- \(20\%\) có \(T = 10\) và \(N \le 20\);
- \(20\%\) số test ứng với \(20\%\) số điểm có \(T = 20\) và \(N \le 100\);
- \(20\%\) số test ứng với \(20\%\) số điểm có \(T = 100\) và \(N \le 100\);
- \(40\%\) còn lại số test ứng với \(40\%\) số điểm có \(T = 100\) và \(N\) như giới hạn bên trên
Example
Test 1
Input
2
4 4
1 3
1 4
2 3
2 4
3 1
1 2
Output
2
2 2
1
3
Note
- Trong test đầu tiên, đồ thị \(B\) có 2 cạnh (1,2) và (3,4) vì vậy nó có 2 thành phần liên thông, mỗi thành phần liên thông chứa 2 đỉnh.
- Trong test thứ 2, chỉ có 1 cạnh nối giữa 2 đỉnh (1, 2), vì vậy 2 đỉnh này sẽ không nối với nhau trong đồ thị \(B\), nhưng 1 và 2 đều nối đến 3 do đó cả ba đỉnh này nằm chung trong 1 thành phần liên thông.
Kỳ thi:
- Olympic Truyền thống 30/4 2023 - Tin học - Khối 11 (8 Tháng tư, 2023)
- Olympic 30/4 (24 Tháng 2., 2026)
Bình luận