
计算几何
xjsong99
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 · 322 阅读 · 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 · 218 阅读 · 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 · 198 阅读 · 0 评论 -
POJ2932 Coneology
题目: http://poj.org/problem?id=2932 《挑战程序设计竞赛》P258题意: xy平面内给一堆圆,不相交,可以内含; 问所有不被包含的圆是哪些;分析: 计算几何扫描线例题 将圆左右端点的x坐标及圆序号封装到结构体中,以x坐标排序; 按x从小到大扫描; 开一个set:outers记录目前所有最外层的圆; 扫描到圆的左端点,如果不被任何圆包含,则加原创 2018-01-25 14:24:11 · 242 阅读 · 0 评论 -
POJ1228 Grandpa's Estate
题目: http://poj.org/problem?id=1228题意: 给一堆点,是原凸包边上的点或内部的点(内部的点表明凸包被切割); 问能这些点能否唯一确定原来这个凸包分析: 这是一个稳定凸包问题; 如果凸包上一条边唯一确定,那么这条边上至少要有3个点 所以,先跑一遍凸包,然后检查是否每条边至少有3个点; 用向量平行检查 ( 向量叉乘=0则三点共线 )代码:原创 2018-01-25 14:34:51 · 295 阅读 · 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 · 180 阅读 · 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 · 700 阅读 · 0 评论