Đếm hoán vị

Xem PDF

Nộp bài


Điểm: 10
Thời gian: 1.0s
Bộ nhớ: 64M

Tác giả:
Dạng bài

Cho hai số nguyên dương \(n, k\). Đếm xem có bao nhiêu hoán vị \(p_1, p_2, ..., p_n\) của \(1, 2, ..., n\) thỏa mãn \(p_i > p_{i / k}\) với mọi \(1\leq i\leq n\).

Trong đó, \(a/b\) là số nguyên lớn nhất không vượt quá \(\dfrac{a}{b}\) và quy ước \(p_0 = 0\).

Input
  • Gồm hai số nguyên dương \(n, k \ (1 \leq n, k \leq 10^6)\)
Output
  • In ra số lượng hoán vị thỏa mãn điều kiện sau khi \(\mod (10^9+7)\)
Scoring
  • Subtask \(1\) (\(20\%\) số điểm): \(n \leq 10\)
  • Subtask \(2\) (\(10\%\) số điểm): \(k > n\)
  • Subtask \(3\) (\(10\%\) số điểm): \(k = n\)
  • Subtask \(4\) (\(20\%\) số điểm): \(k > \frac{n}{2}\)
  • Subtask \(5\) (\(20\%\) số điểm): \(n, k \leq 10^3\)
  • Subtask \(6\) (\(20\%\) số điểm): \(n, k \leq 10^6\)
Example

Test 1

Input

        3 2

Output

        2

Test 2

Input

        8 3

Output

        2520

Giải thích

  • Trong test 1, chúng ta cần tìm các hoán vị thỏa mãn \(p_3>p_1\) và \(p_2>p_1\). Có 2 hoán vị như vậy \((1, 2, 3)\) và \((1, 3, 2)\).