关于刚才CF A 题
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复16
  • 已保存回复16
  • 发布时间2021/8/10 00:36
  • 上次更新2023/11/4 11:21:36
查看原帖
关于刚才CF A 题
349906
封禁用户楼主2021/8/10 00:36
#include <bits/stdc++.h>

using namespace std;
int t,n;
int main()
{
    int t;
    cin>>t;
    while(t--){
        int a[(int)1e5+10]={0},f[(int)1e5+10]={0};
        int n;
        cin>>n;
        for(int i=0;i<n;i++){
            cin>>a[i];
        }
        sort(a,a+n);
        for(int i=0;i<n;i++){
            if(i==0){f[i]=a[i];}
            else f[i]=f[i-1]+a[i];
        }
        double mx=-(int)(2e9);
        for(int i=0;i<n-1;i++){
            double mx2=(double)f[i]/(double)(i+1) + (double)(f[n-1]-f[i])/(double)(n-i-1);
            mx=max(mx,mx2);
        }
         cout<<fixed<<setprecision(12)<<mx<<endl;
    }
    return 0;
}


思路是前缀和,卡在了第二个测试点,求各位大佬帮调。

2021/8/10 00:36
加载中...