每个线段被选到概率为$1/2$,求所有线段被选到的交的长度的平方的期望。
公式化的离散化线段变成左开右闭
然后考虑每个区间的贡献,$(x1+x2)\times (x1+x2)=x1(x1+x2)+x2(x1+x2)$
所以需要计算所有其他可行区间的总和。
线段需要包含$x_i$,则维护下左端点在$[0,i+1]$-右端点$[0,i+1]$这些线段即可。
如果一个线段被覆盖了$k$次,显然这个线段贡献为$2^k-1$,$-1$即$len_i\times\sum len_j$
用线段树维护区间修改乘,区间和。即可。
代码
1 |
|