博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1019 逆序数
阅读量:7051 次
发布时间:2019-06-28

本文共 1143 字,大约阅读时间需要 3 分钟。

 

基准时间限制:1 秒 空间限制:131072 KB 分值: 0 
 收藏
 关注
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。
 
如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4。给出一个整数序列,求该序列的逆序数。
Input
第1行:N,N为序列的长度(n <= 50000)第2 - N + 1行:序列中的元素(0 <= A[i] <= 10^9)
Output
输出逆序数
Input示例
42431
Output示例
4
相关问题
逆序排列 
80
 

略是费解.....本以为和poj上的一样,可是代码还是重写啦.....

归并思想:http://blog.csdn.net/morewindows/article/details/6678165

 

代码:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 using namespace std;14 15 const int N=500000+10;16 17 int a[N],tep[N],ans;18 19 void mor_sort(int l,int r)20 {21 int i,j,k,m;22 m=(l+r)/2;23 i=l;24 k=l;25 j=m+1;26 while(i<=m && j<=r){27 if(a[i]>a[j]){28 tep[k++]=a[j++];29 ans+=m-i+1;30 }31 else{32 tep[k++]=a[i++];33 }34 }35 while(i<=m)36 tep[k++]=a[i++];37 while(j<=r)38 tep[k++]=a[j++];39 for(int i=l; i<=r; i++){40 a[i]=tep[i];41 }42 }43 44 void solve(int l,int r)45 {46 int m;47 m=(l+r)/2;48 if(l

 

转载于:https://www.cnblogs.com/wangmengmeng/p/5432635.html

你可能感兴趣的文章
H5上传图片并使用canvas制作海报
查看>>
springmvc学习笔记
查看>>
LRU算法的设计
查看>>
Java util包中常用的类和方法
查看>>
[R] 之 管理工作空间函数
查看>>
将windows目录共享到linux
查看>>
计算机是如何启动的
查看>>
Python的raw_input语句包含中文,在Windows环境CMD中显示乱码的解决方法
查看>>
HIbernate学习笔记3 之 缓存和 对象的三种状态
查看>>
2015.3.12Arinc424 Tools中SiniArincCls.csParserFile(string sFile)函数正则表达式理解
查看>>
angularjs探秘<三> 控制器controller及angular项目结构
查看>>
列表的常用操作符和BIF
查看>>
opencv里面CV_32FC1家族
查看>>
在VS2015中用C++创建DLL并用C#调用且同时实现对DLL的调试
查看>>
JavaScript操作DOM的那些坑
查看>>
Acdream Path 动态规划
查看>>
手机版开发框架集合
查看>>
Memcache的客户端连接系列(二) Python
查看>>
shell 环境变量
查看>>
安装xampp二三事
查看>>