#ATarc104e. [ARC104E] Random LIS

[ARC104E] Random LIS

题目描述

给定一个长度为 NN 的整数序列 A1, A2, , ANA_1,\ A_2,\ \cdots,\ A_N

同样长度为 NN 的整数序列 XX,对于每个 i (1iN)i\ (1\leq i\leq N)XiX_i 独立且等概率地从满足 1XiAi1\leq X_i\leq A_i 的整数中随机选取。

此时,请计算 XX 的最长严格递增子序列长度的期望值,并对 10000000071000000007 取模输出。

更准确地说,期望值可以表示为一个既约分数 PQ\frac{P}{Q},并且根据本题的约束,可以证明存在唯一的整数 RR 满足 R×QP(mod1000000007)R\times Q\equiv P\pmod{1000000007},且 0R<10000000070\leq R<1000000007。请输出这个 RR

输入格式

输入通过标准输入按以下格式给出。

NN A1A_1 A2A_2 \cdots ANA_N

输出格式

请输出期望值对 10000000071000000007 取模后的结果。

样例 1

输入

3
1 2 3

输出

2

样例 2

输入

3
2 1 2

输出

500000005

样例 3

输入

6
8 6 5 10 9 14

输出

959563502

说明/提示

注释

序列 XX 的子序列指的是从 XX 中按原顺序取出若干元素所形成的序列。XX 的最长递增子序列指的是 XX 的所有严格递增子序列中长度最大的一个。

约束

  • 1N61\leq N\leq 6
  • 1Ai1091\leq A_i\leq 10^9
  • 输入均为整数

样例解释 1

XX 共有 66 种可能,概率均为 1/61/6

  • X=(1,1,1)X=(1,1,1) 时,最长递增子序列长度为 11
  • X=(1,1,2)X=(1,1,2) 时,最长递增子序列长度为 22
  • X=(1,1,3)X=(1,1,3) 时,最长递增子序列长度为 22
  • X=(1,2,1)X=(1,2,1) 时,最长递增子序列长度为 22
  • X=(1,2,2)X=(1,2,2) 时,最长递增子序列长度为 22
  • X=(1,2,3)X=(1,2,3) 时,最长递增子序列长度为 33

因此,最长递增子序列长度的期望值为 (1+2+2+2+2+3)/62(mod1000000007)(1+2+2+2+2+3)/6\equiv 2\pmod{1000000007}

样例解释 2

XX 共有 44 种可能,概率均为 1/41/4

  • X=(1,1,1)X=(1,1,1) 时,最长递增子序列长度为 11
  • X=(1,1,2)X=(1,1,2) 时,最长递增子序列长度为 22
  • X=(2,1,1)X=(2,1,1) 时,最长递增子序列长度为 11
  • X=(2,1,2)X=(2,1,2) 时,最长递增子序列长度为 22

因此,最长递增子序列长度的期望值为 (1+2+1+2)/4=3/2(1+2+1+2)/4=3/2,而 2×5000000053(mod1000000007)2\times 500000005\equiv 3\pmod{1000000007},所以请输出 500000005500000005

由 ChatGPT 4.1 翻译