trang chủ / đề bài / cyclperm

Hoán vị có chu trình

Đề bài

Mô tả

Một hoán vị độ dài n là dãy gồm n số nguyên phân biệt từ 1 tới n. Với một hoán vị p độ dài n, ta xây dựng đồ thị vô hướng n đỉnh như sau:

  • Với mỗi 1≤i≤n, tìm j lớn nhất thoả 1≤j<i và pj>pi, thêm cạnh (i,j).
  • Với mỗi 1≤i≤n, tìm j nhỏ nhất thoả i<j≤n và pj>pi, thêm cạnh (i,j).

(Nếu không tồn tại j thoả mãn thì không thêm cạnh.)

Hoán vị p được gọi là có chu trình nếu đồ thị tạo ra chứa ít nhất một chu trình đơn (có ≥3 đỉnh phân biệt).

Cho n, đếm số hoán vị có chu trình modulo 109+7.

Dữ liệu vào

Một dòng chứa số nguyên n (3≤n≤106).

Dữ liệu ra

In ra một số nguyên — số hoán vị có chu trình modulo 109+7.

Ràng buộc

  • 3≤n≤106.

Ví dụ

Input Output Giải thích
4 16 Có 4!=24 hoán vị, trong đó 24−24−1=24−8=16 hoán vị có chu trình.
583291 135712853 Đáp án sau khi modulo.

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