问题 3716 --最长递增子序列的数量

3716: 最长递增子序列的数量

题目描述

数组A包含N个整数(可能包含相同的值)。设S为A的子序列且S中的元素是递增的,则S为A的递增子序列。如果S的长度是所有递增子序列中最长的,则称S为A的最长递增子序列(LIS)。A的LIS可能有很多个。例如A为:{1 3 2 0 4},1 3 4,1 2 4均为A的LIS。给出数组A,求A的LIS有多少个。由于数量很大,输出Mod 1000000007的结果即可。相同的数字在不同的位置,算作不同的,例如 {1 1 2} 答案为2。

输入

第1行:1个数N,表示数组的长度。(1 <= N <= 50000) 第2 - N + 1行:每行1个数A[i],表示数组的元素(0 <= A[i] <= 10^9)

输出

输出最长递增子序列的数量Mod 1000000007。

样例输入输出

输入#1 复制
5
1 3 2 0 4
输出#1 复制
2

提示

$1 \leq N \leq 50000$,$0 \leq A_i \leq 10^9$
序号 标题 作者 发表时间 费用 订购数 操作