#E0050. 最多k个位置不匹配

最多k个位置不匹配

问题背景

我们称一个大小为 nn 的数列 p1,p2,,pnp_1, p_2, \ldots, p_n 是一个排列,当且仅当整数 1n1 \sim n 在排列 pp 中均出现恰好一次。比如:

  • [1,2,3,4][1, 2, 3, 4] 是一个大小为 44 的排列;
  • [5,3,2,4,1,6,7][5, 3, 2, 4, 1, 6, 7] 是一个大小为 77 的排列;
  • [2][2][1,3,4,3][1, 3, 4, 3][1,3,4,5,6][1, 3, 4, 5, 6] 都不是排列。

题目描述

给定两个整数 nnkk1kn10001 \le k \le n \le 1000),计算有多少个大小为 nn 的排列 p1,p2,,pnp_1, p_2, \ldots, p_n 满足如下条件:

最多存在 kk 个下标 ii 满足 piip_i \neq i

由于满足条件的排列数量可能很大,所以你只需要输出满足条件的排列数量模 109+710^9+7 的结果即可。

输入格式

一行,两个整数 nnkk,以一个空格分隔(1kn10001 \le k \le n \le 1000)。

输出格式

4 1
1
4 2
7
5 3
31

说明/提示

样例 1 解释

一共有 11 个满足条件的排列:

  • [1,2,3,4][1,2,3,4],共 00 个位置 piip_i \neq i

样例 2 解释

一共有 77 个满足条件的排列:

  • [1,2,3,4][1,2,3,4],共 00 个位置 piip_i \neq i
  • [1,2,4,3][1,2,4,3],共 22 个位置 piip_i \neq i,对应的 i=3,4i = 3,4
  • [1,3,2,4][1,3,2,4],共 22 个位置 piip_i \neq i,对应的 i=2,3i = 2,3
  • [1,4,3,2][1,4,3,2],共 22 个位置 piip_i \neq i,对应的 i=2,4i = 2,4
  • [2,1,3,4][2,1,3,4],共 22 个位置 piip_i \neq i,对应的 i=1,2i = 1,2
  • [3,2,1,4][3,2,1,4],共 22 个位置 piip_i \neq i,对应的 i=1,3i = 1,3
  • [4,2,3,1][4,2,3,1],共 22 个位置 piip_i \neq i,对应的 i=1,4i = 1,4

样例 3 解释

一共有 3131 个满足条件的排列:

  • [1,2,3,4,5][1,2,3,4,5],共 00 个位置 piip_i \neq i
  • [1,2,3,5,4][1,2,3,5,4],共 22 个位置 piip_i \neq i,对应的 i=4,5i = 4,5
  • [1,2,4,3,5][1,2,4,3,5],共 22 个位置 piip_i \neq i,对应的 i=3,4i = 3,4
  • [1,2,4,5,3][1,2,4,5,3],共 33 个位置 piip_i \neq i,对应的 i=3,4,5i = 3,4,5
  • [1,2,5,3,4][1,2,5,3,4],共 33 个位置 piip_i \neq i,对应的 i=3,4,5i = 3,4,5
  • [1,2,5,4,3][1,2,5,4,3],共 22 个位置 piip_i \neq i,对应的 i=3,5i = 3,5
  • [1,3,2,4,5][1,3,2,4,5],共 22 个位置 piip_i \neq i,对应的 i=2,3i = 2,3
  • [1,3,4,2,5][1,3,4,2,5],共 33 个位置 piip_i \neq i,对应的 i=2,3,4i = 2,3,4
  • [1,3,5,4,2][1,3,5,4,2],共 33 个位置 piip_i \neq i,对应的 i=2,3,5i = 2,3,5
  • [1,4,2,3,5][1,4,2,3,5],共 33 个位置 piip_i \neq i,对应的 i=2,3,4i = 2,3,4
  • [1,4,3,2,5][1,4,3,2,5],共 22 个位置 piip_i \neq i,对应的 i=2,4i = 2,4
  • [1,4,3,5,2][1,4,3,5,2],共 33 个位置 piip_i \neq i,对应的 i=2,4,5i = 2,4,5
  • [1,5,2,4,3][1,5,2,4,3],共 33 个位置 piip_i \neq i,对应的 i=2,3,5i = 2,3,5
  • [1,5,3,2,4][1,5,3,2,4],共 33 个位置 piip_i \neq i,对应的 i=2,4,5i = 2,4,5
  • [1,5,3,4,2][1,5,3,4,2],共 22 个位置 piip_i \neq i,对应的 i=2,5i = 2,5
  • [2,1,3,4,5][2,1,3,4,5],共 22 个位置 piip_i \neq i,对应的 i=1,2i = 1,2
  • [2,3,1,4,5][2,3,1,4,5],共 33 个位置 piip_i \neq i,对应的 i=1,2,3i = 1,2,3
  • [2,4,3,1,5][2,4,3,1,5],共 33 个位置 piip_i \neq i,对应的 i=1,2,4i = 1,2,4
  • [2,5,3,4,1][2,5,3,4,1],共 33 个位置 piip_i \neq i,对应的 i=1,2,5i = 1,2,5
  • [3,1,2,4,5][3,1,2,4,5],共 33 个位置 piip_i \neq i,对应的 i=1,2,3i = 1,2,3
  • [3,2,1,4,5][3,2,1,4,5],共 22 个位置 piip_i \neq i,对应的 i=1,3i = 1,3
  • [3,2,4,1,5][3,2,4,1,5],共 33 个位置 piip_i \neq i,对应的 i=1,3,4i = 1,3,4
  • [3,2,5,4,1][3,2,5,4,1],共 33 个位置 piip_i \neq i,对应的 i=1,3,5i = 1,3,5
  • [4,1,3,2,5][4,1,3,2,5],共 33 个位置 piip_i \neq i,对应的 i=1,2,4i = 1,2,4
  • [4,2,1,3,5][4,2,1,3,5],共 33 个位置 piip_i \neq i,对应的 i=1,3,4i = 1,3,4
  • [4,2,3,1,5][4,2,3,1,5],共 22 个位置 piip_i \neq i,对应的 i=1,4i = 1,4
  • [4,2,3,5,1][4,2,3,5,1],共 33 个位置 piip_i \neq i,对应的 i=1,4,5i = 1,4,5
  • [5,1,3,4,2][5,1,3,4,2],共 33 个位置 piip_i \neq i,对应的 i=1,2,5i = 1,2,5
  • [5,2,1,4,3][5,2,1,4,3],共 33 个位置 piip_i \neq i,对应的 i=1,3,5i = 1,3,5
  • [5,2,3,1,4][5,2,3,1,4],共 33 个位置 piip_i \neq i,对应的 i=1,4,5i = 1,4,5
  • [5,2,3,4,1][5,2,3,4,1],共 22 个位置 piip_i \neq i,对应的 i=1,5i = 1,5

数据规模与约定

  • 对于 30%30\% 的数据,n10;k4n \le 10; k \le 4
  • 对于 60%60\% 的数据,n100;k4n \le 100; k \le 4
  • 对于 100%100\% 的数据,1kn10001 \le k \le n \le 1000