trang chủ / đề bài / voi21_comnet

Mạng truyền thông

Đề bài

Mô tả

Một ngân hàng có n chi nhánh, mỗi chi nhánh có một máy chủ, các máy chủ ở các chi nhánh được đánh số từ 1 đến n. Nhằm bảo đảm việc truyền thông giữa các chi nhánh, ngân hàng đã thuê n−1 kênh truyền tin trực tiếp từ một nhà cung cấp dịch vụ mạng để kết nối n máy chủ thành một mạng máy tính và bảo đảm từ máy chủ của một chi nhánh bất kì có thể truyền tin đến tất cả các máy chủ của các chi nhánh còn lại theo kênh truyền tin trực tiếp giữa chúng hoặc thông qua đường truyền đi qua một số máy chủ của các chi nhánh nào đó.

Trong thời gian tới, ngân hàng muốn lựa chọn k máy chủ trong n máy chủ để cài đặt phần mềm kiểm soát. Phần mềm khi hoạt động sẽ làm tăng lưu lượng truyền trên các kênh giữa k máy chủ này. Với mỗi phương án chọn k máy chủ để cài đặt phần mềm, trong số n−1 kênh truyền tin, nhà cung cấp dịch vụ mạng đã xác định một số ít nhất các kênh đủ để kết nối k máy chủ này và khuyến cáo ngân hàng cần phải nâng cấp các kênh đó. Vì lí do kĩ thuật cũng như kinh phí, ngân hàng muốn lựa chọn k máy chủ để cài đặt phần mềm mà số lượng kênh ít nhất cần nâng cấp có giá trị nằm trong đoạn [a,b]. Cụ thể, với một cách chọn k máy chủ, gọi s là số kênh ít nhất cần chọn ra trong n−1 kênh truyền tin nhằm bảo đảm liên thông giữa k máy chủ được chọn ngay cả khi các kênh còn lại bị đứt kết nối, s kênh này sẽ được khuyến cáo nâng cấp, khi đó, cách chọn k máy chủ thỏa mãn yêu cầu của ngân hàng nếu a≤s≤b.

Yêu cầu: Cho n−1 kênh truyền tin và các giá trị k,a,b, hãy đếm số lượng cách chọn k máy chủ để cài đặt phần mềm mà số lượng kênh ít nhất cần nâng cấp nằm trong đoạn [a,b].

Dữ liệu vào

  • Dòng thứ nhất chứa bốn số nguyên dương n,k,a,b (k<n; 1<a≤b<n);
  • Dòng thứ i trong số n−1 dòng tiếp theo chứa 2 số nguyên dương ui,vi cho biết có kênh truyền tin trực tiếp giữa hai máy chủ ui,vi (1≤ui,vi≤n, ui≠vi).

Các số trên cùng một dòng cách nhau bởi dấu cách.

Dữ liệu ra

In ra một số nguyên duy nhất là số cách chọn k máy chủ để cài đặt phần mềm thỏa mãn yêu cầu của ngân hàng.

Ràng buộc

  • k<n≤1000; 2≤k≤4.
  • 1<a≤b<n.
  • 1≤ui,vi≤n, ui≠vi; n−1 kênh kết nối tất cả các máy chủ.

Subtasks

  • Subtask 1 (20% số điểm): n≤100 và k=2.
  • Subtask 2 (30% số điểm): n≤100 và k=3.
  • Subtask 3 (20% số điểm): n≤100 và k=4.
  • Subtask 4 (20% số điểm): n≤1000 và k=3.
  • Subtask 5 (10% số điểm): n≤1000 và k=4.

Ví dụ

Input Output Giải thích
6 3 2 3
1 2
2 3
3 4
4 5
3 6
14 Mạng gồm đường 1−2−3−4−5 và kênh 3−6. Có 5 cách chọn 3 máy chủ mà số kênh cần nâng cấp bằng 2: (1,2,3), (2,3,4), (2,3,6), (3,4,5), (3,4,6). Có 9 cách mà số kênh cần nâng cấp bằng 3: (1,2,4), (1,2,6), (1,3,4), (1,3,6), (2,3,5), (2,4,5), (2,4,6), (3,5,6), (4,5,6). Tổng cộng 14 cách.
7 4 3 4
1 2
2 3
3 4
3 5
5 6
1 7
19 Ví dụ thêm (không có trong đề gốc). Ví dụ chọn (1,2,3,4) cần nâng cấp 3 kênh 1−2, 2−3, 3−4; chọn (4,6,7,1) cần 6 kênh nên không thỏa mãn. Có 19 trong 35 cách chọn thỏa mãn.

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