平面上有若干条直线,保证不平行,不会三线共点。求任选三条直线出来围出的三角形的面积的期望。
$S_{ABC}=\frac{1}{2}(OA\times OB+OB\times OC+ OC\times OA)$
(其中有正有负)
对于每个交点我们可以计算他对三角形的贡献。
假设三角形的交点$B\rightarrow A \rightarrow C$顺时针。这样算出来是正的。
对于一条线$AB$上的点$A$,斜率大的线交$C$,斜率小的$D$,产生贡献总是$OD\times OC$(画图可知)。即边扫描一圈,边计算。极角排序之后就能不重不漏了。
- 通过$ax+bx+c=0$,构造两个点,就可以套直线相交的模版了
- 这里极角排序使用$atan2$,然后保证$age\in [0,pi]$
代码
1 |
|