nyoj- 117 求逆序数 && hdu-sort it----> 树状数组
2014-04-05 08:14
405 查看
nyoj-117(离散化)
hdu-sort it
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; long long a[1000009]; int n; struct ni { int v,w; }b[1000009]; int cmp(ni q,ni p) { if(q.v!=p.v) return q.v<p.v; return q.w<p.w; } int lowbit(int x) { return x&(-x); } int sum(int pos) { int res=0; while(pos>0) { res+=a[pos]; pos-=lowbit(pos); } return res; } void plus(int pos) { while(pos<=n) { a[pos]++; pos+=lowbit(pos); } } int main() { int m,i; scanf("%d",&m); while(m--) { memset(a,0,sizeof(a)); scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&b[i].v); b[i].w=i; } sort(b+1,b+n+1,cmp); long long k=0; for(i=1;i<=n;i++) { plus(b[i].w); k+=i-sum(b[i].w); } printf("%lld\n",k); } }
hdu-sort it
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int a[1005]; int n; int lowbit(int x) { return x&(-x); } void add(int pos,int num) { while(pos <= n) { a[pos] += num; pos += lowbit(pos); } } int Get_sum(int pos) { int res = 0; while(pos > 0) { res += a[pos]; pos -= lowbit(pos); } return res; } int main() { int x; while(~scanf("%d",&n)) { memset(a,0,sizeof(a)); int sum = 0; for(int i = 1; i <= n; i++) { scanf("%d",&x); add(x,1); sum += i - Get_sum(x); } printf("%d\n",sum); } }
相关文章推荐
- HDU 2689 Sort it 求逆序数,树状数组实现
- HDU 2689 Sort it(树状数组)(类似逆序数,同样不需要离散化)
- HDU2689 Sort it【树状数组】【逆序数】
- HDU 2689 Sort it 归并排序求逆序对
- HDU2689-树状数组&逆序数|分治-Sort it
- HDU 1754 I Hate It (线段树 & 树状数组)
- hdu 1754 I Hate It ----->线段树(区间最值,单点更新)
- NYOJ-117求逆序数【树状数组】
- HDU 2689 Sort it 树状数组
- POJ_2299_Ultra-QuickSort & NYOJ_117_求逆序数
- hdu-1556 Color the ball && nyoj -123 士兵杀敌(四)----------》树状数组
- NYOJ-117/atcoder ARC 75-E - Meaningful Mean 求逆序数。 树状数组存模板!(原模板已更正)
- poj2299 Ultra-QuickSort&&NYOJ117 求逆序数 (树状数组求逆序对数+离散化)+(归并排序)
- nyoj 117 求逆序数 【归并排序&&逆序数反转次数】
- HDU 2689 Sort it(逆序对-BIT)
- HDU&&NYoj N!
- hdu 1394 Minimum Inversion Number (裸树状数组 求逆序数 && 归并排序求逆序数)
- 实战c++中的vector系列--使用sort算法对vector进行排序(对vector<string>排序、使用稳定的排序std::stable_sort())
- Atitit.web 视频播放器classid clsid 大总结quicktime,vlc 1. Classid的用处。用来指定播放器 1 2. <object> 标签用于包含对象,比如图像、音
- NYOJ - sort it