SP5831 PERMJUMP - Permutation Jumping
题目描述
John 喜欢玩一种叫做「排列跳跃」的游戏。他会先写下一个由前 $n$ 个自然数组成的排列 $A$。接着,他从任意位置的格子开始起跳。如果当前在格子 $x$ 且未访问过 $A[x]$ 所指向的格子,他就跳到 $A[x]$。他会持续进行这个过程,直到无法跳到新的格子,因为 $A[x]$ 已经被访问过。游戏结束后,他统计在游戏中访问过的所有格子的数量,包括起始格子。
John 希望游戏不会太久也不会太短,为此他希望无论从哪个格子开始,都不会访问超过 $K$ 个格子,同时至少要访问两个格子。
现在,他想知道,有多少种排列可以满足这样的要求,也就是说,任意起始格子都能确保访问至少 2 个格子且至多 $K$ 个格子。
输入格式
第一行给出测试用例的数量 $T$($T \leq 1000$)。接下来的 $T$ 行中,每行包含两个用空格分隔的整数 $N$ 和 $K$($2 \leq K \leq N \leq 100$)。
输出格式
输出 $T$ 行,每行对应一个测试用例的结果。针对每个测试用例,输出一个整数,表示符合要求的排列数,由于结果可能非常大,请取模 $1000000007$ 后输出。
说明/提示
- $2 \leq T \leq 1000$
- $2 \leq K \leq N \leq 100$
**样例**
**输入**
```
2
4 2
6 4
```
**输出**
```
3
145
```
**注释**
- 对于第一个测试用例,有效的排列有 {2 1 4 3}、{3 4 1 2} 和 {4 3 2 1}。
**本翻译由 AI 自动生成**