码迷,mamicode.com
首页 > 其他好文 > 详细

20180706模拟赛T3——神经衰弱

时间:2018-07-06 19:39:13      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:题目   数据   编译优化   美的   否则   文件名   格式   lock   编译   

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

题目描述

天然少女小雪非常喜欢玩一个叫做神经衰弱的游戏。
游戏规则是,有若干种牌,每种牌有若干对,开始时全都正面朝下放置。
然后每次同时翻开两张牌,假如这两张牌是同一种类,则拿走这两张牌,否则再次翻回背面。
小雪虽然看上去傻乎乎的但是玩这个游戏非常厉害,所以可以认为她是绝对聪明的,即会采取最优决策和有着完美的记忆力。
现在小雪想要知道,对于某一副牌局,她期望拿多少次可以拿走所有牌。
需要注意的是小雪玩的神经衰弱和普通神经衰弱有所不同。普通神经衰弱是依次拿走两张牌,而小雪的神经衰弱是同时拿走两张牌。

输入格式

第一行一个整数\(n\)表示牌的种类数
第二行\(n\)个整数\(a_{i}\)表示第\(i\)种牌有多少对

输出格式

一个整数,表示期望\(\mod998244353\)
即假如答案是\(\frac{a}{b}\),你需要输出的是某个数\(x\),使\(xb=a\pmod {998244353}\)
保证\(a\not=0,b\not=0\)

样例输入

2

1 1

样例输出

332748121

数据规模与约定

30%:\(n≤5,a_{i}≤2\)
60%:\(n≤3000\)
对于所有数据\(n≤10^6,a_{i}≤10^9\)

题解

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

我们设\(s\)为总对数,即\(s = \sum_{i=1}^{n}a_i\)

则总共有\(2s\)张牌。

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

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

所以总共\(2s\)次。

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

首先,对于任意\(i\)其发生的概率为\(\frac{C_{a_i}^{2}}{C_{s}^{2}}\),化简一下,得到\(\frac{a_i(a_i-1)}{s(s-1)}\)

所以总概率为\(\sum_{i=1}^{n}\frac{a_i(a_i-1)}{s(s-1)} = \frac{\sum_{i=1}^{n}a_i(a_i-1)}{s(s-1)}\)

总共选\(s\)次,所以期望为\(s\times \frac{\sum_{i=1}^{n}a_i(a_i-1)}{s(s-1)} = \frac{\sum_{i=1}^{n}a_i(a_i-1)}{s-1}\)

20180706模拟赛T3——神经衰弱

标签:题目   数据   编译优化   美的   否则   文件名   格式   lock   编译   

原文地址:https://www.cnblogs.com/pfypfy/p/9275235.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!