//最大化平均值
int n,k;
int w[N],v[N];
double y[N];
bool C(double x){
for(int i=0;i<n;i++){
y[i]=v[i]-x*w[i];
}
sort(y,y+n);
double sum=0;
for(int i=0;i<k;i++){
sum+=y[n-i-1];
}
return sum>=0;
}
void solve(){
double lb=0,ub=INF;
for(int i=0;i<100;i++){
double mid=(lb+ub)/2;
if(C(mid))
lb=mid;
else ub=mid;
}
}
最大化平均值
最新推荐文章于 2022-02-27 10:13:37 发布