项目和啥软比赛都要dll了。
D. Chocolate
分类讨论一下,发现只有1*1的时候先手会输
J. Roulette
一开始读错题了,后来发现 输...输赢
为一轮总是赢1块。
由 $2^r-1\geq n$ 可知当前有 $n$ 元最多输 $\log_2{n+1}$ 次,所以要连着赢 $m$ 轮,概率为
$$\prod_{x=n}^{x=n+m}(1-\frac{1}{2^{\log_2{x+1}}})$$
统一考虑所有 $\log_2{x+1}$ 相同的 $x$,复杂度就从 $O(N)$ 降到了 $O(logN)$
令概率为 $\frac{d}{dx}$,则最终求的 $a\times dx\equiv d(mod\ 998244353)$,
只要在每次更新 $d$ 的时候乘到 $a$ 上,更新 $dx$ 的时候乘对应的逆元到 $a$ 上即可。
逆元用费马小定理求一下即可。
code
|