A1-2017级算法上机第一次练习赛 H 模式寻对

概念回顾

逆序对:数列a[0],a[1],a[2]…中的任意两个数a[i],a[j]

 

如果i<j, 并且a[i]>a[j],

 

那么我们就说这两个数构成了一个逆序对。

 

逆序数:一个数列中逆序对的总数。

题目描述

输入一个正整数n,随后给出一个长度为n的整数序列 a[0],a[1],a[2],...,a[n-1] ,再给定多组数组下标范围,求给定序列的逆序数。

输入

多组测试数据(不超过10),以EOF结尾。

每组测试数据第一行为数组长度n,正整数,代表数组长度,数据范围为0<n<=10000

第二行为n个整数,为数组an,保证数组中每个数在int范围内。

第三行为一个整数t,代表t次查询,0<t<=1000

接下来t行,每行两个数xy,代表数组下标区间,保证0<=x<=y<=n-1

输出

对于每次查询,输出一行,每行一个数,代表所求逆序数。

具体参见样例。

输入样例

5
4 8 4 0 0
3
0 4
2 4
0 2

输出样例

7
2
1

提示

使用时间复杂度为O(n2)O(n2) 的算法会超时。

联系下归并排序~

思路

posted @ 2018-12-26 23:37  zzer  阅读(101)  评论(0编辑  收藏  举报