trang chủ / bài tập / 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 nm.
  • m dòng tiếp theo: mỗi dòng gồm hai số nguyên ab — con đường nối thành phố ab.

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 (theo thứ tự bất kỳ).

Ràng buộc

  • 2n105
  • 1m2·105
  • 1a,bn
  • 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.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