计算几何习题(简单)
学习笔记:link
凸包:切了它以后,我跳入计算几何的坑
旋转卡壳:基于凸包的模板,在凸包代码的基础上加一个 \(getmax\) 的操作(即查询凸包的直径),用我感觉有点贪心(?)的思想去枚举每一条凸包上的边,取到最大的三角形(\(S=lh/2\),\(l\) 不变,\(S\) 越大 \(h\)越大)即可
信用卡凸包:暴力建点做凸包,又可以发现转角处的弧长和加起来即为一个圆的周长
都只是凸包的板子,转角处的弧长和加起来又是一个圆的周长
最大土地面积:咕咕咕
凸轮廓线:如果我说我是暴力加点过的你会打死我吗
但这本来是一道黑题欸 /se /se /se
这道题听说 \(O(n)\) 也能做,但我反正那么菜也不打了(暴力真香
防线修建:咕咕咕
Airport:搞一个凸包模板,最后 \(O(N)\) 枚举每条凸包的边,算出距离和,取最小值
注意点:
- 不要像俞开一样sb,多测不清空
- 不要像俞开一样sb,不特判凸包点数小于等于2的情况
- 不要像俞开一样sb,到处用除法,误差裂开
哇,我竟然把这题做出来惹~
动态维护凸包
死马UVa又炸了,硬是使我从上午 8:00
等到下午 4:00
\(OIwiki\) 上顺过来的水模板,排序即可
注意点:
- 因为要从 \(x\) 坐标最小开始,所以要输入时 \(x\),\(y\) 坐标反着输,输出也反着,但是这样要注意,就是说本来是从第一个点逆时针转,是对的,但现在变成了顺时针(可以自己画图理解一下),于是要先输出第一个包上点,再逆序输出剩下点
多边形:半平面交板子题
暴力出奇迹!!!
这题
我用暴力拿了最优解!震惊
正解 \(Voronoi\) 图,但是我用二分加分治艹过去了