Tokitsukaze and Strange Inequality 注:用数组计数一下会更快 本人用log了
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <math.h>
#include <bitset>
#include <algorithm>
#include <climits>
using namespace std;
#define ll long long
const int N=5e3+10;
const int mod= 998244353;
int t,n,p[N];
int main(){
scanf("%d",&t);
while(t--){
scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&p[i]);
ll res=0;
for(int i=2;i<=n;i++){
vector<int> v;for(int j=1;j<i;j++) v.push_back(p[j]);
sort(v.begin(),v.end());
ll res2=0;for(int j=i+2;j<=n;j++) res2+=(p[j]<p[i]);
for(int j=i+1;j<n;j++){
if(j!=i+1) res2-=(p[j]<p[i]);
ll res1=lower_bound(v.begin(),v.end(),p[j])-v.begin();
res+=res1*res2;
}
}
cout<<res<<endl;
}
}
|