首页 > 代码库 > BZOJ4902【CTSC2017】游戏

BZOJ4902【CTSC2017】游戏

设当前已知条件$X_i=C_i$为事件$A_i$

答案为$\sum\limits_{i=1}^{n}P(X_i=1|A_1,...,A_k)$

设$A_t<X_i<=A_t+1$

$P(X_i=1|A_1,...,A_k)$

$=\frac{P(X_i=1,A_1,...,A_k)}{P(A_1,...,A_k)}$

$P(A_1,...,A_k)=P(A_1,...,A_{k-1})*P(A_k|A_1,...,A_{k-1})$

因为$A_k$事件只需要$A_{k-1}$

所以$P(A_k|A_1,...,A_k)=P(A_k|A_{k-1})$

所以i的贡献为$\frac{P(X_i=1|A_t)*P(A_{t+1}|X_i=1)}{P(A_{t+1}|A_t)}$

每段区间贡献为$\frac{\sum\limits_{i=A_t+1}^{A_{t+1}}P(X_i=1|A_t)*P(A_{t+1}|X_i=1)}{P(A_{t+1}|A_t)}$

线段树分别维护分子和分母 

每次操作相当于添加区间或者删除区间

BZOJ4902【CTSC2017】游戏