萌新刚学树状数组,求助
  • 板块P1908 逆序对
  • 楼主L_S_
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/5/1 22:09
  • 上次更新2024/5/2 10:39:09
查看原帖
萌新刚学树状数组,求助
706302
L_S_楼主2024/5/1 22:09

35分调不出来

#include<bits/stdc++.h>
#define lowbit(x) x&-x
using namespace std;
const int N=500005;
int c[N],n;
struct l{
	int val,xh;
}a[N];
int ans;
void add(int x,int k)
{
    for(;x<=n;x+=lowbit(x)) c[x]+=k;
}
int query(int x)
{
    int sum=0;
    for(;x>0;x-=lowbit(x)) sum+=c[x];
    return sum;
}
bool cmp(l x,l y)
{
    return x.val>y.val;
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i].val;
		a[i].xh=i;	
	}
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++)
	{
		add(a[i].xh,1);
		ans+=query(a[i].xh-1);
	}
	cout<<ans;
	return 0;
}
2024/5/1 22:09
加载中...