![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
-------------计算几何------------
Marcus-Bao
这个作者很懒,什么都没留下…
展开
-
POJ - 1127 Jack Straws 判断线段相交 叉积
题目链接感谢大佬!感谢大佬!判断两线段是否相交:快速排斥跨立实验(这两个词也是我看博客的时候看到的,觉得挺高大上的就拿过来用了,哈哈哈) 快速排斥:就是初步的判断一下,两条线段是不是相交,以两条线段为对角线的矩形,如果不重合的话,那么两条线段一定不可能相交。看下图:原创 2017-07-19 21:28:50 · 1088 阅读 · 1 评论 -
LightOJ - 1190 Sleepwalking 射线法判断点和多边形关系
题目链接%%%%题意:给你一个多边形含有n个点;然后又m个查询,每次判断点(x, y)是否在多边形的内部; 思路:射线法判断即可适用于任何(凸或凹)多边形;时间复杂度为O(n);判断一个点是在多边形内部,边上还是在外部,时间复杂度为O(n);射线法可以正确用于凹多边形;射线法是使用最广泛的算法,这是由于相比较其他算转载 2017-10-06 17:57:08 · 526 阅读 · 0 评论 -
2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 GSM Base Station Identification 线性变换||计算几何
题目链接In the Personal Communication Service systems such as GSM (Global System for Mobile Communications), there are typically a number of base stations spreading around the service area. The原创 2017-10-06 19:48:27 · 383 阅读 · 0 评论 -
计算几何模板
求锐角三角形个数.统计锐角的个数,设为 A,钝角和直角的个数,设为 B 每个锐角三角形有三个锐角,每个钝角和直角三角形均贡献两个锐角 所以答案即为 A−2B3 然后题解在对每个点极角排序之后,采用 two pointers的方式来找上下界 比二分好写多了,也很方便,时间复杂度 O(N2logN)#includeusing namespace std;typedef原创 2017-09-01 23:58:50 · 400 阅读 · 0 评论 -
HDU - 4793 Collision 简单几何+向量点积判方向
题目链接题意:给一个以(0,0)为圆心半径为R的圆形区域,中间放着一个(0,0)为圆心半径为Rm的圆盘,在坐标(x,y)处(严格在圆形区域外)放着一枚半径为r的硬币,运动方向和速度为(vx,vy),在运动中碰到圆盘时,会按碰撞问题反弹(圆盘是固定不动的),问硬币会在圆形区域里呆多长时间(硬币只要有一点点在圆形区域里就记为硬币在圆形区域内)。思路:差点就过了写残了原创 2017-09-29 23:30:39 · 419 阅读 · 0 评论 -
hdu 5128 The E-pang Palace 大力判矩形相交
题目链接题意:给出多个点,问你能否找到两个四条边都平行坐标轴的矩形且这两个矩形不相交所能找到输出对应的最大面积,否则输出imp思路:注意包含也算作不相交,但是最大面积是最大那个...一直输出两个和.wa了好久.因为题目要求四边都平行坐标轴所以很好想到枚举对角线就可以确定一个矩形了,然后判断对应的两点是否存在,这个过程用数组标记一下就好.这原创 2017-09-21 23:42:34 · 310 阅读 · 0 评论 -
HDU - 5033 Building 单调栈维护斜率 好题
传送门 题意:给出n座大楼的位置以及高度,再给出m个人的位置,查询给出的人的位置所能看到的最大的仰角是多少。 思路:当时想到了用单调栈来维护,也想到了把所有人的位置都添加进去排序计算.当前有个最高的肯定会挡住后面的,但是想的不是很全面.这个题目是一个单调栈维护斜率吧. 首先我们可以知道,如果当前建筑物的连线是凹的,那么凹进去的那些点都没用了,正确的结果肯定不会再中间些点.其次,如果当前这些原创 2017-10-11 23:32:25 · 339 阅读 · 0 评论 -
HDU - 5858 Hard problem 两圆面积交模板
#include<bits/stdc++.h>using namespace std;const double eps = 1e-8; const double PI = acos(-1.0);struct point{ double x,y;}q[2];double dis(point a,point b){ return sqrt((a.x-b.x)*(a.x-b.x原创 2017-10-15 15:52:14 · 421 阅读 · 0 评论 -
牛客练习赛18 简单多边形 (叉积求面积)
传送门这题主要可以用到叉积的性质,题目很简单,只是来复习下知识点。利用向量叉积求得的面积是可以有正负的,对于两个向量A,B,若 A × B > 0 ,则相对于原点来说A在B的顺时针方向,< 0 A 在B的逆时针方向,= 0共线。所以这题我们可以把给定的多边形分割成若干三角形,用叉乘求面积,最后判断正负即可。#include<bits/stdc++.h>using nam...原创 2018-05-23 15:28:29 · 341 阅读 · 0 评论