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

Đường đến từ thủ đô

Đề bài

Mô tả

n thành phố và m con đường một chiều ở Berland. Mỗi con đường nối một cặp thành phố theo một hướng xác định.

Bạn cần xây thêm một số con đường một chiều mới để từ thủ đô s có thể đi đến được mọi thành phố (theo các con đường một chiều). Hỏi số con đường mới ít nhất cần xây là bao nhiêu?

Nếu từ s đã đi đến được tất cả các thành phố, in ra 0.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, ms: số thành phố, số con đường, và chỉ số của thủ đô. Các thành phố được đánh số từ 1 đến n.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ui, vi mô tả một con đường một chiều đi từ ui đến vi.

Với mỗi cặp thành phố (u,v) có nhiều nhất một con đường đi từ u đến v. Cho phép tồn tại đồng thời con đường uvvu.

Dữ liệu ra

In ra một số nguyên: số con đường một chiều ít nhất cần xây thêm để mọi thành phố đều đến được từ s.

Ràng buộc

  • 1n5000
  • 0m5000
  • 1sn
  • 1ui,vin, uivi

Ví dụ

Input Output Giải thích
5 4 5
1 2
2 3
3 4
4 1
1 Bốn thành phố 1,2,3,4 tạo thành một chu trình, còn thủ đô 5 tách biệt. Chỉ cần một con đường (ví dụ 51) là từ 5 đến được tất cả.
9 9 1
1 2
1 3
2 3
1 5
5 6
6 1
1 8
9 8
7 1
3 Cần thêm 3 con đường, ví dụ (6,4), (7,9), (1,7), để mọi thành phố đến được từ thủ đô 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