```#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <queue>
#include <vector>
#include <algorithm>
#define FRE() freopen("in.txt","r",stdin)
#define INF 0x3f3f3f3f

using namespace std;
typedef long long ll;
typedef pair<double,int> P;
const int maxn = ;
int n;
int a[maxn],b[maxn],tree[maxn];

int lowbit(int x)
{
return x & -x;
}
{
while(x <= n)
{
tree[x]++;
x += lowbit(x);
}
}
int getSum(int x)
{
int res = ;
while(x>)
{
res += tree[x];
x -= lowbit(x);
}
return res;
}
int main()
{
scanf("%d",&n);
for(int i = ; i < n; i++)
{
scanf("%d",&a[i]);
b[i] = a[i];
}
memset(tree,,sizeof(tree));
sort(b, b+n);
int len = unique(b, b+n) - b;
for(int i = ; i < n; i++)
{
a[i] = lower_bound(b, b + len, a[i]) - b + ;
}
ll sum = ;
for(int i = ; i < n; i++)
{
sum += i +  - getSum(a[i]);
}
printf("%I64d\n",sum);
return ;
}```

## SGU180 Inversions（树状数组求逆序数）的更多相关文章

1. Codeforces Round #301 (Div. 2) E . Infinite Inversions 树状数组求逆序数

E. Infinite Inversions               ...

2. poj 2299 Ultra-QuickSort（树状数组求逆序数）

链接:http://poj.org/problem?id=2299 题意:给出n个数,求将这n个数从小到大排序,求使用快排的需要交换的次数. 分析:由快排的性质很容易发现,只需要求每个数的逆序数累加起 ...

3. hdu 5147 Sequence II (树状数组 求逆序数)

题目链接 Sequence II Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

4. poj 2299 Ultra-QuickSort（树状数组求逆序数+离散化）

题目链接:http://poj.org/problem?id=2299 Description In this problem, you have to analyze a particular so ...

5. HDU 1394 Minimum Inversion Number ( 树状数组求逆序数 )

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 Minimum Inversion Number                         ...

6. Codeforces645B【树状数组求逆序数】

题意: 给你1-n的序列,然后有k次机会的操作,每一次你可以选择两个数交换. 求一个最大的逆序数. 思路: 感觉就是最后一个和第一个交换,然后往中间逼近,到最终的序列,用树状数组求一下逆序数. #in ...

7. HDU 6318 - Swaps and Inversions - [离散化+树状数组求逆序数][杭电2018多校赛2]

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=6318 Problem Description Long long ago, there was an ...

8. HDU 1394 Minimum Inversion Number（线段树/树状数组求逆序数）

Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

9. hdu 1394 Minimum Inversion Number (裸树状数组 求逆序数 &amp;&amp; 归并排序求逆序数)

题目链接 题意: 给一个n个数的序列a1, a2, ..., an ,这些数的范围是0-n-1, 可以把前面m个数移动到后面去,形成新序列:a1, a2, ..., an-1, an (where m ...

## 随机推荐

1. 邻接表的广度优先遍历(java版)

到 0 的权是 91 到 2 的权是 31 到 3 的权是 61 到 4 的权是 7 2 到 0 的权是 22 到 3 的权是 5 3 到 0 的权是 33 到 4 的权是 1 4 到 2 的权是 2 ...

2. SIP 解析

3. 使用Eclipse构建Maven的SpringMVC项目

一.直接建立Maven项目方法1.建立Maven项目 接下来使用Eclipse的maven构建一个web项目,以构建SpringMVC项目为例: 1.1 选择建立Maven Project 选择Fil ...

4. 使用Vagrant在Windows下部署开发环境

做Web开发少不了要在本地搭建好开发环境,虽然说目前各种脚本都有对应的Windows版,甚至是一键安装包,但很多时候和Windows环境的相性并不是那么好,各麻烦的问题是实际部署的环境通常是Linux ...

5. [Linux]查看本机IP

命令: ~\$ ip addr showor~\$ ipconfig

6. JavaScript引用类型之RegExp类型(正则表达式)

ECMAScript中使用RegExp来支持正则表达式.使用下面类似Perl的语法,就可以创建一个正则表达式. var expression=/pattern/flags; 如上代码: pattern ...

7. this、访问修饰符——Java笔记（五）

this         表示当前对象         谁调用方法谁就是当前对象 用static修饰的代码块里面不能使用this 方法里面有一个和字段同名的局部变量时,不能省略this   this还 ...

8. Micro Templating源码分析

关于模板,写页面的人们其实一直在用,asp.net , jsp , php, nodejs等等都有他的存在,当然那是服务端的模板. 前端模板,作为前端人员肯定是多少有接触的,Handlebars.js ...

9. es6 语法 （Decorator）

修饰器是一个函数,用来修改类的行为(注意:1.函数  2.修改行为  3.对类进行操作) { //修饰器函数定义 target:类本身,name名称,descriptor描述 let readonly ...

10. Builder搭建外置服务器

如何利用HBuilder快速设置外部web服务器来测试移动web     HBuilder 关于HBuilder工具的简介:HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开 ...