题解分享
题解分享简介
逆序对期望(结果填空) - 题解
```
#include <bits/stdc++.h>
#define int long long
using namespace std;
typedef pair<int,int> pii;
double a[60];
double ans,sum;
double check()
{
double tmp=0;
for(int i=1;i<=51;i++)
{
for(int j=i+1;j<=51;j++)
{
if(a[i]>a[j]) tmp++;
}
}
return tmp;
}
void solve()
{
for(int i=1;i<=51;i++) a[i]=i;
for(int i=1;i<=51;i++)
{
for(int j=i+1;j<=51;j++)
{
if(i!=j)
{
swap(a[i],a[j]);
for(int k=1;k<=51;k++)
{
for(int l=k+1;l<=51;l++)
{
if(l!=k)
{
sum++;
swap(a[k],a[l]);
ans+=check();
swap(a[k],a[l]);
}
}
}
swap(a[i],a[j]);
}
}
}
printf("%.2lf %.2lf %.2lf",ans,sum,ans/sum);
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
t=1;
// cin>>t;
while(t--)
{
solve();
}
return 0;
}
```
查看全文
0
0
0
7



