恢复LIS
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
白浅妹妹前一段时间学习了LIS(最长上升子序列)算法。
她随便生成了一个数组,这个数组长度是,每个元素是一个之间的正整数。
然后她开开心心的求出了这个数组的LIS数组,其中,第个元素代表以原数组第个数结尾的最长上升子序列的长度是多少。
然而她把原数组弄丢了,请你帮她算算,原数组有多少种不同的可能。
输入格式
第一行两个正整数 。
接下来一行,一共 个正整数 ,表示原数组的LIS数组。
输出格式
输出符合条件的数组个数。
样例输入1
3 2
1 1 1
样例输出1
4
样例解释1
符合条件的数组有个,分别是[1,1,1],[2,2,2],[2,1,1],[2,2,1]。
样例输入2
7 7
1 2 1 3 4 5 5
样例输出2
36
样例输入3
16 20
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
样例输出3
66951538
数据范围
对于10%的数据:。
对于20%的数据:。
对于30%的数据:。
对于另10%的数据:。
对于另10%的数据:。
对于另10%的数据:。
对于另10%的数据:。
对于100%的数据:。