禁止套娃
题目信息
时间限制: 1s
空间限制: 512M
输入文件: nest.in
输出文件: nest.out
题目背景
YeahPotato 喜欢子序列和套娃。
题目描述
定义从序列 a 到序列集合 S 的映射 S=f(a) 为,S 是 a 的所有子序列组成的去重集合。即相同的子序列在其中只考虑一次。空序列是任何序列的子序列。子序列在原序列中不一定对应连续的位置。
给定 n 以及序列 a1⋯n,求:
b∈f(a)∑∣f(b)∣mod(109+7)
输入格式
第一行一个整数 n。
第二行 n 个整数 a1,⋯,an。
输出格式
一行一个整数,表示答案。
样例
样例输入 1
样例输出 1
样例解释 1
f([1,2,1])={[],[1],[2],[1,1],[1,2],[2,1],[1,2,1]}。
这些子序列的本质不同子序列数依次为 1,2,2,3,4,4,7,和为 23。
样例输入 2
文本
10
1 1 4 5 1 4 1 1 4 5
样例输出 2
样例输入 3
见下发文件夹中的 nest/nest3.in。
样例输出 3
见下发文件夹中的 nest/nest3.ans。
数据范围与提示
对于前 10% 的数据,n≤10。
对于前 30% 的数据,n≤20。
对于前 60% 的数据,n≤400。
对于另 20% 的数据,ai≤2。
对于 100% 的数据,1≤ai≤n≤5000。