刚学,想法类似归并,请问哪里错了
  • 板块P1908 逆序对
  • 楼主Hayya
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/9/21 10:40
  • 上次更新2024/9/21 12:18:53
查看原帖
刚学,想法类似归并,请问哪里错了
1413040
Hayya楼主2024/9/21 10:40
#include<bits/stdc++.h>
using namespace std;
int nxd(int a[],int l,int r)
{
    long long count;
	int mid=(l+r)/2,index=r;
	if(l>=r) return 0;
	count=count+nxd(a,l,mid)+nxd(a,mid+1,r);
	sort(a+l,a+mid+1,greater<int>());
	sort(a+mid+1,a+r+1,greater<int>());
	for(int i=mid;i>=l;i--)
	{
		for(int j=index;j>=mid+1;j--)
		{
	
		while(a[i]>a[j])
		{
			index--;
			count+=i-l+1;
		}
		
		}
	}
	return count;
}
int main()
{
	long long s;int b[500000];
	cin>>s;
	for(int k=0;k<s;k++)
	cin>>b[k];
	cout<<nxd(b,0,s-1);
	return 0; 
}
2024/9/21 10:40
加载中...