题解:AT_jsc2019_qual_b Kleene Inversion
dulinfan2023 · · 题解
思路:
因为共有
- 在不同的
A 序列中。 - 在相同的
A 序列中。
第
第
Code:
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define il inline
int n,a[2005],k,s,ss;
const int mod=1e9+7;
signed main(){
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[j]>a[i])s++,s%=mod;
}
}
int kk=k*(k-1)/2;
kk%=mod;
s*=kk;
s%=mod;
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(a[j]<a[i])ss++;
}
}
// cout<<s<<" "<<kk<<" "<<ss<<" "<<k<<'\n';
cout<<(s+ss*k%mod)%mod;
}
易如反掌