1019 逆序数
来源:互联网 发布:c语言顺序表的初始化 编辑:程序博客网 时间:2024/06/18 06:56
基准时间限制: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示例
4
2
4
3
1
Output示例
4
#include<iostream>using namespace std;int num[50005];int temp[50005];int ans=0;void mersort(int l,int r){ int i,j,k,m; m=(l+r)/2; i=l; j=m+1; k=l; while(i<=m&&j<=r) { if (num[i]>num[j]) { temp[k++]=num[j++]; ans+=m-i+1; } else { temp[k++]=num[i++]; } } while(i<=m) temp[k++]=num[i++]; while(j<=r) temp[k++]=num[j++]; for(int i=l;i<=r;i++) num[i]=temp[i];}void mer(int l,int r){ int m=(l+r)/2; if (l<r) { mer(l,m); mer(m+1,r); mersort(l,r); }}int main(){ int n; cin>>n; for(int i=1;i<=n;i++) cin>>num[i]; mer(1,n); cout<<ans; return 0;}
阅读全文
1 0
- 1019 逆序数
- 1019 逆序数
- 1019 逆序数
- 1019 逆序数
- 51nod 1019 逆序数 归并排序求逆序数
- 51nod 1019 逆序数
- 51nod 1019 逆序数
- [51nod]1019 逆序数
- 51nod 1019 逆序数
- 51nod 1019 逆序数
- 51nod 1019 逆序数
- 51nod 1019 逆序数
- 51nod 1019逆序数
- 51_nod 1019 逆序数
- 51Nod--1019 逆序数
- 51Nod 1019 逆序数
- 51Nod-1019-逆序数
- 51Nod 1019 逆序数
- android 跑马灯重复抖动的解决方法
- [hadoop]常用压缩格式在Hadoop中的应用(spark)
- 查询昨天,今天,明天等的mysql语句
- C语言指针小结
- 1070. 结绳(25) PAT乙级真题
- 1019 逆序数
- MySQL忽略顺序的正则模糊匹配
- 【学习笔记】设计模式-MVC模式
- VTK学习-VTK基本数据结构
- 《科研有方——科研需要“想好”再“做”》笔记 Chapter4:科研工具
- codeforces628DMagic Numbers
- 传智播客168期 JavaEE就业班 含ERP项目
- (轉載)API Demos 导入指南
- PyCharm 管理解释器及第三方模块、包