[hdu6595]Everything Is Generated In Equal Probability

计算一对逆序对的贡献,即在n个数期望要删多少步才能删掉其中的两个数,设f(n)表示此时的期望,则有方程$f[n]=3/4+(\sum_{i=2}^{n}f[i]\cdot c(n-2,i-2))/2^n$,手算(打表)得到f[i]=4/3(代入成立),因此$ans=\sum_{i=1}^{n}(i-1)i/3=1/3(n(n+1)(2n+1)/6-n(n+1)/2)=(n-1)(n+1)/9$

1 #include<bits/stdc++.h>
2 using namespace std;
3 int n;
4 int main(){
5     while (scanf("%d",&n)!=EOF)printf("%d\n",443664157LL*(n-1)*(n+1)%998244353);
6 }
View Code
原文地址:https://www.cnblogs.com/PYWBKTDA/p/11260472.html