逆序队专题

逆序对的定义是,在一个数组中,对于下标 ( i ) 和 ( j )(其中 ( i < j )),如果 ( a[i] > a[j] ),则称 ((a[i], a[j])) 为数组的一个逆序对。

换句话说,逆序对就是在数组中前面的元素大于后面的元素的情况。例如,对于数组 ([3, 1, 2]),其中的逆序对有 ((3, 1)) 和 ((3, 2)),所以该数组有 2 个逆序对。

如何利用树状数组求逆序对

我们来看一个题目在这里插入图片描述
我们首先需要离散化数据,然后先处理值大的数据,值相同的位置大的先处理

#include<bits/stdc++.h>
using namespace std;

#define int long long
const int N = 500005;

struct node{
	int va,pos;
	bool operator<(node ot){
		if(va>ot.va) return true;
		else if(va==ot.va ) return pos>ot.pos;
		return false;
	}
}b[N];
int a[N];
int n;

int lowbit(int x){
	return x & (-x);
}

void add(int x,int p){
	for(int i=x;i<=n;i+=lowbit(i)){
		a[i] += p;
	}
}

int find(int x){
	if(x==0) return 0;
	return a[x]+find(x-lowbit(x));
}

signed main(){
	cin >> n;
	for(int i=1;i<=n;i++){
		scanf("%d",&b[i].va );
		b[i].pos = i;
	}
	sort(b+1,b+1+n);
	int ans = 0;
	for(int i=1;i<=n;i++){
		ans += find(b[i].pos-1);
		add(b[i].pos,1);
	}
	cout << ans;
	return 0;
}

相关推荐

  1. 2024-06-11 16:50:03       28 阅读
  2. PTA-字符串

    2024-06-11 16:50:03       20 阅读
  3. 字符串

    2024-06-11 16:50:03       16 阅读
  4. 数组(以字符串为例)

    2024-06-11 16:50:03       16 阅读
  5. 句子(机试)

    2024-06-11 16:50:03       31 阅读
  6. P1908

    2024-06-11 16:50:03       23 阅读
  7. 练习-字符串统计

    2024-06-11 16:50:03       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-11 16:50:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-11 16:50:03       20 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-11 16:50:03       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-11 16:50:03       20 阅读

热门阅读

  1. 十种排序方法

    2024-06-11 16:50:03       8 阅读
  2. C#类库打包支持多个版本的类库

    2024-06-11 16:50:03       8 阅读
  3. 嵌入式软件测试相关分析

    2024-06-11 16:50:03       11 阅读
  4. 探索HTML5新Input类型:重塑表单交互的未来

    2024-06-11 16:50:03       9 阅读
  5. What are ADS-B OUT and ADS-B IN

    2024-06-11 16:50:03       11 阅读
  6. 纳秒级网络库【二】技术选型

    2024-06-11 16:50:03       8 阅读
  7. requests库的常用方法

    2024-06-11 16:50:03       10 阅读
  8. STM32面试常问问题汇总

    2024-06-11 16:50:03       9 阅读
  9. MyQL 事务隔离级别解析

    2024-06-11 16:50:03       10 阅读