分段打表.
考虑 $3$ 个位置 $i<j<k$ 能形成三元环,需要满足
- $p_j>\max(p_i,p_k)$ ,且区间 $(i,j),(j,k)$ (如果有) 中的数都 $>p_j$ .
或
- $p_j<\min(p_i,p_k)$ ,且区间 $(i,j),(j,k)$ (如果有) 中的数都 $<p_j$ .
两种情况是对称的,只需要算第一种情况的贡献,最后将答案乘上 $2$ .
考虑给出一个排列 $p $ ,某个位置 $j$ 能产生 $1$ 的贡献,当且仅当 $p_j$ 既不是前缀最小值,也不是后缀最小值.
这个概率为 $1-\frac{1}{j}-\frac{1}{n-j+1}+\frac{1}{n}$ .
即所有的减去它是前缀最小值的概率,减去它是后缀最小值的概率,加上同时是最小值的概率.
于是得到答案为
$$
\begin{aligned}
ans&=2\cdot\sum_{i=1}^n (1-\frac{1}{i}-\frac{1}{n-i+1}+\frac{1}{n}) \\
&=2\cdot(n+1-2\cdot \sum_{i=1}^n \frac{1}{i})
\end{aligned}
$$
只需要快速求出 $\sum_{i=1}^n \frac 1 i$ ,分段打表即可.
1 | //%std |