
计算几何
M_Lter
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POJ - 2398 Toy Storage
题目链接题目和POJ - 2318 TOYS相似,这题要求算出放置同样数目的玩具的隔间数,同时隔板和玩具放置的位置不是按顺序给的,只要排序加map记录个数即可。#include<cstdio>#include<cmath>#include<map>#include<algorithm>using namespace std;con...原创 2018-08-22 09:56:43 · 135 阅读 · 0 评论 -
POJ - 1410 Intersection
题目链接判断线段是否和矩形相交或者在矩形内或者在矩形边上,是则输出T,否则输出F。一开始自己没看清题意,直接判断矩形四条边是否和线段相交,一直wa。看了题解才知道,还有在矩形内和矩形边上,这三种情况都单独讨论。#include<cstdio>#include<cmath>#include<cstring>#include<algorit...原创 2018-08-25 19:32:07 · 220 阅读 · 0 评论 -
POJ - 1066 Treasure Hunt
题目链接四堵墙围成的正方形内有n堵墙,求从正方形外进入宝藏处需要破墙次数的最小值。(每次破墙只能从中点破)。简单想就是从正方形边界找点到宝藏处会与多少条线段(墙)相交,再加上打破边界的这堵墙,求个最小值即可,判断相交用交叉积。#include<cstdio>#include<cstring>#include<algorithm>using n...原创 2018-08-25 10:40:32 · 137 阅读 · 0 评论 -
POJ - 1039 Pipe
题目链接题目给出管道上半部分各个拐点处的坐标(x,y),管道宽度为1,对应下半部分各个拐点处的坐标是(x,y-1),求直线穿过水管相交处的横坐标的最大值。直线与每个拐点上下连线的线段若有交点则表示穿过管道,如果不能穿过,在第k节管道处无法穿过,则需要计算最大坐标x,即分别计算与第k-1节管子的上、下管壁相交, 求得最大坐标。#include<cstdio>#includ...原创 2018-08-29 17:20:18 · 298 阅读 · 0 评论 -
POJ - 3449 Geometric Shapes
题目链接题目好理解,一张图里有多种形状的图案,分辨标有编号,问每个形状是否与其他形状相交,按字典序列出。将题目所给的点依照形状补充完整:(根据对角关系)正方形:已知(x0,y0),(x2,y2) 则:x3=((x0+x2)+(y2-y0))/2;y3=((y0+y2)+(x0-x2))/2; x4=((x0+x2)-(...原创 2018-08-29 16:22:55 · 254 阅读 · 0 评论 -
POJ - 2318 TOYS
题目链接用n块板将一个一个长方形盒子(给定左上角和右下角坐标)隔成n+1个空间,给定放置m个玩具的坐标,求每个隔间内有多少个玩具。玩具坐标A(x,y),隔板端点坐标B(U,y1),C(L,y2)设置成统一起点C(L,y2):两条线段为:CA(x-L,y-y2),CB(U-L,y1-y2)当交叉积 CA x CB <=0时代表玩具在隔板的左边#include<c...原创 2018-08-21 23:18:20 · 190 阅读 · 0 评论 -
POJ - 2653 Pick-up sticks
题目链接求放置木棍后位于最上面的几根木棍的序号,判断是否相交,利用交叉积即可。#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>using namespace std;const int N=2e5+5;int ans[N];struct l...原创 2018-08-24 23:53:29 · 149 阅读 · 0 评论 -
POJ - 1556 The Doors
题目链接求房间左边中点绕开障碍到右边中点的最短距离,即最短路。#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>using namespace std;const int INF=1e8;const int N=100;double d[N][...原创 2018-08-24 22:32:35 · 93 阅读 · 0 评论 -
POJ - 1269 Intersecting Lines
题目链接四个点,判断两条线段位置(共线,平行,相交)平行:(B.x-A.x)*(D.y-C.y)=(B.y-A.y)*(D.x-D.x)共线:交叉积(AC,AB)=0,交叉积(AD,AB)=0相交:设交点为P 则交叉积(AP,BP)=0,交叉积(CP,DP)=0 展开为: (A.y-B.y)*P....原创 2018-08-24 19:14:24 · 132 阅读 · 0 评论 -
POJ - 2074 Line of Sight
题目链接房子和路之间有诸多障碍物,求从这条路上能看到完整房子的最大长度。换位思考,利用三角形相似原理根据坐标求出视线盲区的长度,除此之外,预处理掉一些不在房子和路之间的障碍物,以免错误判断。参考题解:https://blog.youkuaiyun.com/f_cpp/article/details/40952709#include<cstdio>#include<cmath&...原创 2018-08-28 11:10:52 · 240 阅读 · 0 评论 -
POJ - 3347 Kadj Squares
题目链接每个方形45度放置,贴边放置,尽可能减省空间,问最后从上往下看能看到哪几个方形。定义结构体,记录方形的边长,左顶点位置和右顶点位置,因为有覆盖,所以更新左右顶点位置,再判断即可。#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>using...原创 2018-08-27 13:32:07 · 201 阅读 · 0 评论 -
POJ - 3304 Segments
题目链接给n条两端点的线段,问是否存在一条直线满足所有线段投影直线上有交点。两条线段肯定有,两条线段某一个端点相连的直线满足;大于三条线段的,判断是否有一条直线和其他线段相交即可,用交叉积。#include<cstdio>#include<cmath>using namespace std;const int N=110;const double ...原创 2018-08-22 11:21:02 · 103 阅读 · 0 评论 -
POJ - 1696 Space Ant
题目链接n个点,蚂蚁从y坐标最小的点开始逆时针爬行,写出经过点的序号。每次选点都只能从剩下的点中选择最靠右的,用叉积排序求解。题解有说这是凸包变种,可用凸包求解(写的时候没写对),涉及卷包裹算法,也可以用极角排序,涉及Granham Scan算法。#include<cstdio>#include<cmath>#include<cstring>...原创 2018-08-25 22:21:03 · 128 阅读 · 0 评论