trang chủ / đề bài / randtree

Sinh Cây Ngẫu Nhiên

Đề bài

Mô tả

Bessie tạo cây ngẫu nhiên có nhãn gồm N đỉnh qua hai bước:

Bước 1: Bắt đầu với các đỉnh 1 đến N. Với mỗi i từ 2 đến N, nối đỉnh i với một đỉnh ngẫu nhiên đều trong {1,2,…,i−1}.

Bước 2: Chọn một hoán vị ngẫu nhiên đều p1,p2,…,pN của {1,…,N}. Đổi nhãn mỗi đỉnh v thành pv.

Cho tập cạnh cuối cùng, tính xác suất mà quá trình trên sinh ra tập cạnh này. Kết quả modulo 109+7.

Dữ liệu vào

  • Dòng 1: Số nguyên T — số bộ test (1≤T≤10)
  • Với mỗi bộ test:
    • Dòng 1: Số nguyên N (2≤N≤2×105)
    • N−1 dòng tiếp theo: Hai số nguyên u,v mô tả cạnh

Tổng N trên tất cả bộ test không vượt quá 5×105.

Dữ liệu ra

Với mỗi bộ test, in ra xác suất modulo 109+7.

Ràng buộc

  • 2≤N≤2×105
  • ∑N≤5×105

Ví dụ

Input Output Giải thích
4
2
2 1
3
1 2
2 3
4
1 2
2 3
2 4
4
1 2
2 3
3 4
1
333333336
83333334
55555556
N=2: xác suất 1. N=3, đường thẳng: xác suất 1/3. N=4, sao: 1/12. N=4, đường thẳng: 1/18.

Ghi chú

  • Test 2-3: N≤8
  • Test 4-9: N≤2000
  • Test 10-21: Không ràng buộc bổ sung

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