这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
2020-2021:teams:farmer_john:jjleo:2020北交校赛 [2020/06/05 23:22] jjleo [K] |
2020-2021:teams:farmer_john:jjleo:2020北交校赛 [2020/06/25 23:05] (当前版本) jjleo ↷ 页面2020-2021:teams:farmer_john:2020北交校赛被移动至2020-2021:teams:farmer_john:jjleo:2020北交校赛 |
||
---|---|---|---|
行 42: | 行 42: | ||
* 题意:$n$张地图,每张地图有两种比赛模式,第一种胜率是$p_i$,第二种胜率是$1-q_i$,如果第$i-1$场你赢了,那么第$i$场按照第一种比赛模式进行,否则按照第二种比赛模式进行。每次比赛会选择一个区间按顺序进行比赛,且区间的左端点也就是第一场比赛按照第一种比赛模式进行。$m$次询问某个区间你的胜场期望。$(n, m \le 100\,000)$ | * 题意:$n$张地图,每张地图有两种比赛模式,第一种胜率是$p_i$,第二种胜率是$1-q_i$,如果第$i-1$场你赢了,那么第$i$场按照第一种比赛模式进行,否则按照第二种比赛模式进行。每次比赛会选择一个区间按顺序进行比赛,且区间的左端点也就是第一场比赛按照第一种比赛模式进行。$m$次询问某个区间你的胜场期望。$(n, m \le 100\,000)$ | ||
- | * 题解:线段树维护每个区间的$8$个值,分别为,__区间内第一场比赛__按照**第一种/第二种**比赛模式且__区间内最后一场比赛__**获胜/失败**的期望和概率,分别记为$f_{0/1,0/1},g_{0/1,0/1}$,合并的代码如下。<code cpp>inline void up(int x){ | + | * 题解:线段树维护每个区间的$8$个值,分别为,__区间内第一场比赛__按照**第一种/第二种**比赛模式且__区间内最后一场比赛__**获胜/失败**的**胜场期望**和**概率**,分别记为$f_{0/1,0/1},g_{0/1,0/1}$,合并的代码如下。<code cpp>inline void up(int x){ |
for(register int i = 0;i <= 1;i++){ | for(register int i = 0;i <= 1;i++){ | ||
for(register int j = 0;j <= 1;j++){ | for(register int j = 0;j <= 1;j++){ |