1350: 小zoucao找妈妈
Description
小zoucao是一只可爱的小蝌蚪,有一天它和妈妈走丢了(TAT),于是开始含泪找妈妈。然而它并不知道自己的妈妈长什么样子,于是它依次找来了 $S$ 位候选妈妈,其中一共包含 $N$ 种物种,每种物种 $a_i$ 个(保证 $\sum{a_i} = S, i \in \{ 1, 2 \ldots n \} $ )。小zoucao会采取如下步骤找妈妈:
步骤一,小zoucao会在所有 $S$ 位候选妈妈中等概率找一位并带走。
步骤二,小zoucao会先从剩下 $S-1$ 位妈妈中等概率选一位并与目前在身边的那位妈妈进行比较,如果身边的两位妈妈属于同一物种,则小zoucao会判定这就是它的妈妈并结束该过程,否则,它会选择其中一位带走并重复步骤二。(注意,之前被选择过的的妈妈仍可能在之后被重新选择)
假设小zoucao足够聪明,使得每次在步骤二中带走的妈妈方案最优,即使得最终找妈妈的次数最少,求找到妈妈的期望次数是多少(在 $\%998244353$ 意义下)。若无论如何都不能找到妈妈则输出 $-1$ 。由于小zoucao已经急不可耐的想找到自己的妈妈,于是它把这个任务交给了你。
形式化题意:有 $N$ 种物品,每种物品分别有 $a_i$ 个,且这 $N$ 种物品的总数为 $S$ 。每次你都会等概率地选取物品。特殊的,在第一次选取时你会在所有 $S$ 件物品中选一件并保留这件物品。在之后的每一次中,你会在剩下 $S-1$ 件物品中选一件并比对已选取的两件物品,若属于同一种则结束该过程,否则你会选择其中一件物品留下并放回另一件物品。假设每次放回都选择最优方案,即让最终选取的期望次数最小,求选取次数的期望值在 $\%998244353$ 意义下是多少。若无解输出 $-1$ 。
Input
每个测试点包含多组测试数据。第一行包含一个整数 $t(1 \leq t \leq 10^4)$ 表示测试数据数量。每组测试数据说明如下:
第一行一个整数 $N(1 \leq N \leq 3 \times 10^5)$ ,表示所有妈妈包含的物种数量。
第二行 $N$ 个整数 $a_i(1 \leq a_i < 998244353)$ 表示每种物种的数量。
保证每个测试点中的所有测试数据有$\displaystyle \sum{N}$ $\leq$ $3 \times 10^5$。Output
Sample Input Copy
4
3
2 2 3
4
1 1 1 1
5
1 1 4 5 1
6
1 9 1 9 8 1
Sample Output Copy
570425349
-1
457528666
941103474
HINT
第一组测试数据的期望为$ \frac{31}{7} $, 在 $\%998244353$ 意义下为 $570425349$ 。
第二组测试数据显然无解,输出 $-1$ 。