NYOJ 117 求逆序数 【树状数组】或【归并排序】
来源:互联网 发布:centos ftp 编辑:程序博客网 时间:2024/05/16 06:40
原题链接:点击打开链接
【一】 利用 树状数组 离散化 之后求逆序数:
代码:
#include<stdio.h>#include<string.h>#include<algorithm>#define N 1000000long long c[N+1],aaa[N+1];struct sb{int x;int y;}yi[N+1];bool cmp(struct sb t1,struct sb t2){ if(t1.x!=t2.x) return t1.x<t2.x; else return t1.y<t2.y;}int lowbit (int a){return a&(-a);}void add(int a){while(a<N+1){c[a]+=1;a+=lowbit(a);}}int Sum(int a){int SUM=0;while(a>0){SUM+=c[a];a-=lowbit(a);}return SUM;}int main(){int a,b,n,m;scanf("%d",&n);while(n--){long long sum=0;memset(c,0,sizeof(c));scanf("%d",&m);for(a=1;a<=m;a++){scanf("%lld",&yi[a].x);yi[a].y=a;} std::sort(yi+1,yi+m+1,cmp);//离散化。。。for(a=1;a<=m;a++)aaa[yi[a].y]=a; for(a=1;a<=m;a++){ add(aaa[a]);sum+=(a-1-Sum(aaa[a]-1));}printf("%lld\n",sum); }}【二】 利用 归并排序 求逆序数:
代码:
#include<stdio.h>#include<string.h>#define max 1000008long long count;long long a[max],t[max];void merge_sort(long long *a, long long x,long long y ,long long *t){if(y-x>1){long long m=x+(y-x)/2;//h划分long long p=x,q=m,i=x;merge_sort(a,x,m,t);//递归求解merge_sort(a,m,y,t);while(p<m||q<y){if(q>=y||(p<m&&a[p]<=a[q]))t[i++]=a[p++];else{t[i++]=a[q++];count+=(m-p);//计数。。}}for(i=x;i<y;i++)a[i]=t[i];}}int main(){ long long n,m; scanf("%lld",&n); while(n--) { scanf("%lld",&m); memset(a,0,sizeof(a)); memset(t,0,sizeof(t)); long long b; count=0; for(b=0;b<m;b++) scanf("%lld",&a[b]); merge_sort(a,0,m,t); printf("%lld\n",count); }}
- NYOJ 117 求逆序数 【树状数组】或【归并排序】
- NYOJ-117 求逆序数(树状数组或归并排序)
- ACM--归并排序&&树状数组--nyoj 117--求逆序数
- nyoj 117 求逆序数【线段树 树状数组 归并排序】
- 归并排序&&树状数组求逆序数
- 归并排序 树状数组 求逆序数
- 南阳117求逆序数(离散化+树状数组或归并排序)
- NYOJ 117 求逆序数【归并排序求逆序数】
- 归并排序求逆序数 NYOJ 117
- NYOJ-117求逆序数【树状数组】
- NYOJ 117 求逆序数 【树状数组】
- nyoj 117 求逆序数【树状数组】
- poj-2299-Ultra-QuickSort-归并排序求逆序数--或树状数组
- 【树状数组or归并排序求逆序数】HDU 1394
- nyoj117求逆序数(离散化+树状数组/归并排序)
- 树状数组(归并排序) 之 求逆序数nyoj117
- 树状数组 和 归并排序 求逆序数
- 归并排序,树状数组,求逆序数 (openjudge 7662)
- Oracle面试题汇总--3
- gdb info
- linux shell 字符比较与数值比较,bash的调试
- Oracle数据库的启动-nomount状态深入解析
- 在ubuntu 11.10下面安装nodejs
- NYOJ 117 求逆序数 【树状数组】或【归并排序】
- 2010年4月25日公务员考试(十二省联考)行测真题及参考答案
- js 做的分页效果
- 随机梯度下降算法
- CVBS全电视信号的一些基本知识 .
- ZOJ_3585 Equivalent Expression 表达式求值
- shell判断字符串是否为空
- 在一定时间内关闭的广告窗口
- Android tp的虚拟按键(virtual key)处理