全TLE,求各路大佬!
  • 板块P1908 逆序对
  • 楼主izkun6
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/9/22 17:23
  • 上次更新2024/9/22 19:33:26
查看原帖
全TLE,求各路大佬!
768490
izkun6楼主2024/9/22 17:23
#include<bits/stdc++.h>
using namespace std;
const int N=500100;
int c[N];
int n,m;
int lowbit(int x){
	return x&(-x);
}
void add(int x,int d){
	while(x<=n){
		c[x]+=d;
		x+=lowbit(x);
	}
}
long long sum(int x){
	long long ans=0;
	while(x>0){
		ans+=c[x];
		x-=lowbit(x);
	}
	return ans;
}
int in[N];
map<int,int>mp;
int tot;
int a[N];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>in[i];
		a[i]=in[i];
	}
	sort(in+1,in+1+n);
	for(int i=1;i<=n;i++){
		if(mp[in[i]]==0){
			mp[in[i]]=++tot;
		}
		long long ans=0;
		for(int i=1;i<=n;i++){
		    int x=mp[a[i]];
		    ans+=sum(tot)-sum(x);
		    add(x,1);
		}
		cout<<ans;
	}
}
2024/9/22 17:23
加载中...