题意
从长度为 $n(\le 5e5)$ 的数组中等概率的取出一个最长上升子序列, 求每个数被选中的概率
题解
$bg[i]$ 是以 $a[i]$ 为起点的 $LIS$ 的长度, $g[i]$ 是以 $a[i]$ 为起点的 $LIS$ 的数量
$en[i]$ 是以 $a[i]$ 为终点的 $LIS$ 的长度, $h[i]$ 是以 $a[i]$ 为终点的 $LIS$ 的数量
$\text{len_a}[i]$ 是以 $i$ 为起点或终点的 $LIS$ 的长度, $\text{cnt_a}[i]$ 是以 $i$ 为起点或终点的 $LIS$ 的数量
$\text{len_h}[i],\text{cnt_h}[i] $ 是树状数组的辅助数组
代码
1 |
|