WikiOI 4163 hzwer与逆序对 (归并排序)
来源:互联网 发布:mcs 51系列单片机 编辑:程序博客网 时间:2024/05/16 10:46
4163 hzwer与逆序对
时间限制: 1 s
空间限制: 256000 KB
题目等级 : 黄金 Gold
题解
题目描述 Description
hzwer在研究逆序对。
对于数列{a},如果有序数对(I,j)满足:j>i,a[i]>a[j],则(i,j)是一对逆序对。
给定一个数列{a},求逆序对个数。
输入数据较大,请使用scanf代替cin读入。
*为防卡评测,时限调低至1s
输入描述 Input Description
第一行一个数n,表示{a}有n个元素。
接下来n个数,描述{a}。
输出描述 Output Description
一个数,表示逆序对个数。
样例输入 Sample Input
5
3 1 5 2 4
样例输出 Sample Output
4
数据范围及提示 Data Size & Hint
对于10%数据,1<=n<=100.
对于20%数据,1<=n<=10000.
对于30%数据,1<=n<=100000.
对于100%数据,1<=n<=1000000,1<=a[i]<=10^8.
注意求逆序对类问题的时候开int64 就可以了
program mys;var i,j,k,m,n:longint;a,b:array[0..2000000]of longint;ans:int64;procedure ms(l,r:longint);var i,j,k,m:longint;begin if l=r then exit;m:=(l+r)div 2;ms(l,m); ms(m+1,r);i:=l; j:=m+1; k:=l;while (i<=m)and(j<=r) do begin if a[i]>a[j] then begin ans:=ans+m-i+1; b[k]:=a[j]; inc(k); inc(j);endelse begin b[k]:=a[i]; inc(k); inc(i);end;end;while i<=m do begin b[k]:=a[i]; inc(i); inc(k);end;while j<=r dobegin b[k]:=a[j]; inc(j); inc(k);end;for i:=l to r do a[i]:=b[i];end;begin readln(n);for i:=1 to n do read(a[i]);ans:=0;ms(1,n);writeln(ans);end.
0 0
- WikiOI 4163 hzwer与逆序对 (归并排序)
- 归并排序与逆序对
- 归并排序与逆序对
- 逆序对 (归并排序)
- 20160325 Codevs 2924 挑战数独,2806 红与黑,4163 hzwer与逆序对
- 归并排序与逆序对问题
- 归并排序与逆序对的个数
- 【codevs4163】 hzwer与逆序对(树状数组+离散化)
- 逆序对 归并排序
- 归并排序 & 逆序对
- 归并排序--逆序对
- 笔记1--逆序对(归并排序)
- POJ 2299 逆序对(归并排序)
- 数组中的逆序对(归并排序)
- 求逆序数对(归并排序)
- 求逆序对(归并排序)
- 归并排序(逆序对的解决)
- 归并排序&归并排序求逆序对
- 保存图片
- VS2015 微软出了3个大版本对比说明
- 内连接、外链接、自然连接、全连接
- 欢迎使用CSDN-markdown编辑器
- Webservice请求以及个人简单的封装分享
- WikiOI 4163 hzwer与逆序对 (归并排序)
- 读书笔记《编写高质量代码》高质量的HTML
- What are the best resources for learning iOS development?
- 算法-如何判断链表有环
- 杭电acm1020
- HDU 2838 Cow Sorting [树状数组]【数据结构】
- 使用jqueryUI和corethink实现的类似百度的搜索提示
- js正则表达式基本语法
- Canopy算法