trang chủ / đề bài / dhbb23_lhp_10_c

Bắc cầu

Đề bài

Mô tả

Chính phủ quốc đảo Oceani quyết định xây dựng m chiếc cầu nối n đảo của mình, tạo một mạng lưới giao thông đường bộ cho phép đi từ đảo bất kỳ tới đảo khác bằng đường bộ (trực tiếp hoặc qua một số đảo trung gian). Mỗi cây cầu sẽ nối 2 đảo khác nhau và cho phép đi lại hai chiều. Các đảo được đánh số từ 0 đến n−1. Bị hạn chế bởi kinh phí và nguồn nhân lực, người ta quyết định sẽ xây dựng lần lượt từng chiếc cầu một và lên kế hoạch xác định cầu và trình tự xây. Mỗi cây cầu được xác định bởi cặp đảo u,v mà nó nối. Trong quá trình thực hiện kế hoạch có thể đến một lúc nào đó từ một đảo đã có thể đi đến bất kỳ đảo khác bằng đường bộ.

Ví dụ, ở Oceani có 4 đảo và người ta quyết định xây dựng 5 cầu theo trình tự lần lượt là 0−1, 0−2, 1−2, 2−3, 3−0. Tuy vậy, không cần chờ đợi đến khi hoàn thành kế hoạch xây cầu, sau khi cầu thứ 4 được xây xong tất cả các đảo đã được nối liền bằng đường bộ.

Yêu cầu: Cho n,m và các cây cầu dự kiến xây. Thông tin về các cây cầu đưa ra theo đúng trình tự xây dựng. Hãy xác định số cầu tối thiểu cần xây theo kế hoạch để từ một đảo đã có thể đi đến bất kỳ đảo khác bằng đường bộ.

Dữ liệu đảm bảo sau khi xây xong cả m cầu theo kế hoạch thì mọi đảo đã được nối liền. Có thể có nhiều cầu nối cùng một cặp đảo.

Dữ liệu vào

  • Dòng đầu tiên chứa 2 số nguyên n và m (2≤n≤106,1≤m≤5·106).
  • Dòng thứ i trong m dòng tiếp theo chứa 2 số nguyên u và v (0≤u,v≤n−1,u≠v) xác định cây cầu thứ i cần xây.

Dữ liệu ra

In ra kết quả tìm được dưới dạng một số nguyên.

Ràng buộc

  • 2≤n≤106 (mỗi cầu nối 2 đảo khác nhau nên có ít nhất 2 đảo).
  • 1≤m≤5·106.
  • 0≤u,v≤n−1, u≠v.
  • Sau khi xây cả m cầu, mọi đảo đã được nối liền.

Ví dụ

Input Output Giải thích
4 5
0 1
0 2
1 2
2 3
3 0
4 Sau cầu thứ 4 (2−3) cả 4 đảo đã nối liền.
2 1
1 0
1 Ví dụ thêm. Chỉ có 2 đảo, cần đúng 1 cầu.
4 5
0 1
1 0
2 3
3 2
1 2
5 Ví dụ thêm. Cầu thứ 2 và thứ 4 nối lại cặp đảo đã có cầu nên không giúp gì. Sau cầu thứ 3 mọi đảo đều đã có cầu nhưng hai nhóm {0,1} và {2,3} vẫn tách rời, phải đến cầu thứ 5 mới nối liền.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0