求逆序数

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct node
{int num;int pos;
};
node st[500010];
int reflect[500010];
int a[500010];
int n;
bool cmp(node a,node b)
{return a.num<b.num;
}
int lowbit(int x)
{return x&(-x);
}
int sum(int x)
{int ret=0;while(x>0){ret+=a[x];x-=lowbit(x);}return ret;
}
void add(int x,int d)
{while(x<=n){a[x]+=d;x+=lowbit(x);}
}
int main()
{while(scanf("%d",&n)!=EOF){if(!n) break;memset(a,0,sizeof(a));for(int i=0;i<n;i++){scanf("%d",&st[i].num);st[i].pos=i;}sort(st,st+n,cmp);for(int i=0;i<n;i++){reflect[st[i].pos]=i+1;}long long ans=0;for(int i=0;i<n;i++){int tem=sum(reflect[i]);ans+=i-tem;add(reflect[i],1);}cout<<ans<<endl;}return 0;
}

转载于:https://www.cnblogs.com/vactor/p/4099989.html

poj_2299Ultra-QuickSort,树状数组离散化相关推荐

  1. POJ 2299 Ultra-QuickSort(树状数组+离散化)

    题目大意: 就是说,给你一个序列,然后让你求出这个序列有多少个逆序对,所谓逆序对就是对于这个序列中的元素有a[i]>a[j] 且i<j存在. 其实原题是这样说的,给你一个序列,让你用最少的 ...

  2. hdu_2227_Find the nondecreasing subsequences_树状数组,离散化

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2227 题意:给你一个集合,让你求递增子序列有多少个,和树状数组求逆序对差不多,不过数据比较大,要离散化 ...

  3. HDU 4417 Super Mario(莫队 + 树状数组 + 离散化)

    Super Mario 思路 区间查找问题,容易想到离线莫队,确实这题就是莫队,接下来我们考虑如何维护区间高度值问题. 既然是离线嘛,我们容易想到离散化和他挂钩,想想这题是否需要离散化,高度的最大值是 ...

  4. HDU - 5877 Weak Pair (dfs序+树状数组+离散化)

    VJ地址 题意:给一个有根树给你,计算一下满足下列条件的序列对的数目 (1)u是v的祖先(不能是它自己) (2)a[v]*a[u]<=k 思路:用DFS序分裂每一条链,使链上的点都是当前加入点的 ...

  5. 2017西安交大ACM小学期数据结构 [树状数组 离散化]

    Problem E 发布时间: 2017年6月28日 12:53   最后更新: 2017年6月29日 21:35   时间限制: 1000ms   内存限制: 64M 描述 给定一个长度为n的序列a ...

  6. 2019CCPC湖南全国邀请赛-Chika and Friendly Pairs- 莫队+树状数组+离散化

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6534 思路: 莫队算法,树状数组求和.每个数对应的离散化之后的值需要打表存下来. Code: 1 # ...

  7. Weak Pair HDU - 5877 树状数组+离散化+DFS遍历

    题意 给我们一颗有根有向树 以及每个点得权值a[1]~a[n] 需要我们求出在这颗树种有多少对满足以下两个条件的pair (1)u是v的祖先节点 (2)a[u]*a[v]<= k N<=1 ...

  8. Bzoj 1901: Zju2112 Dynamic Rankings 主席树,可持久,树状数组,离散化

    1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 6321  Solved: 2628 [ ...

  9. 洛谷 P1908 逆序对(树状数组+离散化)

    题目描述 猫猫 TOM 和小老鼠 JERRY 最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计. 最近,TOM 老猫查阅到一个人类称之为"逆序对& ...

  10. HDU 2689 POJ 2299 树状数组 + 离散化

    以前都是直接树状数组裸奔,昨天一个题数据量好大,过不了,没办法只能学离散化,今天A了第一个离散化的题 #include<stdio.h> #include<string.h> ...

最新文章

  1. CentOS Docker安装配置部署Golang web helloworld
  2. [javaweb] servlet-session 会话跟踪技术 与 session保存作用域 (三)
  3. 云钻还在吗 苏宁怎么解除实名认证_快手7天怎么养号,5步简易养号方案送上
  4. 电脑pro,大师屏幕,小米归来!小米笔记本Pro 15 OLED首发评测
  5. 21 CO配置-控制-产品成本控制-成本对象控制-检查制造订单 (PP) 的成本核算变式
  6. 设计模式002:简单工厂模式
  7. tacotron2 注意力机制 self-attention学习
  8. pb数据窗口显示图片_AkShare股票数据A股市净率
  9. 记录平台调用支付中心接口
  10. suse使用ISO文件制作zypper源
  11. 在网页中显示某个目录文件(未成功)
  12. RTP/RTCP/RTSP/SIP/SDP 关系
  13. opencv库函数学习:Rect函数
  14. 华为认证考试方式有哪些?华为认证考试怎么考?
  15. 小程序中如何引用阿里图标
  16. php 7.4连接MySQL
  17. telink BDT 工具使用说明
  18. Invalid interval string, expecting a number followed by one of Mwdhmsy
  19. 细胞周期预测 | 单细胞转录组(scRNA-seq)分析 03
  20. php 抓取搜狗页面,爬虫解决方案之爬取“搜狗引擎”

热门文章

  1. 趣文:如果像招聘程序员那样招聘木匠
  2. c语言中基本数据类型printf()对应格式
  3. cout不明确什么意思_不计免赔险是什么意思?弄不清楚要吃大亏
  4. 【毕设】JAVA+SQL办公自动化系统(源代码+论文+外文翻译)
  5. mysql时间 gt_关于Mysql 5.6 TIMESTAMPDIFFgt;=和gt;的一个问题 - SegmentFault 思否
  6. python实现高精度加法_蓝桥杯-Python-高精度加法
  7. Python中selenium的玩法,小朋友看了都说学会了
  8. 计算机图形直线分析,基本图形分析法:等腰三角形(一)
  9. python des加密文件_python DES3 加密解密
  10. 安徽蚌埠市国家计算机等级考试官网,2019年下半年安徽省蚌埠市全国计算机等级考试费用...