trang chủ / đề bài / dhbb23_chl_10_a

Truyền thông

Đề bài

Mô tả

Trong ngày đầu thực tập tại một công ty chuyên về truyền thông, Chung đã được tiếp xúc với một mạng lưới máy tính lớn gồm n máy tính tham gia trong mạng, đánh số từ 1 đến n. Trong đó, anh ta biết được đang có m đường truyền dữ liệu một chiều hoạt động, đường truyền thứ i đang truyền dữ liệu từ máy ui sang máy vi. Tuy nhiên với mạng lưới máy tính hiện tại, không phải bất cứ cặp máy tính x,y nào trong mạng thì x cũng có thể truyền dữ liệu của mình sang cho y (dữ liệu có thể đi qua nhiều đường truyền liên tiếp). Vì vậy, nhiệm vụ của Chung là cài đặt thêm một số đường truyền dữ liệu một chiều để với mọi cặp máy tính x,y, máy x đều có thể truyền dữ liệu sang máy y. Điều đặc biệt là việc truyền dữ liệu từ máy x sang y ở đây là một chiều, tức là x truyền dữ liệu được sang cho y thì không đồng nghĩa với việc y sẽ truyền được dữ liệu sang cho x.

Yêu cầu: Để giúp Chung nhanh chóng hoàn thành nhiệm vụ, bạn cần tính xem anh ta cần tạo ra thêm ít nhất bao nhiêu đường truyền dữ liệu mới vào mạng máy tính hiện tại. Mỗi đường truyền mới đi từ một máy bất kỳ đến một máy bất kỳ khác do Chung tự chọn.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên dương n,m là số máy tính trong mạng và số đường truyền dữ liệu đang hoạt động trong mạng (n,m≤105).
  • m dòng tiếp theo, dòng thứ i chứa hai số nguyên dương ui,vi (ui,vi≤n) thể hiện đường truyền thứ i từ máy ui sang máy vi. Có thể có nhiều đường truyền giống nhau, và có thể có ui=vi.

Dữ liệu ra

In ra duy nhất một số nguyên không âm là số đường truyền dữ liệu mới ít nhất cần tạo thêm.

Ràng buộc

  • 1≤n,m≤105.
  • 1≤ui,vi≤n.

Ví dụ

Input Output Giải thích
3 3
1 3
2 3
3 2
1 Máy 1 không nhận được dữ liệu từ máy nào. Thêm đường truyền 3→1 là đủ.
7 7
1 2
2 3
3 1
4 3
5 4
6 4
7 1
3 Các máy 5,6,7 không nhận được dữ liệu từ máy nào, nên cần ít nhất 3 đường truyền mới, ví dụ 1→5, 1→6, 1→7.
3 3
1 2
2 3
3 1
0 Mọi máy đã truyền được dữ liệu cho mọi máy khác.
4 2
1 2
2 1
3 Máy 3 và máy 4 chưa nối với máy nào. Có thể thêm 2→3, 3→4, 4→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.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