计算几何
文章平均质量分 88
会飞的小蛇
这个作者很懒,什么都没留下…
展开
-
(Pick定理)POJ2954Triangle
POJ2954Triangle题意:给三角形的三个顶点(保证是整数),求三角形内部的点数。思路:Pick定理模板题,由定理可得:a=S−b2+1\begin{aligned}a=S-\frac{b}{2}+1\end{aligned}a=S−2b+1。用叉积求面积,可得a=∣AB→×AC→∣−b2+1\begin{aligned}a=\frac{|\overrightarrow{AB}\times\overrightarrow{AC}|-b}{2}+1\end{aligned}a=2∣AB×A原创 2020-08-30 18:39:10 · 176 阅读 · 0 评论 -
(半平面交)POJ3335Rotating Scoreboard
POJ3335Rotating Scoreboard题意:给你一个多边形,问是否有一个区域能被所有边界上看到。思路:求多边形的核,自然用到半平面交。但是所给点的顺序不知道是顺时针还是逆时针序,我们可以通过求面积来判断,如果面积为正,那么就是逆时针序;反之为顺时针序。然后把直线方向全部按逆时针给出,这样的半平面交才正确。代码:#include<iostream>#include<stdio.h>#include<stdlib.h>#include<a原创 2020-08-30 10:58:45 · 155 阅读 · 0 评论 -
(半平面交)POJ2451Uyuw‘s Concert
POJ2451Uyuw’s Concert题意:在一个10000×1000010000\times1000010000×10000的正方形有nnn条直线穿过,问左边半平面交所构成的多边形的面积是多少。思路:半平面交的板子题,再加上求多边形面积即可。但是依旧很些东西需要注意的。要加上四周的直线,注意是有方向的!要保证这四条线构成的半平面交就是这个正方形。poj提交G++的时候要用%.1f,不是%.1lf。代码:#include<iostream>#include<stdio原创 2020-08-29 23:00:47 · 172 阅读 · 0 评论 -
(旋转卡壳)Gym101606Breaking Biscuits
Gym101606Breaking Biscuits题意:给你一个NNN个点组成的多边形,你可以三维旋转它,使它能够通过一个圆柱,问圆柱底的最小直径。思路:这题可以转换为对于一个多边形,现在用一组平行线,使得凸多边形都在平行线内(上),求最小的平行线之间的距离。这就成了求多边形的宽。...原创 2020-08-27 16:26:18 · 223 阅读 · 0 评论 -
(计算几何)洛谷P3829 [SHOI2012]信用卡凸包
洛谷P3829 [SHOI2012]信用卡凸包思路:题目上面已经很明确的写上了凸包。我们也可以通过画图得到,如下图:把圆心和切点相连,得到了几个矩形和扇形。题目所求的周长可以转换为求由每个信用卡四角上得圆心构成得点集所组成的凸包的周长再加上几个圆弧的长度。所以C=C凸包+∑C圆弧C=C_{凸包}+\sum C_{圆弧}C=C凸包+∑C圆弧。那么就要求圆弧的长度了,不妨猜测 :∑C圆弧=2πr\sum C_{圆弧}=2\pi r∑C圆弧=2πr。以下证明∑C圆弧=2πr\sum C_{圆原创 2020-08-19 19:26:41 · 187 阅读 · 0 评论 -
(计算几何)POJ1066Treasure Hunt
POJ1066Treasure Hunt题意:在一个正方形中,有n条线段(端点都在正方形的边上)将正方形分隔开。有一个点,想要从正方形外到这个点,只能走线段的中点。问最少需要经过多少个中点。思路:比较有意思的一道题。朴素的可以想到,它虽然说是走中点,但是你走出的其实是一个“封闭区域”,你只要找从外面到目标点最少经过几块“封闭区域”。而我们又可以发现,你走出一块“封闭区域”,走中点或者边上其他的点的效果是相同的。那么我们就可讲边上的点与目标点连线,然后判断有条线和它相交。注意n=0时候特判一下。原创 2020-08-17 20:24:35 · 169 阅读 · 0 评论 -
(计算几何)POJ2653Pick-up sticks
POJ2653Pick-up sticks题意:按照顺序给你n根棍子,判断最后有多少棍子在最上面,就是它不会和之后的棍子相交。思路:N2N^2N2判断每根棍子和后面的是否相交即可。代码:#include<iostream>#include<stdio.h>#include<stdlib.h>#include<algorithm>#include<string.h>#include<ctype.h>#include原创 2020-08-17 19:30:09 · 139 阅读 · 0 评论 -
(计算几何)POJ1269Intersecting Lines
POJ1269Intersecting Lines题意:给你两条直线,相交输出交点,重合输出“LINE”,平行输出“NONE”。思路:直线相交的模板题,就是在平行和重合的时候可以用叉乘判断。注意点: 提交G++的时候,不要用%.2lf,要用%.2f。代码:#include<iostream>#include<stdio.h>#include<stdlib.h>#include<algorithm>#include<string.h&原创 2020-08-17 19:11:15 · 148 阅读 · 0 评论 -
(计算几何)POJ2318TOYS、POJ2398Toy Storage
POJ2318TOYS题意:给一个矩形和nnn条线将矩形分成n+1n+1n+1块区域,给mmm个点保证点不在线上,问每一块区域里有几个点。思路:很容易看出,一个点如果在一个区域内,它会在一条边的顺时针方向和另一条边的逆时针方向。所以用叉积。如果一个点在一个区域里,设区域为ABCDABCDABCD,点为PPP。可得(AB→×AP→)∗(CD→×CP→)<0(\overrightarrow{AB}\times\overrightarrow{AP})*(\overrightarrow{CD}\ti原创 2020-08-16 22:35:05 · 132 阅读 · 0 评论 -
计算几何基础
计算几何基础计算几何学了一些,感觉学的太乱,整理一下。原创 2020-08-14 16:55:31 · 351 阅读 · 1 评论