A: 喜闻乐见的题
题意:
给定两圆,以其中一个圆内为中心作正方形完全在这个圆内的条件,正方形完全在另一个圆的条件概率;
思路:
由条件概率公式P(B|A)=\frac{P(AB)}{P(A)},我们只需要求出P(AB)和P(A)即可;
- 整个多边形与圆面积交为各个三角形与圆面积交的有向和;
E: 麦田怪圈II
题意:
求出内外切于两圆之间的前n个最大圆面积和;
思路:
以两圆切点为反演中心,1为反演半径作反演变换;
两圆化成平行两直线,要求的n个圆直径均为两平行直线的距离,由反演变化距离公式以及圆幂定理,设反演中心I和左(右)手第k个圆圆心连线交点为C,D,那么反演变换前该圆的直径2r[k]=C'D'=\frac{CD}{IC \cdot ID}=\frac{(r_2-r_1)r_1r_2}{k^2(r_2-r_1)^2+r_1r_2},面积总和即为\sum_{k=1}^{n}\pi[k/2][k/2];
注意这里k,n应该要开long long
否则整形的精度将会溢出导致半径为负;
F: 麦田怪圈III
题意:
给定n个圆,判断原点是否在它们的「包围圈」内,所谓「包围圈」是指由它们的本身和两两外公切线所围成最大的凸集;
思路:
不难发现原点到各个圆的两条公切线是问题关键,(当然如果没有的话问题答案即为YES
),对每一条切线的极角排序(无需分象限),如果有相邻的极角之差超过\pi,那么答案便是NO
;
第i个圆的两条切线的极角\theta=atan2(y_i,x_i)\pm asin(\frac{r_i}{\sqrt{x_i^2+y_i^2}});
I: 过马路
题意:
求运动的多边形和动点不相遇的最长持续时间;
思路:
(题解的正确性存疑,因为本人hack过自己的几组边界数据但是提交却出现AC的情况,本人也认为思路不完全正确);
考虑转化运动参考系,将多边形当作惯性系,那么动点x向速度恒为v,y向速度不大于u,如果初始状态多边形的点全部都在射线y=\frac{ux}{v}的一侧,那么动点无需等待全力过马路即可,时间为w/u,否则等待一段时间,这段时间是每个点作方向为(v,u)的「切线」最右侧所代表的时间,换言之,T=max_{1\le i\le n}(\frac{x}{v}-\frac{y}{u}),再全速前进即可;
N:回转数
题意:
求给定点关于给定多边形的回转数;
思路:
为降低时间开销不考虑极角排序做法;
遍历每一条边,判断边uv与点a的相对位置关系;
回转数自增当且仅当
回转数自减当且仅当
S: 兔儿爷(Simple Version)
题意:
判断点是否在三角形的内部;
思路:
本题是T题的n=3 的版本;
T: 兔儿爷(Easy Version)
题意:
判断点是否在多边形的内部(多边形可能会退化,也不一定是凸的);
思路:
本题由两个模板组成;
-
-
二分极角序判断点是否在凸多边形内
- 选取二维偏序最小者为极点
- 三角剖分多边形,二分对角线位置,判断在最大在何处对角线的左侧
- 判断是否在两条对角线夹边内部
-
注意事项:
- 退化情况包括n=1,n=2
- 点在对角线或者一边的延长线上,此时不能算作在多边形的内部;