POJ 2299 再水一发数状数组求逆序数
来源:互联网 发布:毕业去向地图制作软件 编辑:程序博客网 时间:2024/06/05 09:52
这道题用 map 来离散化又T了。。想起来了有一次 CF 怕直接开数组过大使用 map 结果T了的悲剧故事。。。
能用数组 hash 的坚决不用 map
#include<iostream>#include<stdio.h>#include<algorithm>#include<string.h>#include<vector>#include<map>using namespace std;#define ll long long ll bit[1000000];#define P pair<ll,ll>#define fst first#define sec secondll n;void add(ll x,ll i){while(i<=n){bit[i]+=x;i+=i&(-i);}}ll sum(ll i){ll ans=0;while(i>0){ans+=bit[i];i-=i&(-i);}return ans;}P num[1000000];ll tnum[1000000];int main(){freopen("acm.in","r",stdin);while(scanf("%lld",&n)!=EOF&&n!=0){memset(bit,0,sizeof(bit));memset(tnum,0,sizeof(tnum));for(int i=1;i<=n;i++){scanf("%lld",&num[i].fst);num[i].sec=i;}sort(num+1,num+1+n);for(int i=1;i<=n;i++)tnum[num[i].sec]=i;long long ans=0;for(int i=1;i<=n;i++){int index=tnum[i];ans+=sum(index-1);add(1,index);}cout<<n*(n-1)/2-ans<<endl;}return 0;}
0 0
- POJ 2299 再水一发数状数组求逆序数
- poj 2299树状数组求逆序数
- 树状数组 求逆序数 poj 2299
- 树状数组求逆序数--poj 2299
- poj 2299树状数组求逆序数
- poj 2299 求逆序数
- Poj 2299:求逆序数
- poj 2299 求逆序数
- POJ 2299 Ultra-QuickSort 【归并排序求逆序数 OR 树状数组求逆序数】
- POJ 3067 树状数组求逆序数
- POJ 2299 离散化+树状数组求逆序数
- poj 2299 Ultra-QuickSort(求逆序数,树状数组)
- poj 2299 求逆序数 树状数组入门
- poj 2299 Ultra-QuickSort 求逆序数 树状数组解法
- Ultra-QuickSort poj 2299--树状数组求逆序数
- POJ 2299 树状数组求逆序数+离散化
- poj 2299 离散化+树状数组求逆序数
- poj 2299(离散化+树状数组求逆序数)
- ls命令详解
- CentOS下svn迁移备份的三种方法
- 21-Linux-系统启动详解
- 2014.2.4
- 浙大PAT 1015题 1015. Reversible Primes
- POJ 2299 再水一发数状数组求逆序数
- CSS——HACK
- Python系列视频教程: Django【13讲】第三讲 模板变量的使用
- 【备战蓝桥杯】USACO--> calfflac 奶牛回文
- Longest Palindromic Substring
- 【POJ】【题目分类】
- mypager 控件分页
- android selector color button 背景色
- CUGB图论专场:J - Transfer water(最小树形图)