Description
Solution
基础分很好搞,关键是连击分 设表示的期望值 显然有 而也很好求 于是能够写成的形式,同理一直搞下去就能把这段区间所有的都写成的形式 显然直接只用维护系数就行了 那么用线段树来维护一段区间的和(在这里就是和的的系数,与),以及中的系数(用来合并)。合并时与时(),只要把 往回带就可以了
Code
1 |
|
debug
119行,忘记加模
基础分很好搞,关键是连击分 设fi表示combo(i)的期望值 显然有Ans(combo)=B×∑i=lrpi×(fi−1+1) 而fi也很好求 fi=p×(fi−1+1)+(1−pi)×fi−1×t 于是fi能够写成x×fi+y的形式,同理一直搞下去就能把[l,r]这段区间所有的fi都写成x×fl−1+y的形式 显然直接只用维护系数就行了 那么用线段树来维护一段区间的和(在这里就是和的fl−1的系数,与y),以及fr中的系数(用来合并)。合并时[l1,r1]与[l2,r2]时(l2=r1+1),只要把fl2−1 往回带就可以了
1 | #include<bits/stdc++.h> |
119行,忘记加mod模mod