计算几何
Jerry99s
OI -> ACM -> AI
展开
-
计算几何
计算几何模板 持续整理ing… const double eps=1e-8; int sgn(double x) { if(x>eps) return 1; if(xreturn -1; return 0; } inline double add(double a,double b) { if(abs(a+b)abs(a)+abs(b))) return 0;原创 2018-01-25 11:35:08 · 293 阅读 · 0 评论 -
POJ1227 Jack Straws
题目: http://poj.org/problem?id=1127 分析: 计算几何,判断两个草丛是否相交; 然后用并查集将相交的草丛合并在一起; 代码: #include #include #include #include using namespace std; const int Tmax=10005; const double eps=1e-8; int sgn原创 2018-01-25 11:38:29 · 179 阅读 · 0 评论 -
POJ2318 TOYS
题目 http://poj.org/problem?id=2318 分析: 判断某个玩具在第几个盒子中; 设置一个特殊点O,为整个盒子的左下角点; 对于某个玩具,从n~1依次判断每个隔板,看玩具点是否和O点处于隔板两侧; 第一个使得其处于两侧的隔板,就是此玩具所处的位置; 代码: #include #include #include #include using nam原创 2018-01-25 11:43:00 · 176 阅读 · 0 评论 -
POJ2932 Coneology
题目: http://poj.org/problem?id=2932 《挑战程序设计竞赛》P258 题意: xy平面内给一堆圆,不相交,可以内含; 问所有不被包含的圆是哪些; 分析: 计算几何扫描线例题 将圆左右端点的x坐标及圆序号封装到结构体中,以x坐标排序; 按x从小到大扫描; 开一个set:outers记录目前所有最外层的圆; 扫描到圆的左端点,如果不被任何圆包含,则加原创 2018-01-25 14:24:11 · 212 阅读 · 0 评论 -
POJ1228 Grandpa's Estate
题目: http://poj.org/problem?id=1228 题意: 给一堆点,是原凸包边上的点或内部的点(内部的点表明凸包被切割); 问能这些点能否唯一确定原来这个凸包 分析: 这是一个稳定凸包问题; 如果凸包上一条边唯一确定,那么这条边上至少要有3个点 所以,先跑一遍凸包,然后检查是否每条边至少有3个点; 用向量平行检查 ( 向量叉乘=0则三点共线 ) 代码:原创 2018-01-25 14:34:51 · 230 阅读 · 0 评论 -
POJ2187 Beauty Contest
题目: http://poj.org/problem?id=2187 分析: 正解应该是旋转卡壳算法,但是目前不会= - 注意到坐标范围是 -1e4 ~ 1e4; 凸包上点最多的时候是近似于一个圆,最大圆半径为 r->1e4 那么圆的周长大约为 2*π*r ≈ 6.28*1e4 又因为坐标都是整数点坐标,所以点数大概在1e4以内; O(n^2)暴力可做; 代码: #inc原创 2018-01-25 15:02:03 · 150 阅读 · 0 评论 -
HDU 6590. Code (判断凸包交)
题目: http://acm.hdu.edu.cn/showproblem.php?pid=6590 题意: 判断能否用一条直线分开两类点。 分析: SVM?(误 两类点分别求凸包,判断一个凸包上是否有点在另一个凸包内部或边界上。 代码: #include <bits/stdc++.h> using namespace std; typedef long long llong; con...原创 2019-07-25 16:05:20 · 650 阅读 · 0 评论