多校noi前集训模拟第十三场

 可以发现,如果对于所有出现过的区间按照 \((2x,2x-1)\) 为一组分层,那么每层出现多少个 \(2x,2x-1\) 是确定的

 首先处理出来 \(F_{l,r}\) 表示去区间 \([l,r]\) 出现的概率

 那么对于每一层单独考虑

 这一层有 \(A\) 个奇数段,\(B\) 个偶数段,我们需要知道每个点停留在两种段的概率

 设 \(dp_{i,j}\) 表示考虑前 \(i\) 个点,还剩 \(j\) 个偶数段的概率

 那么有 \(dp_{i,j}=\frac{2(j+1)}{2(j+1)+A+B-(i-1)}dp_{i-1,j+1}+\frac{A+B-(i-1)}{2j+A+B-(i-1)}dp_{i-1,j}\)

 根据这个 \(dp\) 就可以求出每个点停留在两种段的概率

 然后考虑对于这一层来說所有奇数段,所有偶数段是分别等价的

 所以停留在一个偶数段的概率就是 \(\frac{1}{B}\sum\frac{2(j+1)}{2(j+1)+A+B-(i-1)}dp_{i-1,j+1}\)

 停留在一个奇数段的概率就是 \(\frac{1}{A}\sum\frac{A+B-(i-1)}{2j+A+B-(i-1)}dp_{i-1,j}\)

扫描二维码关注公众号,回复: 11456052 查看本文章

 再乘上之前求出的 \(F\) 就可以得到当前点在每个位置的概率了

猜你喜欢

转载自www.cnblogs.com/mikufun-hzoi-cpp/p/13388864.html