Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
P183PROJ - ROUND 3J - Hoán vị của Lúa |
Trong toán học, đặc biệt là trong đại số trừu tượng và các lĩnh vực có liên quan, một hoán vị là một song ánh từ một tập hợp hữu hạn X vào chính nó.
Trong lý thuyết tổ hợp, khái niệm hoán vị cũng mang một ý nghĩa truyền thống mà nay ít còn được dùng, đó là mô tả một bộ có thứ tự không lặp
Khái niệm hoán vị diễn tả ý tưởng rằng những đối tượng phân biệt có thể được sắp xếp theo những thứ tự khác nhau. Ví dụ, với tập hợp gồm các số từ một đến sáu, mỗi cách sắp thứ tự sẽ tạo thành một dãy các số không lặp lại. Một hoán vị như thế là: "3, 4, 6, 1, 2, 5".
Có nhiều cách định nghĩa khái niệm hoán vị một cách chính quy hơn. Một hoán vị là một dãy có thứ tự chứa mỗi phần tử của một tập hợp một và đúng một lần; như vậy "1, 2, 2, 3, 4, 5, 6" và "1, 2, 4, 5, 6" đều không phải là hoán vị của tập "1, 2, 3, 4, 5, 6". Do đó, điểm khác nhau cơ bản giữa một hoán vị và một tập hợp là: những phần tử của một hoán vị được sắp xếp theo một thứ tự xác định.
Cho hai dãy: (a[1], a[2], .. a[n]) và (b[1], b[2], b[n]) là hai bộ hoán vị độ dài n của các số từ 1 đến n. Dãy c độ dài n với phần tử c[i] = ((a[i] – 1 + b[i] – 1) mod n) + 1 (i = 1..n). Hỏi tồn tại bao nhiêu bộ 2 dãy a và b để dãy b cũng là một hoán vị của n phần thử 1 đến n?
Lưu ý: 2 bộ (x, y) và (y, x) được coi là khác biệt.
Input
- Một số nguyên duy nhất n (1<=n<=16)
Output
- Kết quả bài toán lấy dư cho 10^9+7
Example
Test 1
Input: 3 Output: 18
Test 2
Input:
5
Output:
1800
Được gửi lên bởi: | adm |
Ngày: | 2018-03-16 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 ASM64 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |