![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
几何
文章平均质量分 80
黑山老猴妖
这个作者很懒,什么都没留下…
展开
-
POJ 1556 线段与线段相交 + dijkstra
题意:一个10*10 的地图,在竖着的方向上有n个列被放置了木板,每列三个,也就是产生了两个空隙,如图,很好理解 = =思路:首先这道题要求最短路,最后肯定是跑一个最短路,之前的建图比较麻烦,把每个列的点都存下来的话,判断两个点之间能否建边就是这个线段与其他的3*n个线段均不相交,然后建图(刚开始没存点差点没建死= =)!代码:#include#include#include#i原创 2015-05-14 19:06:24 · 542 阅读 · 0 评论 -
POJ 2318 || POJ 2398判断点和线段的位置
题意 : 给一个矩形,然后有n条不相交的线段,线段的两个端点在矩形的上下两条边上,这样就把矩形划分成了n+1个区域,然后给出m个点(不在线上),问最终每个区域中有几个点思路 : 利用向量的叉乘来判断这个点在某线段的顺时针还是逆时针方向上,然后二分找到位置(线段已经排好序了)代码:#include#include#include#include#includeusing nam原创 2015-05-13 21:11:20 · 395 阅读 · 0 评论 -
POJ 1066 线段相交
题意:给出一些端点在边界上的线段,然后给出一个点,要求从点走到边界外面,跨过线段的时候要求必须从当前小线段的中点走思路:刚开始想的很复杂,想先求出来每个小线段,然后跑最短路= =,后来写跪了,看了discuss,提供的一种思路是枚举边界上的点,然后求边界上的点和终点与线段相交的个数,取最小值。 看起来似乎很对的样子,然后敲了,A了,实际上还是不太懂= =,唉。。。然后又看了看,大概原创 2015-05-15 11:04:51 · 382 阅读 · 0 评论 -
POJ 1696 向量的点乘
题意:有个东西,要吃地图上的点,但是只能直走或者向左拐,而且不能与之前的路线相交,问最多能吃多少思路:向左拐的话开始以为是叉乘,后来天真的乱写错了之后看题解,发现最多能吃多少完全是坑,因为能全吃完= =,其实画一画完全能发现,就是从最下面的点开始,然后绕着圈吃嘛。。于是这道题也是这么解的,先找到最下面的点,然后找到偏转角度最小的点,就这样走下去就可以。。三点共线的时候开始没考虑也A了,后来想了原创 2015-05-19 14:49:33 · 346 阅读 · 0 评论 -
POJ 1113 凸包模板题
题意:给出一堆城堡(点),问用围墙围起来所有的城堡,令围墙的周长最短(围墙由部分弧形和部分线段组成),围墙距离城堡的距离至少为L思路:开始直接当成凸包模板题来做了,没想问什么是凸包。先说下凸包的定义,在二维平面下,凸包可以想象成一个围绕着所有点的橡皮圈,任意两个点的连线都包括在这个凸包内。弧形的长度可以证明是一个圆的周长(很好证明),于是周长最短就是围起来所有点的周长最短,这大概就是凸包?暂时原创 2015-05-19 21:16:56 · 450 阅读 · 0 评论 -
POJ 2826 几何/两条线段的各种情况。。
题意:给两个木板,问这两个木板能接多少水思路:首先,如果有一个平行于x轴的,或者两个不相交,或者重合的情况下答案就是0.00。相交的时候分为两种情况,一种是斜率不同,这个很好处理,就是较低的点做个平行于x轴的直线,然后围成的三角形的面积就是答案。如果斜率相同,有如下几种情况代码:#include#include#include#include#include#includ原创 2015-05-19 16:57:20 · 459 阅读 · 0 评论 -
POJ 1269 判断直线和直线关系
题意:给两个直线,判断是相交还是重合还是平行,相交给出交点注意:用一般式判断的时候需要三个比值相等而不是两个fabs(la.a*lb.b - la.b*lb.a) 代码:#include#include#include#include#includeusing namespace std;const double INF = 1e200;const doubl原创 2015-05-13 23:35:59 · 346 阅读 · 0 评论 -
ACM计算几何题目推荐 (里面就一个链接)
转载自:http://blog.csdn.net/u010527492/article/details/9990413转载 2015-05-13 17:53:29 · 411 阅读 · 2 评论 -
POJ 1228 稳定凸包
题意:给出n个点,这n个点在凸包的边上或者点上。问仅由这 几个点能否确定凸包的形状。。思路:考虑什么情况下不能是稳定的凸包,就是某个边上只有两个点,然后再往外面扩一个就可以形成一个新的凸包,如果边上还有一个点的话, 那么就不能添加新的点,因为给出的点是保证在凸包上的。。凸包的模板跟之前的一题有点区别,就是对于共线的点是否加入凸包,正常的时候是不加入的(因为如果没什么要求的话加进去也没有用。原创 2015-05-20 20:46:56 · 643 阅读 · 0 评论 -
POJ 3304 判断线段和直线相交
题意:给n个线段,问是否存在这样的一条直线,满足这n个线段在投影有公共点思路:如果存在这样的直线,那么这样的直线一定是一组平行的直线都可以(投影),投影有公共点,从公共点做直线的垂线,那么这条垂线一定和所有的线段相交,也就是如果存在一个直线和所有的线段相交就可以。如果存在这样的垂线,考虑如果稍微偏移一定的角度,一定偏移到了某条线段的端点的时候不能再偏移,所以只要枚举端点就可以了(开始时枚举的是原创 2015-05-14 16:14:33 · 360 阅读 · 0 评论 -
POJ 2653 判断线段相交
题意:n个线段,一个一个的放,问最后没有被压住的都有哪些(貌似不用考虑端点?题中没细说)思路:n有点大,可以考虑用两个队列(不过比直接算慢了点,因为用了stl?),或者是直接算,如果没有和后面的相交就可以,否则跳过代码:#include#include#include#include#include#include#includeusing namespace std;原创 2015-05-14 21:43:44 · 406 阅读 · 0 评论 -
POJ 1873 凸包+枚举
题意:给你n棵树,每棵树都有它的坐标,价值,长度。现在要砍掉一些树,然后用这些树产生的木材(就是长度和)能够把其他的树围起来(剩下的树的凸包的周长),找到价值最小的解,如果价值相同,就选砍掉较少的树的解思路:就是枚举+求凸包周长,需要有个剪纸就是如果当前的价值比当前最小价值大,那么这个情况肯定是不行的,不然会T水的第一道final题= =代码:#include#include#原创 2015-05-21 15:33:09 · 445 阅读 · 0 评论 -
hihoCoder 1273 清理海报
题目链接:http://hihocoder.com/problemset/problem/1273题 意:这个题的题意不太明确。A覆盖B的条件是公共面积大于0,也就是一条边重合不算;角被覆盖的条件是角在矩形的内部,在边上也不算;还有如果B覆盖A,C覆盖B,C不覆盖A,如果撕开A的话,C也会被撕掉,也就是可传递。思 路:其实就是判断矩形相交,然后建图,跑dfs,思路还是很简单的(虽然原创 2016-03-14 14:20:36 · 921 阅读 · 2 评论