求问精度问题
查看原帖
求问精度问题
1037830
Ooj_bai楼主2024/7/14 21:03

rt
这是我pts85pts 85的代码(Wa on Subtask #1)

#include<bits/stdc++.h>
#define double long double 
using namespace std;
double ans=1e9,maxx;
int n,D[200000005],a[100005];
int main(){
	cout.tie(0);cin.tie(0); 
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		for(int j=1;j<=1.1*a[i];j++){
			double ihs=(a[i]+1.0)/j,ils=a[i]*1.0/j;
			int hs=ihs*100003,ls=ils*100003;
			D[ls+1]++;D[hs+1]--;
		}
	}
	for(int i=1;i<=100003*n;i++){
		D[i]+=D[i-1];
		if(D[i]==n){
			maxx=max(maxx,(double)i/100003.0);
		} 
	}
	cout<<fixed<<setprecision(10)<<maxx;
	return 0;
} 

但我将所有100003改为114514之后便AC。
Q:二者差距不过10%,为何一个85一个100?

2024/7/14 21:03
加载中...