Vijos P1012 清帝之惑之雍正

来源:互联网 发布:ubuntu自动挂载硬盘 编辑:程序博客网 时间:2024/04/29 00:13

计算几何。

非常忧伤WA了数次,都是在第七组数据。

开始以为是排序方法错了,

后来发现是枚举的时候对比问题。

#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;int n;struct lx{    double x,y;}l[100001];bool cmp(lx a,lx b){    return (pow(a.x,2)+pow(a.y,2))<(pow(b.x,2)+pow(b.y,2));}int main(){    while(~scanf("%d",&n))    {        for(int i=0;i<n;i++)        scanf("%lf%lf",&l[i].x,&l[i].y);        sort(l,l+n,cmp);        double ans=sqrt(pow(l[n-1].x-l[0].x,2)+pow(l[n-1].y-l[0].y,2));        for(int i=0;i<n;i++)        {            int k=i+1;            while(l[k].y-l[i].y<ans&&k<n)k++;            for(int j=i+1;j<=k;j++)            ans=min(ans,sqrt(pow(l[j].x-l[i].x,2)+pow(l[j].y-l[i].y,2)));        }        printf("%.3lf\n",ans);    }}


0 0
原创粉丝点击