1 条题解
-
0
#include<bits/stdc++.h> using namespace std; #define int long long const int N=1e6+10; int a[10010][110],b[N],len; struct BIT{ int c[N],n; void add(int x,int k){for(;x<=n;x+=x&-x)c[x]+=k;} int get(int x){int ans=0;for(;x;x-=x&-x)ans+=c[x];return ans;} }tr; signed main() { int n,m;cin>>n>>m;tr.n=n*m; for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>a[i][j],b[++len]=a[i][j]; sort(b+1,b+len+1); for(int i=1;i<=n;i++)for(int j=1;j<=m;j++) a[i][j]=lower_bound(b+1,b+len+1,a[i][j])-b; int ans=0; for(int i=n;i>=1;i--) { for(int j=1;j<=m;j++) ans+=tr.get(a[i][j]-1)+j*(n-i); for(int j=1;j<=m;j++)tr.add(a[i][j],1); } cout<<ans; return 0; }
- 1
信息
- ID
- 9125
- 时间
- 4000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 4
- 已通过
- 2
- 上传者