Số lượng thành phần liên thông (Olympic 30/4 K11 - 2023)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Đ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\)\(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\) 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\) 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\)\(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\ (1 \le u, v \le N)\) cho biết có cạnh nối giữa hai đỉnh \(u\)\(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\)\(M\) trong các test \(\le 2\times 10^5\)
  • \(20\%\)\(T = 10\)\(N \le 20\);
  • \(20\%\) số test ứng với \(20\%\) số điểm có \(T = 20\)\(N \le 100\);
  • \(20\%\) số test ứng với \(20\%\) số điểm có \(T = 100\)\(N \le 100\);
  • \(40\%\) còn lại số test ứng với \(40\%\) số điểm có \(T = 100\)\(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.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: