AT_arc104_e.[ARC104E] Random LIS

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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

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

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

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

输入格式

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

NN A1A_1 A2A_2 ⋯\cdots ANA_N

输出格式

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

输入输出样例

  • 输入#1

    3
    1 2 3

    输出#1

    2
  • 输入#2

    3
    2 1 2

    输出#2

    500000005
  • 输入#3

    6
    8 6 5 10 9 14

    输出#3

    959563502

说明/提示

注释

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

约束

  • 1≤N≤61\leq N\leq 6
  • 1≤Ai≤1091\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)/6≡2(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×500000005≡3(mod1000000007)2\times 500000005\equiv 3\pmod{1000000007},所以请输出 500000005500000005。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页