逆序对:数列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行,每行两个数x,y,代表数组下标区间,保证0<=x<=y<=n-1
对于每次查询,输出一行,每行一个数,代表所求逆序数。
具体参见样例。
5
4 8 4 0 0
3
0 4
2 4
0 2
7
2
1
使用时间复杂度为 $O(n^{2})$ 的算法会超时。
联系下归并排序~