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

Cải cách đường bộ

Đề bài

Mô tả

Cho một đồ thị vô hướng có n đỉnh và m cạnh. Không có cạnh nối một đỉnh với chính nó, và giữa mỗi cặp đỉnh có không quá một cạnh. Đồ thị không bắt buộc phải liên thông.

Bạn cần định hướng (gán hướng) cho mỗi cạnh, biến nó thành một cạnh có hướng (chỉ đi từ một đỉnh sang đỉnh kia).

Gọi một đỉnh là cô lập nếu không có cạnh có hướng nào đi vào nó (đỉnh đó có thể có cạnh đi ra, nhưng không có cạnh đi vào).

Hãy tìm cách định hướng các cạnh sao cho số đỉnh cô lập là nhỏ nhất có thể, và in ra số lượng đỉnh cô lập đó.

Dữ liệu vào

  • Dòng đầu tiên gồm hai số nguyên dương nm — số đỉnh và số cạnh.
  • m dòng tiếp theo, mỗi dòng gồm hai số nguyên xi, yi (xiyi), mô tả một cạnh vô hướng nối đỉnh xiyi.

Dữ liệu ra

Một số nguyên duy nhất — số đỉnh cô lập nhỏ nhất sau khi định hướng tối ưu.

Ràng buộc

  • 2n105
  • 1m105
  • 1xi,yin, xiyi
  • Giữa mỗi cặp đỉnh có không quá một cạnh.

Ví dụ

Input Output Giải thích
4 3
2 1
1 3
4 3
1 Đồ thị là một cây 4 đỉnh. Cây không có chu trình nên bắt buộc phải có ít nhất một đỉnh cô lập (gốc của định hướng).
5 5
2 1
1 3
2 3
2 5
4 3
0 Đồ thị liên thông có chu trình (5 đỉnh, 5 cạnh). Có thể định hướng sao cho mỗi đỉnh đều có ít nhất một cạnh vào.
6 5
1 2
2 3
4 5
4 6
5 6
1 Hai thành phần liên thông: {1,2,3} là cây (cần 1 cô lập), {4,5,6} là tam giác có chu trình (cần 0 cô lập). Tổng: 1.

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