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

Bài Tập Thể Dục

Đề bài

Mô tả

N con bò đứng thành hàng, được đánh số từ 1 đến N. Một hoán vị A là một cách sắp xếp lại các con bò, trong đó con bò ở vị trí i sẽ di chuyển đến vị trí Ai.

Chu kỳ của một hoán vị A là số bước tối thiểu để tất cả các con bò trở về vị trí ban đầu của chúng (tức là số bước nhỏ nhất t>0 sao cho áp dụng A đúng t lần cho kết quả là hoán vị đồng nhất). Chu kỳ này bằng BCNN (bội chung nhỏ nhất) của độ dài tất cả các chu kỳ trong phân rã chu kỳ của hoán vị A.

Hãy tính tích của chu kỳ trên tất cả N! hoán vị có thể của N con bò, lấy phần dư theo M.

Dữ liệu vào

Một dòng duy nhất chứa hai số nguyên NM.

Dữ liệu ra

Một số nguyên duy nhất là tích của chu kỳ trên tất cả N! hoán vị, lấy phần dư theo M.

Ràng buộc

  • 1N7500
  • 108M109+7, M là số nguyên tố

Ví dụ

Input Output Giải thích
5 1000000007 369329541 Tích của chu kỳ trên tất cả 5!=120 hoán vị của 5 phần tử, lấy phần dư theo 109+7.
8 908827567 182247740 Tích của chu kỳ trên tất cả 8!=40320 hoán vị của 8 phần tử, lấy phần dư theo 908827567.

Ghi chú

Với N=5, có 120 hoán vị. Ví dụ, hoán vị [2,1,4,5,3] có các chu kỳ (1 2)(3 4 5), độ dài lần lượt là 23, nên chu kỳ là BCNN(2,3)=6. Tích tất cả các chu kỳ lấy phần dư theo 109+7 bằng 369329541.

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