欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2020牛客寒假算法基础集训营4 - G 音乐鉴赏-全概率公式

程序员文章站 2024-02-16 10:45:58
...

题目链接:https://ac.nowcoder.com/acm/contest/3005/G
题目大意:

2020牛客寒假算法基础集训营4 - G 音乐鉴赏-全概率公式
2020牛客寒假算法基础集训营4 - G 音乐鉴赏-全概率公式
思路:
每个人的分数为:a[i](1x)+xya[i]*(1-x)+x*y
要使:a[i](1x)+xy90a[i]*(1-x)+x*y\geq90
就是:y90a[i](1x)xy\geq\frac{90-a[i]*(1-x)}{x}
因为 y[0,90]y\in[0, 90]
所以:a[i](1x)+xy90a[i]*(1-x)+x*y\geq90的概率:
9090a[i](1x)x90\frac{90-\frac{90-a[i]*(1-x)}{x}}{90}
化简得:
(a[i]90)(1x)90x\frac{(a[i]-90)(1-x)}{90x}
根据全概率公式:
p=(a[1]90)(1x)90x1n+(a[2]90)(1x)90x1n+...+(a[n]90)(1x)90x1np=\frac{(a[1]-90)(1-x)}{90x}*\frac{1}{n}+\frac{(a[2]-90)(1-x)}{90x}*\frac{1}{n}+...+\frac{(a[n]-90)(1-x)}{90x}*\frac{1}{n}
化简:
p=i=1n(a[i]90)(1x)90xnp=\sum_{i=1}^n\frac{(a[i]-90)(1-x)}{90xn}
因为:p=0.1p=0.1
所以:i=1n(a[i]90)(1x)90xn=0.1\sum_{i=1}^n\frac{(a[i]-90)(1-x)}{90xn}=0.1
这里就可以用二分了。
可以化简到最后:
x=i=1n(a[i]90)9n+i=1n(a[i]90)x=\frac{\sum_{i=1}^n(a[i]-90)}{9n+\sum_{i=1}^n(a[i]-90)}

#include <bits/stdc++.h>
using namespace std;

int a[100005];
int main(){
    int n, s=0;
    scanf("%d", &n);
    for(int i=1; i<=n; i++){
        scanf("%d",&a[i]);
        s+=(a[i]-90);
    }
    printf("%.2f%%\n", 100.0*s/(9*n+s));

    return 0;
}
相关标签: 概率