2823: [AHOI2012]信号塔 Time Limit: 10 Sec Memory Limit: 128 MB Description 在野外训练中,为了确保每位参加集训的成员安全,实时的掌握和收集周边环境和队员信息非常重要,集训队采用的方式是在训练所在地散布N个小型传感器来收集并传递信息,这些传感器只与设在集训地中的信号塔进行通信,信号塔接收信号的覆盖范围是圆形,可以接收到所有分布在该集训区域内所有N个小型传感器(包括在该圆形的边上)发出的信号.信号塔的功率与信号塔接收范围半径的大小成…
BZOJ 洛谷 一个经典的随机增量法,具体可以看这里,只记一下大体流程. 一个定理:如果一个点\(p\)不在点集\(S\)的最小覆盖圆内,那么它一定在\(S\bigcup p\)的最小覆盖圆上. 所以假设我们有了前\(i-1\)个点的最小覆盖圆,那么只需要判断\(i\)在不在其内,就可以确定\(i\)是否在当前最小覆盖圆上. 算法流程: 设前\(i-1\)个点的最小覆盖圆是\(C\),判断第\(i\)个点是否在\(C\)内.如果是,则\(i\)个点的最小覆盖圆也是\(C\):否则进行\(2\).…
题目大意: 给定n个点,求面积最小的园覆盖所有点.其中\(n \leq 10^6\) 题解: 恩... 刚拿到这道题的时候... 什么???最小圆覆盖不是\(O(n^3)\)的随机增量算法吗????? \(10^6\)又是个什么鬼????????? 然后去%了popoqqq大爷的题解...原来这道题数据是随机的啊... 随机数据有一个性质,在凸包上的点不超过\(logn\) 所以我们求凸包然后在上面跑随机增量算法即可 #include <cmath> #include <cstdio&g…
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2823 随机增量法.不断加点维护圆,主要是三点共圆那里打得烦(其实也就是个两中垂线求交点+联立方程求交点而已TAT.. #include<cstring> #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #define rep(i,l,r) for…
题目链接:戳我 最小圆覆盖. 1.枚举第一个点,考虑当前圆是否包含了这个点,如果没有,则把圆变成以这个点为圆心,半径为0的圆. 2.枚举第二个点,考虑圆是否包含了这个点,如果没有,则把圆变成以这两个点的中点为圆心,半径为两点距离一半的圆. 3.枚举第三个点,节点是否在圆内,如果不在,直接把圆变成这三个点的外接圆.具体怎么做,就是解方程(文化课应该在九年级数学讲到过) 记得要打乱点的顺序!期望时间复杂度为\(O(n)\)(具体为什么我也不知道,但是或许可以感性地理解一下...) 另外,如果不想掉精…
题意 给\(n\)个点,求一个能覆盖所有点的面积最小的圆.(\(n \le 50000\)) 分析 随机增量法 题解 理论上\(O(n^3)\)暴力,实际上加上随机化后期望是\(O(n)\)的. 算法大概就是: 假设我们已经得到了最小覆盖圆\(O\),然后现在考虑假如第\(i\)个点进去. 如果第\(i\)个点在圆内或在圆上,则不需要更改.如果在圆外,显然最小覆盖圆要经过这个点. 于是又从头考虑\(1 \sim i-1\)这些点,我们只需要找到一个经过\(i\)点的覆盖所有点的最小覆盖圆.于是同…
2618: [Cqoi2006]凸多边形 Time Limit: 5 Sec Memory Limit: 128 MB Description 逆时针给出n个凸多边形的顶点坐标,求它们交的面积.例如n=2时,两个凸多边形如下图: 则相交部分的面积为5.233. Input 第一行有一个整数n,表示凸多边形的个数,以下依次描述各个多边形.第i个多边形的第一行包含一个整数mi,表示多边形的边数,以下mi行每行两个整数,逆时针给出各个顶点的坐标. Output 输出文件仅包含一个实数,表示相交部分的面…
2823: [AHOI2012]信号塔 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1190  Solved: 545[Submit][Status][Discuss] Description 在野外训练中,为了确保每位参加集训的成员安全,实时的掌握和收集周边环境和队员信息非常重要,集训队采用 的方式是在训练所在地散布N个小型传感器来收集并传递信息,这些传感器只与设在集训地中的信号塔进行通信, 信号塔接收信号的覆盖范围是圆形,可以接收到所有分布…
[BZOJ2823][AHOI2012]信号塔(最小圆覆盖) 题面 BZOJ 洛谷 相同的题: BZOJ1 BZOJ2 洛谷 题解 模板题... #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; #define MAX 1000100 const double eps=1e-10; const double Pi=acos(…
http://www.lydsy.com/JudgeOnline/problem.php?id=2823 (题目链接) 题意 求最小圆覆盖 Solution 关于最小圆覆盖的做法,论文里面都有.其实真正麻烦的是求三角形的外心. 代码 // bzoj2823 #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #inc…