傳送門
輸入樣例:
62 3 4 5 6 1
輸出樣例:
5思路:利用歸併排序的思維統計逆序對的數量,可分為三種情況。
**實現:
#include
using
namespace std;
typedef
long
long ll;
const
int maxn=
1e6+5;
int n;
int q[maxn]
,tmp[maxn]
;ll merge_sort
(int l,
int r)
}//掃尾
while
(i <= mid) tmp[k ++
]= q[i ++];
while
(j <= r) tmp[k ++
]= q[j ++];
//歸還
for(
int i = l, j =
0; i <= r; i ++
, j ++
) q[i]
= tmp[j]
;return res;
}int
main()
C 逆序對的數量(歸併排序)
給定乙個長度為n的整數數列,請你計算數列中的逆序對的數量。逆序對的定義如下 對於數列的第 i 個和第 j 個元素,如果滿足 i j 且 a i a j 則其為乙個逆序對 否則不是。輸入格式 第一行包含整數n,表示數列的長度。第二行包含 n 個整數,表示整個數列。輸出格式 輸出乙個整數,表示逆序對的個...
逆序對的數量 歸併排序模擬
題目鏈結 給定乙個長度為n的整數數列,請你計算數列中的逆序對的數量。逆序對的定義如下 對於數列的第 i 個和第 j 個元素,如果滿足 i j 且 a i a j 則其為乙個逆序對 否則不是。第一行包含整數n,表示數列的長度。第二行包含 n 個整數,表示整個數列。輸出乙個整數,表示逆序對的個數。資料範...
逆序對 (歸併排序)
逆序對的nlogn方法,改進後的歸併排序 給定排列p,求排列的逆序對數量。p的長度 100000。要求o nlogn 定義歸併排序過程merge l,r merge l,r merge l,mid merge mid 1,r count l,mid,mid 1,r 只需要考慮左右兩段之間造成的逆序對...