1. 题目链接
Kickstart Round B 2020 D. Wandering Robot
2. 题目描述
3. 解题思路
枚举最开始接触被挖空四边形的上边界和左边界的前一步的概率。
然后当点 $(x,y)$ 不在四边形的下边界和右边界时,从点 $(1, 1)$ 到点 $(x, y)$ 的概率 $p_{x,y}$ 为
$$
\begin{align}
p_{x,y} &= \left(\frac{1}{2}\right)^{x+y-2}C_{x+y-2}^{x-1} \\
&= \frac{(x+y-2)!}{(x-1)!(y-1)!}\left(\frac{1}{2}\right)^{x+y-2}
\end{align}
$$
对于这种极大数乘以极小数的形式,可以通过先取对数函数,再通过指数函数还原,防止精度上溢和精度下溢。即
$$
\begin{align}
\log p_{x,y} &= \log[(x+y-2)!]-\log[(x-1)!]-\log[(y-1)!]-(x+y-2)\log2 \\
p_{x,y} &= \exp(\log p_{x,y})
\end{align}
$$
对于点$(x,y)$ 在四边形的下边界和右边界时,因为下边界上的点只能向右移动,右边届上的点只能向下移动,需要特殊处理一下,可以用递推求解。
复杂度 $\mathcal O(\min{W, H})$
4. 参考代码
1 |
|