神奇的计数题。
首先考虑 f(p) 的本质是什么。
f(p)=1≤i<j≤n,pi>pj∑j−i=1≤i<j≤n,pi>pj∑j−1≤i<j≤n,pi>pj∑i=i=1∑nij=1∑i−1[pi<pj]−i=1∑nij=i+1∑n[pi>pj]=i=1∑ni(j=1∑i−1[pi<pj]−j=i+1∑n[pi>pj])
这样,我们就成功的把 j−i 拆成了 i 和 j 分别的贡献。然后,设 g(i)=∑j=1i−1[pi<pj]−∑j=i+1n[pi>pj],则 f(p)=∑i=1ni×g(i)。
g(i)=j=1∑i[pi<pj]−j=i+1∑n[pi≥pj]=i−j=1∑i[pi≥pj]−j=i+1∑n[pi≥pj]=i−j=1∑n[pi≥pj]=i−pi
我们就得出了 f(p)=∑i=1ni(i−pi) 的结论。
然后,我们就只需要求出初始在位置 i 的元素操作 m 次后到达的位置的期望 si,则答案为 (2n+1)m∑i=1ni2−si×pi。
这个东西看着很棘手,怎么办呢?我们考虑继续挖掘性质。
我们考虑一个点 i。通过一次操作把它挪到点 j 的方案数显然是 min(i,n−i+1,j,n−j+1),所以我们可以发现,把 i 挪到 j 的概率和挪到 n−j+1 的概率是一样的。
于是,无论一个点处在何位置,它受到操作影响之后,期望位置就会变为 2n+1。
所以一个点 i 如果没被任何操作包含(概率为 q=(1−n(n+1)2i(n−i+1))m),它的期望位置就是 i;如果它被任意一个操作包含(概率为 1−q),它的期望位置就是 2n+1。把两个综合一下,得到 si=qi+(1−q)2n+1。
每个 si 都可以 O(logm) 算,总时间复杂度为 O(nlogm)。