zoukankan      html  css  js  c++  java
  • Codeforces#514D(三分,简单二维几何)

    #include<bits/stdc++.h>
    using namespace std;
    const double eps=1e-8;
    int n;
    struct node{
        double x,y;
    }a[1000007];
    long double find_r(long double x){
        long double r=0;
        for(int i=1;i<=n;i++){
            r=max(r,(x-a[i].x)*(x-a[i].x)/a[i].y/2+a[i].y/2);//寻找最大的半径
        }
        return r;
    }
    int main(){
        int flag=0,flag1=0,flag2=0;
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%lf%lf",&a[i].x,&a[i].y);
            if(a[i].y>0&&flag1==0)
                flag1=1,flag++;
            if(a[i].y<0&&flag2==0)
                flag2=1,flag++;
            if(a[i].y<0)
                a[i].y-=2*a[i].y;
        }
        int can=0;
        if(flag==2){
            can=1;
        }
        if(can==1){
            puts("-1");
        }
        else{
            long double l=-1e7,r=1e7,lx,rx,dx;
            while(r-l>eps){//寻找最适中的圆心横坐标
                dx=(r-l)/3.0;
                lx=l+dx;
                rx=r-dx;
                if(find_r(lx)-find_r(rx)<0)
                    r=rx;
                else
                    l=lx;
            }
            long double x=find_r(r);
            printf("%.8lf ",x);//Lf需用C++14及以上提交,C++11会WA
        }
        return 0;
    }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    「自己开发直播」实现nginx-rtmp-module多频道输入输出与权限控制
    抢购代码留存
    抢红包代码留存
    Table '' is marked as crashed and should be repaired 解决方法
    extundelete实现Linux下文件/文件夹数据恢复!
    RedHat设置Yum源
    MFC 自定义消息
    单例模式
    工厂模式(转)
    hash_map
  • 原文地址:https://www.cnblogs.com/ldudxy/p/9769132.html
Copyright © 2011-2022 走看看