题目 20213

禁止套娃

查看题解 ↗GitHub ↗如何评测
题号
20213
标签
比赛NOIP
来源
炼石计划NOIP模拟赛第18套

禁止套娃

题目信息

时间限制: 1s

空间限制: 512M

输入文件: nest.in

输出文件: nest.out

题目背景

YeahPotato 喜欢子序列和套娃。

题目描述

定义从序列 aa 到序列集合 SS 的映射 S=f(a)S=f(a) 为,SS 是 aa 的所有子序列组成的去重集合。即相同的子序列在其中只考虑一次。空序列是任何序列的子序列。子序列在原序列中不一定对应连续的位置。

给定 nn 以及序列 a1⋯na_{1\cdots n},求:

∑b∈f(a)∣f(b)∣ mod (109+7) \sum_{b\in f(a)}\lvert f(b)\rvert\bmod(10^9+7)

输入格式

第一行一个整数 nn。

第二行 nn 个整数 a1,⋯ ,ana_1,\cdots,a_n。

输出格式

一行一个整数,表示答案。

样例

样例输入 1

文本
3
1 2 1

样例输出 1

文本
23

样例解释 1

f([1,2,1])={[],[1],[2],[1,1],[1,2],[2,1],[1,2,1]}f([1,2,1])=\{[],[1],[2],[1,1],[1,2],[2,1],[1,2,1]\}。

这些子序列的本质不同子序列数依次为 1,2,2,3,4,4,71,2,2,3,4,4,7,和为 2323。

样例输入 2

文本
10
1 1 4 5 1 4 1 1 4 5

样例输出 2

文本
13566

样例输入 3

见下发文件夹中的 nest/nest3.in。

样例输出 3

见下发文件夹中的 nest/nest3.ans。

数据范围与提示

对于前 10%10\% 的数据,n≤10n\le 10。

对于前 30%30\% 的数据,n≤20n\le 20。

对于前 60%60\% 的数据,n≤400n\le 400。

对于另 20%20\% 的数据,ai≤2a_i\le 2。

对于 100%100\% 的数据,1≤ai≤n≤50001\le a_i\le n\le 5000。

数据下载

题目 20213 的公开数据

正在读取文件列表…

常用命令

题目 20213 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。