分析
代码
#include <cstring>
#include <iostream>
#include <algorithm>
#include <math.h>
using namespace std;
const int N=5e5+5;
int g[N];
int main(){
int n;double s;
cin >> n >> s;
for(int i=0;i<n;i++){
cin >> g[i];
}
sort(g,g+n);
double res=0; double avg=s/n;
for(int i=0;i<n;i++){
double cur=s/(n-i);//cur为当前应该取到的值
if(g[i]<cur){
cur=g[i];
}
s-=cur;//更新s
res+=(cur-avg)*(cur-avg);//求方差的分子
}
printf("%.4lf",sqrt(res/n));
}
你得代码明明是错的?你为什么还发?
。。。因为之前的数据还没有加强
把double 改成 long double,以及“%.4llf”就能过最后一组数据