trang chủ / bài tập / onewayref

Cải cách một chiều

Đề bài

Mô tả

Ở vương quốc Berland có n thành phố và m con đường hai chiều, mỗi con đường nối hai thành phố khác nhau. Giữa mỗi cặp thành phố có nhiều nhất một con đường, và không có con đường nào nối một thành phố với chính nó. Đồ thị đường đi có thể không liên thông.

Bộ trưởng giao thông quyết định cải cách: biến tất cả các con đường thành đường một chiều, tức là gán cho mỗi con đường một hướng. Bộ trưởng muốn tối đa hoá số thành phố mà tại đó số con đường đi ra bằng số con đường đi vào.

Hãy tìm số thành phố lớn nhất đạt được và chỉ ra một cách định hướng tương ứng. Nếu có nhiều phương án, in ra một phương án bất kỳ. Các con đường có thể in theo thứ tự tuỳ ý, nhưng mỗi con đường phải xuất hiện đúng một lần.

Dữ liệu vào

  • Dòng đầu chứa số nguyên dương t (1t200): số bộ dữ liệu.
  • Mỗi bộ dữ liệu có dạng:
    • Dòng đầu chứa hai số nguyên nm (1n200, 0mn·(n1)/2): số thành phố và số con đường.
    • m dòng tiếp theo, mỗi dòng chứa hai số nguyên u, v (1u,vn): một con đường nối hai thành phố uv.

Dữ liệu ra

Với mỗi bộ dữ liệu:

  • Dòng đầu in số thành phố lớn nhất có số đường đi ra bằng số đường đi vào.
  • m dòng tiếp theo, mỗi dòng in hai số nguyên: thành phố nơi con đường bắt đầu và thành phố nơi con đường kết thúc, mô tả một cách định hướng đạt được giá trị lớn nhất đó.

Ràng buộc

  • 1t200.
  • 1n200, 0mn·(n1)/2.
  • Không có khuyên và không có cạnh bội.
  • Tổng số thành phố trong tất cả các bộ dữ liệu không vượt quá 200.

Ví dụ

Input Output Giải thích
2
5 5
2 1
4 5
2 3
1 3
3 5
7 2
3 7
4 2
3
3 2
2 1
1 3
3 5
5 4
3
2 4
3 7
Bộ 1: các thành phố 34 có bậc lẻ nên không thể cân bằng; 52=3 thành phố còn lại (1,2,5) đều có số đường ra bằng số đường vào. Bộ 2: bốn thành phố 2,3,4,7 có bậc lẻ, đáp án là 74=3.
1
5 4
1 2
2 3
2 4
2 5
1
1 2
2 3
4 2
2 5
Bốn thành phố lá 1,3,4,5 đều có bậc 1 (lẻ) nên không thể cân bằng; chỉ thành phố trung tâm 2 (bậc 4) đạt số đường ra bằng số đường vào.

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