唯一让我不会的就是怎么求圆的周长并QAAQ...
然后发现好神!我们可以将圆弧变成$[0, 2 \pi ]$的直线!
然后一定要注意!起点是$(1, 0)$(单位圆)
首先学了余弦定理...
在三角形ABC中
$$cos A=\frac{|AB|^2+|AC|^2-|BC|^2}{2|AB| |AC|}$$
证明很简单...
$$
\begin{align}
|{BC}|^2 & = \vec{BC} \cdot \vec{BC} \\
& = (\vec{AC}-\vec{AB}) \cdot (\vec{AC}-\vec{AB}) \\
& = | \vec{AC} |^2 + | \vec{AB} |^2 - 2|AC| |AB|cos A \\
\end{align}
$$
移项一下就是:
$$cos A=\frac{|AB|^2+|AC|^2-|BC|^2}{2|AB| |AC|}$$
一开始看了题解后想了一下就写了,求圆的交点..交点的极角...然后离散到的是$[0, \pi ]$的直线...然后喜闻乐见的悲剧了...
一定要知道!极角虽然是算出来了!但是同一个位置可能有两种角啊....为嘛我当时脑残...${\alpha + 2k \pi}$啊....
所以要区分一下..当极角<0时,先加上$2\pi$,然后如果原来极角小的比原来极角大的角要大了,说明它要分成两段来计算,即$[0, r]$, $[l, 2\pi ]$
然后将线段排序贪心取即可..(其实可以直接差分啊QAQ我是sb...
#include #include #include #include #include #include #include #include #include
Description
有n个圆盘从天而降,后面落下的可以盖住前面的。求最后形成的封闭区域的周长。看下面这副图, 所有的红色线条的总长度即为所求.
Input
Output
Sample Input
Sample Output
HINT
Source