可恶的精度
  • 板块灌水区
  • 楼主CuSO4_and_5H2O
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/4/10 20:00
  • 上次更新2023/10/28 04:02:34
查看原帖
可恶的精度
231946
CuSO4_and_5H2O楼主2022/4/10 20:00

题目

二分答案的题,对了11个点,错了两个,我感觉是精度问题,但是本蒟蒻看不出哪里错了

#include<bits/stdc++.h>
using namespace std;
long long n,k,Sum;
double sum,a[100011],Max=-1e9;
int zx(double ggg){
	Sum=0;
	for(int i=1;i<=n;i++)
	Sum+=a[i]/ggg;
	if(Sum>=k) Max=max(Max,ggg);
	return Sum;
}
void zzx(double a,double b){
	if(b-a<0.001)  return ;
	double mid=(a+b)/2;
    int Mid=zx(mid),A=zx(a),B=zx(b);
	if(Mid>=k)  zzx(mid,b);
	else zzx(a,mid-0.01); 
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		sum+=a[i];
	}
	sum/=k*1.00;
	zzx(0,sum);
    if(Max==-1e9)
    {
    	cout<<"0.00";
    	return 0;
    }
	printf("%.2lf",Max);
} 
2022/4/10 20:00
加载中...