B. 大根堆(heap)

    Type: Default File IO: heap 2000ms 512MiB

大根堆(heap)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

DianaDiana 正在和大家玩你画我猜。

出于一些原因,小 zz 预知了 DianaDiana 将会画一个有 nn 个点的大根堆:一棵树,每个点被从 11nn 编号,而每个点的编号大于其所有孩子的编号。

zz 还预知了对于第 ii 个点,其度数(孩子的个数)不超过 did_i

然而,小 zz 只会猜答案。它想知道它猜对的概率,所以想请你帮忙计算所有符合条件的堆的方案数。

由于小 zz 大脑的容量极其有限,所以你只需要告诉它答案对 998244353998244353 取模后的答案。

子树之间是有序的。即,两个方案不同当且仅当存在一个点在两个方案中的孩子组成的有序序列不同。

输入格式

从文件 heap.inheap.in 中读入数据。

本题包含多组测试数据。

第一行一个正整数 TT ,表示数据组数。

接下来 2T2T 行,每两行代表一组测试数据。对于每组测试数据:

第一行一个正整数 nn ,表示 DianaDiana 画的堆的点数。

第二行 nn 个整数 d1,d2,...,dnd_1,d_2,...,d_n ,表示每个点度数的上限。

输出格式

输出到文件 heap.outheap.out 中。

TT 行,每行一个非负整数表示答案对 998244353998244353 取模的结果。

样例 1 输入:

3
4
0 1 2 2
4
0 1 2 3
10
0 1 2 2 3 2 3 4 2 4

样例 1 输出:

9
15
8285157

样例 1 解释:

对于第一组测试数据,存在以下 99 种方案:

image

样例 2 :

见右侧文件的 heap2.inheap2.inheap2.ansheap2.ans

数据范围

对于所有测试数据,保证 1T51n50000di<i1≤T≤5,1≤n≤5000,0≤d_i<i

每个测试点的具体限制见下表:

image

NOIp1 模拟赛

Not Attended
Status
Done
Rule
IOI
Problem
4
Start at
2024-10-1 0:00
End at
2024-10-2 0:00
Duration
24 hour(s)
Host
Partic.
18