2020牛客寒假算法基础集训营4 G题.音乐鉴赏

 

 题意:给出平时成绩,然后期末成绩是靠随机数生成的,然后现在要求一个期末成绩的百分占比,然后还要保证优秀率为10%

题解:官方给的公式,没推出来

 

然后另一种方法是二分枚举

应为范围就是0-100%.然后二分枚举就好

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5+10;
const ll mod = 998244353;
const double eps = 1e-9;
int n;
int a[maxn];
double ans = 0;
bool check(double x)
{
    double res = 0, p = 0;
    for(int i = 1; i <= n*10; i++)
    {
        p = (90.0-a[i]*(1-x))/x;
        res += (90-p)/90;
    }
    return res > n;
}
int main()
{
 
    scanf("%d", &n);
    for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
    n/=10;
    double l = 0, r = 1;
    while((r-l)>1e-7)
    {
        double mid = (l+r)/2;
        if(check(mid)) l = mid;
        else r = mid;
    }
 
    printf("%.2lf%%", r*100);
    return 0;
}

 

posted @ 2020-02-12 11:10  RE-TLE  阅读(159)  评论(0编辑  收藏  举报