trang chủ / đề bài / necesroads

Các Con Đường Cần Thiết

Đề bài

Mô tả

Cho n thành phố và m con đường hai chiều. Đảm bảo rằng từ bất kỳ thành phố nào cũng có thể đến bất kỳ thành phố nào khác.

Một con đường gọi là cần thiết nếu xóa nó sẽ làm cho đồ thị không còn liên thông (tức là tồn tại một cặp thành phố không thể đến nhau). Hãy tìm tất cả các con đường cần thiết.

Dữ liệu vào

  • Dòng 1: hai số nguyên n và m.
  • m dòng tiếp theo: mỗi dòng gồm hai số nguyên a và b, mô tả con đường nối thành phố a và thành phố b.

Dữ liệu ra

  • Dòng 1: số nguyên k, số con đường cần thiết.
  • k dòng tiếp theo: mỗi dòng gồm hai số nguyên mô tả một con đường cần thiết. Các con đường có thể in theo thứ tự bất kỳ, và hai đầu mút của mỗi con đường cũng có thể in theo thứ tự bất kỳ.

Ràng buộc

  • 2≤n≤105
  • 1≤m≤2·105
  • 1≤a,b≤n
  • Không có hai con đường nối cùng một cặp thành phố
  • Mỗi con đường nối hai thành phố phân biệt

Ví dụ

Input Output Giải thích
5 5
1 2
1 4
2 4
3 5
4 5
2
3 5
4 5
Xóa cạnh 3-5 hoặc 4-5 đều làm ngắt kết nối đồ thị. Các cạnh 1-2, 1-4, 2-4 tạo thành chu trình nên không cần thiết.
4 3
1 2
2 3
3 4
3
1 2
2 3
3 4
Đây là một đường thẳng, mọi cạnh đều cần thiết.

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