Chia vương quốc

Đề bài

Mô tả

Vương quốc của Vasya gồm n thành phố và m con đường hai chiều giữa các thành phố. Hai thành phố thuộc cùng một tỉnh nếu và chỉ nếu có thể đi từ thành phố này sang thành phố kia chỉ bằng các con đường (mỗi tỉnh tương ứng với một thành phần liên thông của đồ thị).

Vasya muốn xây dựng thêm các đường hầm (cũng là cạnh hai chiều) sao cho sau khi xây xong, toàn bộ vương quốc trở thành liên thông (tức là từ bất kỳ thành phố nào cũng có thể đến được mọi thành phố khác bằng các con đường và đường hầm). Có hai ràng buộc về đường hầm:

  • Mỗi thành phố được nối với không quá một đường hầm.
  • Mỗi tỉnh được nối với không quá k đường hầm.

Tuy nhiên, mạng lưới đường hầm thoả mãn các ràng buộc trên có thể không tồn tại với cấu hình hiện tại. Vasya có thể xây thêm các con đường mới giữa các thành phố nhằm hợp nhất các tỉnh (đường mới có thể nối hai thành phố thuộc các tỉnh khác nhau, biến chúng thành cùng một tỉnh). Hãy xác định số con đường mới tối thiểu cần xây để mạng lưới đường hầm thoả mãn ràng buộc tồn tại.

Dữ liệu vào

  • Dòng đầu tiên chứa ba số nguyên n, mk.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên u, v — một con đường nối hai thành phố uv.

Không có con đường nào nối một thành phố với chính nó, và giữa hai thành phố bất kỳ có tối đa một con đường.

Dữ liệu ra

In ra một số nguyên duy nhất — số con đường mới tối thiểu cần xây.

Ràng buộc

  • 1n,k106
  • 0m106

Ví dụ

Input Output Giải thích
3 3 2
1 2
2 3
3 1
0 Chỉ có một tỉnh duy nhất, không cần thêm đường hay đường hầm.
4 2 2
1 2
3 4
0 Hai tỉnh {1,2}{3,4}. Xây một đường hầm giữa thành phố 1 và 3 là đủ.
4 0 2 1 Bốn tỉnh, mỗi tỉnh một thành phố nên mỗi tỉnh chỉ có thể nối tối đa 1 đường hầm. Cần xây thêm 1 con đường (ví dụ nối 12) rồi dùng 2 đường hầm 1324.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0