/ Vijos / 题库 /

K元上升子序列

K元上升子序列

时间限制:0.5秒  内存限制:256M


【题目描述】

  求最长上升子序列的问题已经相当普及,本题希望你求解长度为 \(K\) 的上升子序列的个数。只要有序元组中有一个元素的在原序列中的位置不同,就是不同的元组。比如序列:\(a_1=1,a_2=3,a_3=0,a_4=3,a_5=4\) 中 \(a_1,a_2,a_4\) 和 \(a_1,a_4,a_5\),虽然它们都是 [1,3,4],但是算着两个不同答案。

【输入格式】

  第一行包含两个整数:\(N\) 和 \(K\),\(N\) 表示序列长度,\(K\) 的意义如题目描述。
  第二行包含 \(N\) 个用空格分隔的整数,依次表示 \(a_1,a_2,…,a_n\)。

【输出格式】

  输出一个整数,表示 \(K\) 元上升子序列的数目。由于这个值很大,你只需输出其模 \(10^9+7\) 的结果。

【输入输出样例】

 Input

6 3
2 1 3 0 3 4

 Output

5

【数据限制】

  对于 \(40\%\) 的数据满足:\(1≤N≤1000\)。
  对于 \(80\%\) 的数据满足:\(1≤N≤20000,0≤a[i]≤10^6\)。
  对于 \(100\%\) 的数据满足:\(1≤N≤20000,1≤K≤100,0≤a[i]≤10^9\)。

【来源】

  Mr.he

信息

ID
3165
难度
9
分类
动态规划 | LIS数据结构 | 线段树树状数组平衡树 点击显示
标签
(无)
递交数
2
已通过
1
通过率
50%
被复制
2
上传者