全RE,求调
  • 板块P1908 逆序对
  • 楼主lyx0813
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/10 18:55
  • 上次更新2024/9/10 21:28:45
查看原帖
全RE,求调
1090042
lyx0813楼主2024/9/10 18:55
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[500100],c[500100];
int lowbit(int x){
	return x&(-x);
}
void add(int x){
	for(int i=x;i<=n;i+=lowbit(i)){
		c[i]+=1;
	}
}
long long sum(int x){
	long long ans=0;
	for(int i=x;i;i-=lowbit(i)){
		ans+=c[i];
	}
	return ans;
}
long long ans2;
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
    	scanf("%d",&a[i]);
    	ans2+=sum(n)-sum(a[i]);
    	add(a[i]);
	} 
	printf("%lld",ans2);
	return 0;
}
2024/9/10 18:55
加载中...