标签:style blog os for 2014 amp log c++
答案只可能有两种情况 要么是已知点的距离 要么是已知点距离的一半
那么就枚举每个点之间的距离 和距离的一半
先把所有点按照升序排序 然后用枚举的值贪心
对于点A[i] 如果能放[[A[i]-now,A[i]]就放 否则就放[A[i],A[i]+now]
#include<bits/stdc++.h> using namespace std; double a[120],b[120]; int main() { int T,N; scanf("%d",&T); for(int i=1;i<=T;i++) { scanf("%d",&N); int k=0; for(int i=1;i<=N;i++) scanf("%lf",&a[i]); sort(a+1,a+N+1); for(int i=2;i<=N;i++) { b[++k]=a[i]-a[i-1]; b[++k]=b[k-1]/2; } sort(b+1,b+k+1); for(int i=k;i>=1;i--) { double x=INT_MIN*1.0; int flag=0; for(int j=1;j<=N;j++) { if(a[j]==x) continue; else if(a[j]-b[i]>=x) x=a[j]; else if(a[j]>x) x=a[j]+b[i]; else { flag=1; break; } } if(flag==0) { printf("%.3lf\n",b[i]); break; } } } return 0; }
HDU 4932 Miaomiao's Geometry,布布扣,bubuko.com
标签:style blog os for 2014 amp log c++
原文地址:http://blog.csdn.net/nenuxlp/article/details/38488527