int n, m;     cin >> n >> m;     double l = 99999999, r = 0;     vector<double> all(n);     for (int i = 0; i < n; i++)     {         cin >> all[i];         l = min(l, all[i]);         r = max(r, all[i]);     }     l--, r++;     double mid;     double res = -1;     while (r - l > 1e-3)     {         mid = (l + r) / 2;         int cont = 0;         for (int i = 0; i < n; i++)             cont += all[i] / mid;         if (cont >= m)         {             l = mid;             res = mid;         }         else             r = mid;     }     cout << fixed << setprecision(2) << res << endl; 我也来贴一发 刚开始写的整数二分,跑了样例才改的浮点,所以可能有的地方有点奇怪 第一次1e-7精度上去T了,改1e-3直接过😃
点赞 评论

相关推荐

头像
点赞 评论 收藏
转发
牛客网
牛客企业服务