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;
    }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    题型:系统可靠性
    计算机基础——网络存储
    传输层——TCP的流量控制服务
    传输层——UDP和TCP的对比
    配置——VLAN
    项目管理——PERT图
    从“派生类不能访问基类对象的protected成员”开始讨论各类成员的“可见性”
    cin.clear()和cin.sync
    华为编程大赛——路径查找
    华为编程大赛——求表达式的值
  • 原文地址:https://www.cnblogs.com/ldudxy/p/9769132.html
Copyright © 2011-2022 走看看