trang chủ / đề bài / famroads

Famil Door và những con đường

Đề bài

Mô tả

Một thành phố có n giao lộ được nối với nhau bởi n−1 con đường hai chiều, tạo thành một cây (đồ thị liên thông không có chu trình). Như vậy giữa hai giao lộ bất kỳ luôn có đúng một đường đi đơn.

Thành phố có m cư dân. Cư dân thứ i sống ở giao lộ ui và làm việc ở giao lộ vi.

Thị trưởng sẽ xây thêm đúng một con đường hai chiều mới, bằng cách chọn ngẫu nhiên đều một trong n·(n−1)2 cặp giao lộ (a,b) với a≠b (cặp được chọn có thể đã có đường nối sẵn).

Một cư dân trở nên hạnh phúc nếu sau khi xây con đường mới, tồn tại một chu trình đơn chứa cả nhà (ui) lẫn nơi làm việc (vi) của người đó. Khi đó niềm vui của người đó bằng độ dài của chu trình đơn ấy (số cạnh trên chu trình); có thể chứng minh rằng chu trình này là duy nhất.

Với mỗi cư dân, hãy tính kỳ vọng niềm vui của người đó, tức là kỳ vọng độ dài chu trình chứa cả ui và vi, với điều kiện một chu trình như vậy tồn tại (chỉ xét những trường hợp con đường mới khiến người đó hạnh phúc).

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và m — số giao lộ và số cư dân.
  • n−1 dòng tiếp theo, mỗi dòng chứa hai số nguyên ai và bi — một con đường nối giao lộ ai và bi.
  • m dòng cuối, mỗi dòng chứa hai số nguyên ui và vi — nhà và nơi làm việc của cư dân thứ i.

Dữ liệu ra

In ra m dòng, dòng thứ i là kỳ vọng niềm vui của cư dân thứ i. Đáp án được coi là đúng nếu sai số tuyệt đối hoặc tương đối không vượt quá 10−6.

Ràng buộc

  • 2≤n,m≤105
  • 1≤ai,bi≤n
  • 1≤ui,vi≤n, ui≠vi

Ví dụ

Input Output Giải thích
3 3
1 2
1 3
1 2
1 3
2 3
2.50000000
2.50000000
3.00000000
Cây hình sao tâm 1. Với cư dân 1 (u=1,v=2): hai con đường mới (1,2) và (2,3) đều tạo chu trình chứa cả 1 và 2, độ dài lần lượt 2 và 3, kỳ vọng =2.5. Cư dân 3 (u=2,v=3): chỉ con đường (2,3) phù hợp, chu trình dài 3.
4 3
2 4
4 1
3 2
3 1
2 3
4 1
4.00000000
3.00000000
3.00000000
Cây là một đường thẳng 1−4−2−3.

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