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

Nauuo và Đường Tròn

Đề bài

Mô tả

Cho một cây vô hướng có n đỉnh được đánh số từ 1 đến nn1 cạnh. Bạn muốn vẽ cây này lên một đường tròn theo cách sau:

  • Chọn n điểm phân biệt trên đường tròn.
  • Chọn một hoán vị p1,p2,,pn của {1,2,,n} và đặt đỉnh i tại điểm thứ pi trên đường tròn (đếm theo chiều kim đồng hồ).
  • Vẽ mỗi cạnh của cây bằng một đoạn thẳng nối hai đỉnh tương ứng.

Cách vẽ được gọi là hợp lệ nếu không có hai cạnh nào cắt nhau (hai cạnh chỉ được phép có chung điểm khi điểm đó là đầu mút chung của cả hai cạnh).

Đếm số hoán vị p sao cho cách vẽ là hợp lệ. Vì kết quả có thể rất lớn, hãy in ra phần dư khi chia cho 998244353.

Câu trả lời không phụ thuộc vào việc bạn chọn n điểm cụ thể nào trên đường tròn.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số đỉnh của cây.
  • n1 dòng tiếp theo, mỗi dòng chứa hai số nguyên u,v — một cạnh nối đỉnh uv.

Dữ liệu đảm bảo các cạnh tạo thành một cây.

Dữ liệu ra

In ra một số nguyên duy nhất — số hoán vị hợp lệ modulo 998244353.

Ràng buộc

  • 2n2·105
  • 1u,vn

Ví dụ

Input Output Giải thích
4
1 2
1 3
1 4
24 Cây hình ngôi sao với gốc là đỉnh 1. Mọi hoán vị đều cho cách vẽ hợp lệ, kết quả là 4!=24.
4
1 2
1 3
2 4
16 16 hoán vị hợp lệ. Một ví dụ về hoán vị không hợp lệ là khi hai cạnh (1,3)(2,4) cắt nhau trên đường tròn.
3
1 2
3 2
6 Với n=3 chỉ có 3 điểm trên đường tròn nên không thể có hai cạnh cắt nhau, mọi hoán vị đều hợp lệ: 3!=6.

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