乱搞做法,差分
赛时调不出来摆了
我的做法是利用
kxi<α≤kxi+1(k∈N∗)
对每个ai求出对应的α 范围。最后用差分求出满足所有范围的α最大值。
代码如下。
#include<bits/stdc++.h>
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<=2*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*100;i++){
D[i]+=D[i-1];
if(D[i]==n){
maxx=max(maxx,i/100003.0);
}
}
cout<<fixed<<setprecision(10)<<maxx;
return 0;
}