A【NOIP2017提高组模拟12.18】

题目

A【NOIP2017提高组模拟12.18】_第1张图片
样例输入:
第一行一个整数n
接下来一个n个数,用空格隔开,即序列A
【样例输入1】
2
1 2
【样例输入2】
5 1401 110 4
17 12

样例输出:
一行一个整数,为答案。
【样例输出1】
499122177
【样例输出2】
391092926

数据范围:
对于30%的数据,n<=9
对于另外10%的数据,所有的A[i]均相等
对于另外20%的数据,A[2~n]均相等
对于100%的数据,n<=100000,1<=A[i]<=5000


剖解题目

。。。。。。。


思路

当时就是化简式子推一推,结果什么都没有推出来。。。
早知道就用“特殊值法”了QwQ.


解法

这个解法好牛逼。。。
等价问题变换
构造出一个新问题:有n个桶,第i个桶有a[i]个球,问抽到指定的求的概率是?
显然

Ans=1a[1]a[2].......a[n]

这时我们换一个思路来求这道题。
如果我们每次抽球是在剩下的所有桶子中抽一个,抽到这个后将这个桶子扔掉,那么正
好抽到每个桶子指定的球的概率还是与之前的式子是相等的,因为方案总数相等。
我们先枚举抽到的桶子的顺序,那么对于一个顺序即排列 p,正好抽到这 n 个球的概率为

Ans=1a[1]+a[2]+.....a[n]1a[2]+a[3]+.....+a[n].....1a[n]
.
这两个式子答案相等,那么答案就是前者式子。
时间O(n)。


代码

就不贴了。

你可能感兴趣的:(信息技术,数学)