CFCF2207E2.N-MEX (Counting Version)

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

Builder Base Attack(第二阶段)——Supercell,Clash of Clans 这是该题目的计数版本。与其他版本的区别在于,本题需要统计满足 0bin0 \leq b_i \leq n 的构造方案数量。只有你完成了本题的所有版本,才可以进行 hack。

大师建筑师不喜欢重复性的任务——修补基地、升级城镇大厅十五次、还有更多关于 MEX 的编程题。所以,这不是一个普通的 MEX 题目。

对于任意正整数 kk,定义整数集合 SSkk-mex 为 SS 中未出现的第 kk 小非负整数。例如,[1,2,1][1, 2, 1]11-mex 和 22-mex 分别是 0033

给定正整数 nn,考虑一个非负整数数组 [a1,,an][a_1, \ldots, a_n]。计算有多少个满足如下条件的非负整数数组 [b1,,bn][b_1, \ldots, b_n]

  • 对所有 1in1 \leq i \leq n[b1,,bi][b_1, \ldots, b_i] 的第 (ni+1)(n-i+1)-mex 等于 aia_i
  • 另外,对所有 1in1 \leq i \leq n,有 0bin0 \leq b_i \leq n

由于方案数可能非常大,请输出方案数对 109+710^9+7 取模的结果。

输入格式

每组测试包含多个测试用例。第一行为测试用例组数 tt1t1041 \leq t \leq 10^4)。每组测试用例描述如下。

每个测试用例的第一行包含一个整数 nn1n2×1051 \leq n \leq 2\times 10^5),表示数组 aa 的长度。

第二行为 nn 个整数 a1,,ana_1, \ldots, a_n0ai1090 \leq a_i \leq 10^9)。

保证所有测试用例中 nn 的总和不超过 2×1052\times 10^5

输出格式

对每个测试用例,输出一个整数——满足条件的数组 bb 的数量,对 109+710^9+7 取模。

输入输出样例

  • 输入#1

    6
    3
    3 3 1
    3
    2 1 3
    1
    0
    1
    2
    4
    7 5 2 2
    6
    6 6 6 4 3 3

    输出#1

    6
    0
    1
    0
    0
    360

说明/提示

在第一个测试用例中,数组 a=[3,3,1]a = [3, 3, 1]。恰好存在六种满足条件的数组 bb。其中一个例子是 b=[2,0,2]b = [2, 0, 2],其满足以下条件:

  • [b1]=[2][b_1] = [2]33-mex 等于 a1=3a_1 = 3
  • [b1,b2]=[2,0][b_1, b_2] = [2, 0]22-mex 等于 a2=3a_2 = 3
  • [b1,b2,b3]=[2,0,2][b_1, b_2, b_3] = [2, 0, 2]11-mex 等于 a3=1a_3 = 1

在第二个测试用例中,数组 a=[2,1,3]a = [2, 1, 3]。可以证明不存在任何满足条件的数组 bb

首页