博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces#514D(三分,简单二维几何)
阅读量:6617 次
发布时间:2019-06-25

本文共 826 字,大约阅读时间需要 2 分钟。

#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\n",x);//Lf需用C++14及以上提交,C++11会WA
    }
    return 0;
}

转载于:https://www.cnblogs.com/ldudxy/p/9769132.html

你可能感兴趣的文章
每次看完羽毛球赛
查看>>
Storm介绍及核心组件和编程模型
查看>>
在android studio中配置运行时签名
查看>>
第一章练习题
查看>>
三、JVM垃圾回收1(如何寻找垃圾?)
查看>>
robotframwork数据库测试(一)——pymysql与pyodbc
查看>>
Java EE (14) -- SSH配置
查看>>
Java Web Services (0) - Overview
查看>>
vue2组件之间双向数据绑定问题
查看>>
linux scp远程拷贝文件及文件夹
查看>>
【原创】Loadrunner使用json格式请求数据并参数化
查看>>
MySQL导入SQL文件过大或连接超时的解决办法
查看>>
Java开发命名规范总结
查看>>
机器学习_生成式模型与判别式模型
查看>>
redhat5.8 alt+ctrl+f1 黑屏
查看>>
python with的用法
查看>>
NYOJ 16 嵌套矩形 DP
查看>>
空间统计笔记之五(Mapping Clusters&Utility工具集)
查看>>
老K漫谈区块链的共识(1)——免信任的共识机制
查看>>
android设备休眠
查看>>