POJ 2299 Ultra-QuickSort(树状数组求逆序数)
来源:互联网 发布:微课制作软件下载 编辑:程序博客网 时间:2024/04/30 00:31
http://poj.org/problem?id=2299
用树状数组求逆序数和用线段树求逆序数方法类似。
输入9 1 0 5 4,那么C[i]树状数组的建立是在,
下标 0 1 2 3 4 5 6 7 8 9
数组 1 1 0 0 1 1 0 0 0 1。
因此二者都需要离散化。
然后大概思路就是边更新边求值。
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <set>#include <vector>#include <map>#include <queue>#include <stack>#include <algorithm>using namespace std;typedef long long LL;const int N = 500000 + 100;long long a[N],b[N];long long n;long long tr[N];long long lowbit(long long x){ return x & (-x);}void update(long long pos,long long val){ while(pos<=n) { tr[pos] += val; pos += lowbit(pos); } return;}long long query(long long x){ long long sum = 0; while(x) { sum += tr[x]; x -= lowbit(x); } return sum;}long long solve(){ long long res = 0; for(long long i = n;i>=1;i--) { long long x = lower_bound(b+1,b+1+n,a[i])-(b+1) + 1; res += query(x-1); update(x,1); } return res;}int main(){ while(~scanf("%lld",&n) && n) { memset(tr,0,sizeof(tr)); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); for(long long i=1;i<=n;i++) scanf("%lld",&a[i]),b[i] = a[i]; sort(b+1,b+1+n); printf("%lld\n",solve()); } return 0;}
0 0
- poj 2299 Ultra-QuickSort(树状数组 / 求逆序数)
- POJ 2299 Ultra-QuickSort(树状数组求逆序数)
- POJ 2299-Ultra-QuickSort(树状数组求逆序数)
- poj 2299 Ultra-QuickSort(求逆序数,树状数组)
- poj 2299 Ultra-QuickSort 求逆序数 树状数组解法
- Ultra-QuickSort poj 2299--树状数组求逆序数
- poj 2299 Ultra-QuickSort 树状数组求逆序数
- poj 2299 Ultra-QuickSort 树状数组求逆序数
- POJ 2299 Ultra-QuickSort 【树状数组求逆序数】
- poj 2299 Ultra-QuickSort(树状数组求逆序数)
- POJ 2299 Ultra-QuickSort(逆序数 树状数组)
- POJ 2299 Ultra-QuickSort 【归并排序求逆序数 OR 树状数组求逆序数】
- POJ 2299 Ultra-QuickSort(树状数组入门) 求逆序数
- POJ 2299 Ultra-QuickSort (树状数组求逆序数+离散化)
- poj 2299 Ultra-QuickSort(树状数组求逆序数+离散化)
- poj 2299 Ultra-QuickSort(树状数组求逆序数+离散化)
- poj 2299 Ultra-QuickSort(树状数组求逆序数+离散化)
- POJ 2299 Ultra-QuickSort (树状数组求逆序数 || 线段树 +离散化)
- 如何设置 zend studio 默认编码为UTF8?
- 关于tableViewCell 的重用若干问题
- ios之"performSelector may cause a leak because its selector is unknown"警告原因及其解决办法
- 电流环详解
- 【读书笔记】HTML5移动Web开发指南 --- 移动Web界面样式
- POJ 2299 Ultra-QuickSort(树状数组求逆序数)
- 关于C#对EXCEL的一些简单操作
- vm manager failed to contact configuration server
- Spring注解详解
- ios TableView那些事(三十 三)静态TableView隐藏其中一个cell
- 利用SQL生成xml示例
- 为什么要对测试过程进行详细记录?
- mysql 禁用和启用外键
- UIPageControl和UIScrollView的联合使用