E - Nature Reserve CodeForces - 1059D】的更多相关文章

传送门 There is a forest that we model as a plane and live nn rare animals. Animal number iihas its lair in the point (xi,yi)(xi,yi). In order to protect them, a decision to build a nature reserve has been made. The reserve must have a form of a circle…
大意:给你一个平面上N(N<=100000)个点,问相切于x轴的圆,将所有的点都覆盖的最小半径是多少. 计算几何???Div2的D题就考计算几何???某人昨天上课才和我们说这种计算几何题看见就溜.... 打完比赛才发现好像并不用计算几何,实则是一个二分答案的水题.. 发现如果点在x轴两侧就肯定不行,所以我们把所有的点都挪到一侧. 我们二分一个半径,然后发现因为圆相切于x轴,那么这个圆的圆心一定在y=r的直线上移动. 对于所有的点,它可以被如图的线段AC上的点覆盖,点在AC下方也同理.(终于有个图…
D. Nature Reserve 题目链接:https://codeforces.com/contest/1059/problem/D 题意: 在二维坐标平面上给出n个数的点,现在要求一个圆,能够容纳所有的点,并且与x轴相切的最小半径为多少. 题解: 容易知道圆的纵坐标的绝对值等于其半径,并且半径越大,容纳圆的可能性越大,那么就考虑二分其半径,这样y0值也确定了. 但x值不是很好求.这里我们找到y=y0的那一条线,然后根据半径以及y0,yi值,可以求出当x0在哪一段时,能够包含(xi,yi)这…
Nature Reserve time limit per test:2 seconds memory limit per test:256 megabytes input:standard input output:standard output Problem Description There is a forest that we model as a plane and live nn rare animals. Animal number ii has its lair in the…
链接:CodeForces - 1059D 题意:给出笛卡尔坐标系上 n 个点,求与 x 轴相切且覆盖了所有给出点的圆的最小半径. 题解:二分半径即可.判断:假设当前二分到的半径是 R ,因为要和 x 轴相切,所以圆心一定在 y = R 上,对于每一个点而言,圆要覆盖该点,那么圆心在 y = R 上一定有一段限定区间,所以只要判断这 n 个区间是否有公共区间即可.卡点:误差,太可恶了,求区间段时应该将 sqrt(R * R - d * d) 写成 sqrt(R - d) * sqrt(R + d…
http://codeforces.com/contest/1059/problem/D 最大值: 最左下方和最右下方分别有一个点 r^2 - (r-1)^2 = (10^7)^2 maxr<0.5*10^14 Way1: 二分. difference: 如果使用 5*10^13 -> 10^-6,2^ 60~70区间,pow,sqrt运算,实测超时. 实际上是,使用. time of a case:-> Code: #include <bits/stdc++.h> usin…
\(\\\) \(Description\) 你现在有\(N\)个分布在二维平面上的整点\((x_i,y_i)\),现在需要你找到一个圆,满足: 能够覆盖所有的给出点 与\(x\)轴相切 现在需要你确定合法的圆的最小半径是多少,精度误差允许在\(10^{-6}\)范围内. 如果不存在一个合法的圆,输出\(-1​\). \(N\in [1,10^5],x_i,y_i\in [10^{-7},10^7]\) \(\\\) \(Solution\) 垃圾 \(Double\) 毁我青春 首先考虑哪些情…
原题链接 网络不好的可以到洛谷上去QwQ 题目大意 有N个点,求与y=0相切的,包含这N个点的最小圆的半径 输入输出样例 输入: 2 0 1 1 1 输出 0.625 感觉最多是蓝题难度? 首先无解的情况很简单,如果存在一个点使得它与其他点相对于\(x\)轴不同侧,就无解(显然).考虑到半径不好直接确定,我们二分一下.然后就是怎么\(check\)的问题了.为了方便,我们假设所有的点都在\(x\)轴上方. 假设此时二分的值为\(mid\),左右端点分别为\(l,r\),那么圆心一定在\(y=mi…
题意:给出n(n<=1e5)个点,求一个最小的圆,与x轴相切,并且包含这n个点 思路:我第一想到的是,这个圆一定会经过一个点,再根据与x轴相切,我们可以找到最小的圆,让它包含其余的点,但是如何判断一个圆是否包含其他点花费的时间很多,这样时间复杂度肯定过不去,正解是,用二分枚举圆的半径R,那么圆心就是(X,R),然后根据每个点可以找到允许的X区间,看看是否n个区间有公共点.我最初担心的是精度问题,然而这题精度影响并不大,我的细节没处理好,比如如果y全是负的那么把他们转化为正的,还有公式列错了,这些…
题意 题目链接 Sol 欲哭无泪啊qwq....昨晚一定是智息了qwq 说一个和标算不一样做法吧.. 显然\(x\)轴是可以三分的,半径是可以二分的. 恭喜你获得了一个TLE的做法.. 然后第二维的二分是没有必要的,直接拿圆的标准方程推一下取个最大值就行了.....昨晚没想到qwq给数学老师丢脸了.. #include<cstdio> #include<cmath> #include<algorithm> #define double long double using…