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; }