SỐ LƯỢNG THÀNH PHẦN LIÊN THÔNG

Cho một đồ thị vô hướng \(A\)\(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ĩa như sau: Với hai đỉnh \(u\)\(v\) bất kỳ, nếu không có cạnh nối giữa chúng trong đồ thị \(A\) thì có cạnh nối giữa \(u\)\(v\) trong đồ thị \(B\).

Hãy cho biết số lượng thành phần liên thông có trong \(B\).

Dữ liệu vào:

+ 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 hai số nguyên \(n,\ m\) được mô tả như trong đề bài.

- \(m\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u\)\(v\ (1 \leq u,v \leq n)\) cho biết có cạnh nối giữa hai đỉnh \(u\)\(v\).

Kết quả: Với mỗi test

+ Dòng đầu tiên 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ứ hai in ra độ lớn của từng thành phần liên thông theo thứ tự tăng dần.

Ví dụ:

Input Output
2
4 4
1 3
1 4
2 3
2 4
3 1
1 2
2
2 2
1
3

Ràng buộc:

+ Trong tất cả các test:

- \(1 \leq t \leq 100;1 \leq n \leq 2 \times 10^{5};1 < m \leq min(n \times (n - 1)/2,2 \times 10^{5})\)

- Tổng của \(n\)\(m\) trong các test \(\leq 2 \times 10^{5}\)

+ Có 20% số test có \(t = 10\)\(n \leq 20\)

+ Có 20% số test khác có \(t = 20\)\(n \leq 100\)

+ Có 20% số test khác có \(t = 100\)\(n \leq 100\)

+ Có 40% số test còn lại có \(t = 100\)

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (5/10)
  2. tuythoi213 (4/6)
  3. bao_khanh (2/3)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]