#CF1833F. 伊拉与弗拉明戈

伊拉与弗拉明戈

伊拉与弗拉明戈

时间限制:2s
空间限制:256MB

题目描述

伊拉非常喜欢西班牙弗拉明戈舞。她开办了一间舞蹈工作室,共有 nn 名学生,第 ii 名学生的水平为 aia_i。

她想选择一些学生组成舞蹈队。一支舞蹈队称为“壮丽舞蹈”,当且仅当满足以下条件:

  • 恰好有 mm 名学生参加;
  • 所选学生的水平两两不同;
  • 任意两名所选学生的水平之差的绝对值严格小于 mm。

例如,m=3m=3,学生水平依次为 [4,2,2,3,6][4,2,2,3,6] 时,可以选择编号为 {1,2,4}\{1,2,4\} 的学生,也可以选择编号为 {1,3,4}\{1,3,4\} 的学生。两者是不同的舞蹈队。

选择 {1,4}\{1,4\} 不符合要求,因为人数不足;选择 {2,3,4}\{2,3,4\} 不符合要求,因为有两名学生的水平相同;选择 {1,4,5}\{1,4,5\} 也不符合要求,因为其中水平 33 与 66 的差等于 mm,而非严格小于 mm。

求不同的壮丽舞蹈有多少种,对 109+710^9+7 取模。两支舞蹈队不同,当且仅当参与者的学生编号集合不同;学生在队伍中的排列顺序不影响计数。

输入格式

第一行包含一个整数 tt,表示测试数据的组数。

每组测试数据的第一行包含两个整数 nn 和 mm。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n,表示各名学生的水平。

输出格式

对于每组测试数据,输出一个整数,表示壮丽舞蹈数量对 109+710^9+7 取模的结果。

样例输入 1

9
7 4
8 10 10 9 6 11 7
5 3
4 2 2 3 6
8 2
1 5 2 2 3 1 3 3
3 3
3 3 3
5 1
3 4 3 10 7
12 3
5 2 1 1 4 3 5 5 5 2 7 5
1 1
1
3 2
1 2 3
2 2
1 2

样例输出 1

5
2
10
0
5
11
1
2
1

数据范围

  • 对于所有数据,满足 1≤t≤100001\le t\le10000。
  • 对于所有数据,满足 1≤m≤n≤2000001\le m\le n\le200000。
  • 对于所有数据,满足 1≤ai≤1091\le a_i\le10^9。
  • 所有测试组共同满足 ∑n≤200000\sum n\le200000。
子任务编号 分值 特殊限制
1 15 n≤16n\le16,且一个输入文件内 ∑n≤64\sum n\le64
2 25 n≤4000n\le4000,且一个输入文件内 ∑n≤8000\sum n\le8000
3 30 所有 aia_i 两两不同
4 无特殊限制