计算几何
蓝丶星灬
这个作者很懒,什么都没留下…
展开
-
D [ 2021SDU XCPC排位赛(8) ]
链接:https://codeforces.com/gym/341451/problem/D 题意:给一个棱长为1的正四面体,两只蚂蚁按照平面直线在正四面体以初始角度ang走了l距离,问是不是终点在同一个面上。 题解: 比较容易想到的是画出四面体无限延伸的平面展开图,但是如果是很多小三角形,写判断会非常难受。 这时候就需要仿射,具体做法是对所有点都偏移一个值,这样不会改变点在哪个三角形内的关系。 先算出x,y坐标然后再仿射,把两个三角形变成一个正方形,这样写判断就轻松多了。 需要注意的点:因为角度是对于特定原创 2021-08-23 16:45:11 · 126 阅读 · 0 评论 -
B-Street
https://codeforces.com/gym/326694/problem/B 题意: 一个大矩形里有很多小矩形,走小矩形外计算距离,走小矩形内距离不计。 现在给出数据,要求计算从大矩形的下底边走到上底边需要的最短距离。 做法: 先将小矩形视为点,计算不同小矩形之间的最短距离,及小矩形到上下底边的距离。 再在构建的图上跑最短路算法。 特别需要注意的点(我在这里卡了一个多小时qwq): 小矩形在异侧时,宽度和可能会超过大矩形的宽度,这时不再需要走对角,而是直接走高度距离差的直线 #include<原创 2021-05-02 17:30:19 · 124 阅读 · 0 评论 -
B-Battle Royale
给一个大圆,只能在大圆范围内行走。 再在大圆内部给一个小圆,不能从小圆上行走。 指定了出发点和目的地s t,问从s到t的最短路径长度。 很显然如果线段与圆不相交,直接走过去就行。 线段如果与圆相交,则先沿着点到圆的切线走到圆上,再在圆上走过一段弧,最后相切走到目的地。 关键点:判断线段是否与圆相交 通过画图可以发现,如果相交,则能找到两个相切三角形。 两个相切三角形,圆心那个顶点的角相加应小于s与t到圆心连线的夹角。 所以只需要将大角与两个三角形的角比较即可。 不要忘了顺带存一下二者的差(也就是中间圆弧对原创 2021-05-02 00:21:59 · 112 阅读 · 0 评论