XSY1528

Posted grice

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XSY1528相关的知识,希望对你有一定的参考价值。

题意

有一条直线,你在(0)位置,你要去(h)位置。
路上有一些不同的位置上有敌人,你要和他战斗,你有(p_i)的概率赢。若你赢,则你可以走过去,否则你会死。还有一些不同的重生点(与敌人位置不同)。你每经过一个重生点有(p_i)的概率插旗。你死亡后你会在最后一个插旗的位置重生,然后该位置的旗子消失。如果没有旗子,则你在(0)位置重生。
求你走到目的地的期望路程。模({10}^9+7)
(nleq 100000)

做法

(f_i)为走过(i)点后不再回到(i)(i)之前到达终点的概率

  • (i+1)为敌人
    (f_i=f_{i+1} imes p_{i+1})
  • (i+1)为重生点

[f_i=f_{i+1}+(1-f_{i+1})*p_{i+1}*f_{i+1}+((1-f_{i+1})*p_{i+1})^2*f_{i+1}+...=frac{f_{i+1}}{(1-p_{i+1}*(1-f_{i+1}))} ]

然后分母可能为(0),所以我们维护(frac{1}{f_i}),令(f_{i}‘=frac{1}{f_i}),则(f_i‘=(1-p_{i+1}) imes f_{i+1}‘+p_{i+1})
然后贡献的话就是一段路径长( imes)经过这一段的期望次数

以上是关于XSY1528的主要内容,如果未能解决你的问题,请参考以下文章

XSY3163

[XSY 1557] task

XSY2271青蛙(栈)

[XSY 1947] Goodness

XSY2759

XSY2667