Reading

20180706 模拟赛 T3 -- 神经衰弱


Fanyi Pu

文件名: card 题目类型: 传统题 时间限制: 1 秒 内存限制: 128 MB 编译优化: 无

题目描述

天然少女小雪非常喜欢玩一个叫做神经衰弱的游戏。

游戏规则是,有若干种牌,每种牌有若干对,开始时全都正面朝下放置。

然后每次同时翻开两张牌,假如这两张牌是同一种类,则拿走这两张牌,否则再次翻回背面。

小雪虽然看上去傻乎乎的但是玩这个游戏非常厉害,所以可以认为她是绝对聪明的,即会采取最优决策和有着完美的记忆力。

现在小雪想要知道,对于某一副牌局,她期望拿多少次可以拿走所有牌。

需要注意的是小雪玩的神经衰弱和普通神经衰弱有所不同。普通神经衰弱是依次拿走两张牌,而小雪的神经衰弱是同时拿走两张牌。

输入格式

第一行一个整数 n 表示牌的种类数

第二行 n 个整数 ai 表示第 i 种牌有多少对

输出格式

一个整数,表示期望 mod998244353

即假如答案是 ab, 你需要输出的是某个数 x,使 xb=a(mod998244353)

保证 a≠0,b≠0

样例输入

2

1 1

样例输出

332748121

数据规模与约定

30%: n≤5,ai≤2

60%: n≤3000

对于所有数据 n≤106,ai≤109

题解

首先,发现两张牌相同后不管什么时间把它们拿去都是一样的,所以我们统一最后拿去。

我们设 s 为总对数,即 s=∑i=1nai。

则总共有 2s 张牌。

那如果抽出的两张牌都两两不同,则总和为须 s 次。

然后我们把它们一个个拿去,又须 s 次。

所以总共 2s 次。

然而可能有情况一次性抽到了两张相同的牌,所以我们要把它的期望减去。

首先,对于任意 i 其发生的概率为 Cai2Cs2,化简一下,得到 ai(ai−1)s(s−1)。

所以总概率为 ∑i=1nai(ai−1)s(s−1)=∑i=1nai(ai−1)s(s−1)。

总共选 s 次,所以期望为 s×∑i=1nai(ai−1)s(s−1)=∑i=1nai(ai−1)s−1。

Cite this post

@misc{pu2018oiicpcotherproblems20180706t3,
  author = {Pu, Fanyi},
  title  = {20180706 模拟赛 T3 -- 神经衰弱},
  year   = {2018},
  month  = {9},
  url    = {https://pufanyi.com/blog/oi-icpc/other-problems/20180706-t3}
}