Codeforces Round 554 (Div. 2)
F2
Neko Rules the Catniverse (Large Version)
Codeforces
3000
原题
← F1→
翻译中…

This problem is same as the previous one, but has larger constraints.

翻译中…

Aki is playing a new video game. In the video game, he will control Neko, the giant cat, to fly between planets in the Catniverse.

翻译中…

There are $n$ planets in the Catniverse, numbered from $1$ to $n$. At the beginning of the game, Aki chooses the planet where Neko is initially located. Then Aki performs $k - 1$ moves, where in each move Neko is moved from the current planet $x$ to some other planet $y$ such that:

翻译中…
  • Planet $y$ is not visited yet.
  • $1 \leq y \leq x + m$ (where $m$ is a fixed constant given in the input)
翻译中…

This way, Neko will visit exactly $k$ different planets. Two ways of visiting planets are called different if there is some index $i$ such that, the $i$-th planet visited in the first way is different from the $i$-th planet visited in the second way.

翻译中…

What is the total number of ways to visit $k$ planets this way? Since the answer can be quite large, print it modulo $10^9 + 7$.

翻译中…

Input

翻译中…

The only line contains three integers $n$, $k$ and $m$ ($1 \le n \le 10^9$, $1 \le k \le \min(n, 12)$, $1 \le m \le 4$) — the number of planets in the Catniverse, the number of planets Neko needs to visit and the said constant $m$.

翻译中…

Output

翻译中…

Print exactly one integer — the number of different ways Neko can visit exactly $k$ planets. Since the answer can be quite large, print it modulo $10^9 + 7$.

翻译中…

Note

翻译中…

In the first example, there are $4$ ways Neko can visit all the planets:

翻译中…
  • $1 \rightarrow 2 \rightarrow 3$
  • $2 \rightarrow 3 \rightarrow 1$
  • $3 \rightarrow 1 \rightarrow 2$
  • $3 \rightarrow 2 \rightarrow 1$
翻译中…

In the second example, there are $9$ ways Neko can visit exactly $2$ planets:

翻译中…
  • $1 \rightarrow 2$
  • $2 \rightarrow 1$
  • $2 \rightarrow 3$
  • $3 \rightarrow 1$
  • $3 \rightarrow 2$
  • $3 \rightarrow 4$
  • $4 \rightarrow 1$
  • $4 \rightarrow 2$
  • $4 \rightarrow 3$
翻译中…

In the third example, with $m = 4$, Neko can visit all the planets in any order, so there are $5! = 120$ ways Neko can visit all the planets.

翻译中…

In the fourth example, Neko only visit exactly $1$ planet (which is also the planet he initially located), and there are $100$ ways to choose the starting planet for Neko.

翻译中…

样例

Input #1
3 3 1
Output #1
4
InputCopy OutputCopy
Input #2
4 2 1
Output #2
9
InputCopy OutputCopy
Input #3
5 5 4
Output #3
120
InputCopy OutputCopy
Input #4
100 1 2
Output #4
100
InputCopy OutputCopy
题目信息
题号
1152F2
时间限制
7 s
内存限制
256 MB
标签
位运算
动态规划
矩阵

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。