计算几何
文章平均质量分 83
路人丙丙
这个作者很懒,什么都没留下…
展开
-
uvalive6859 凸包
/**这个题是在网格上找能围住所有的点的几何体周长,比较容易能想到 凸包几何体显然是由点周围的点组成的,所以把每个点的上下左右都加入 点集,然后再求一个凸包。由于两点之间不能直接相连,所有的点只能 由网格的边长和对角线相连, 所以再求d1=list[stack[i]].x-list[stace[i+1]].x 和d2=list[stack[i]].y-list[stack原创 2017-07-27 13:54:58 · 198 阅读 · 0 评论 -
51nod oj 1298 圆与三角形
/**如果三角形的三个点都在圆内,那么一定不相交;如果三个点都在 圆外,那么可能相交也可能不相交;其它情况一定相交(某个点在圆上 或者有在圆内的有在圆外的)这题注意用longlong**/ #include #include #include #include #include #include using namespace std; typedef long long ll; struct p原创 2017-07-26 20:57:56 · 261 阅读 · 0 评论 -
hdu5251 凸包 旋转卡壳
传送门:hdu5251 矩形面积 接触了旋转卡壳不久,感觉很神奇…… 这个题是要寻找一个矩形来覆盖住桌面上的小矩形,小矩形即四个点啦,所以就是 找一个矩形覆盖住这些点,也就要求一个凸包,再用矩形把凸包盖住,那就很明显的 是旋转卡壳了,类似旋转卡壳求凸包的宽度,只是这是求矩形面积的最小值 完整代码: #include #include #include #in原创 2017-07-28 19:29:12 · 254 阅读 · 0 评论 -
poj2079 triangle 凸包 旋转卡壳
传送门 题意就是从给定的点中找出面积最大的三角形。 很明显三个点都是凸包上的点,要求一下凸包,但是三角形的边长不一定是凸包的边!!! 我们一般做旋转卡壳的时候是固定两个点,来找第三个点, 但此题由于边长不一定是凸包的边长,所以底边还要判断一遍…… #include #include #include #include using namespace std; const int MAXN原创 2017-07-29 11:01:28 · 214 阅读 · 0 评论 -
hdu4454 计算几何 三分
传送门 题意:给定一个圆和一个矩形、一个点,求点先到圆再到矩形的最短距离和 思路:点是定点,实际上是求圆上的点到这个定点和矩形的最小距离和,所以遍历圆上的点,三分就可以了,在求与矩形的最小的距离的时候,分成八部分(可以说十分特别麻烦了T T) 完整代码: #include #include #include #include #include using namespace st原创 2017-09-24 18:37:33 · 272 阅读 · 0 评论