#ATarc108e. [ARC108E] Random IS

[ARC108E] Random IS

题目描述

NN 把椅子从左到右排成一行。第 ii 把椅子的 ID 为 aia_i。这里保证所有 aia_i 互不相同。

すぬけ君打算给若干把椅子做上标记,并丢弃没有被标记的椅子。开始时,所有椅子都没有被标记。若标记后的椅子 ID 从左到右单调递增,则称这种标记方式为“好标记方式”。

すぬけ君按照如下流程进行标记:

  1. 如果在椅子 xx 上新做标记后,标记方式仍然是好标记方式,则称椅子 xx 为“好椅子”。当前好椅子的数量为 kk
  2. k=0k=0,则丢弃所有未被标记的椅子,流程结束。否则,从 kk 把好椅子中等概率随机选择一把进行标记,然后回到步骤 1。

可以证明,流程结束时剩下的椅子数量的期望值是有理数。设其值为 P/QP/Q(既约分数)。又设 M=109+7M=10^9+7。此时,存在唯一的整数 RR,满足 0R<M0 \leq R < MPQ×R(modM)P \equiv Q \times R \pmod{M}。可以证明 R=P×Q1(modM)R = P \times Q^{-1} \pmod{M},其中 Q1Q^{-1}QQ 关于 MM 的模逆元。请计算 RR

输入格式

输入为一行,格式如下:

N a1 a2  aNN\ a_1\ a_2\ \cdots\ a_N

输出格式

输出 RR

样例 1

输入

3
3 1 2

输出

666666673

样例 2

输入

30
26 16 28 30 23 11 29 18 22 15 20 13 27 9 21 7 5 25 4 19 8 3 1 24 10 14 17 12 2 6

输出

297703424

说明/提示

限制条件

  • 所有输入均为整数。
  • 1N20001 \leq N \leq 2000
  • 1aiN1 \leq a_i \leq N
  • 所有 aia_i 互不相同。

样例解释 1

  • 如果最开始标记了椅子 11(ID 为 11 的椅子),最终剩下的椅子为 1,21,2,共 22 把。
  • 如果最开始标记了椅子 22,最终剩下的椅子为 1,21,2,共 22 把。
  • 如果最开始标记了椅子 33,最终剩下的椅子为 33,共 11 把。
  • 椅子被等概率选择,因此最终剩下椅子的期望数量为 53\frac{5}{3}。由于 53×666666673(modM)5 \equiv 3 \times 666666673 \pmod{M},所以 R=666666673R=666666673

由 ChatGPT 4.1 翻译