51nod1019 逆序數 分治 歸併

2021-08-22 05:00:11 字數 645 閱讀 7882

逆序數

在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。

如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序數是4。給出乙個整數序列,求該序列的逆序數。

input

第1行:n,n為序列的長度(n <= 50000) 

第2 - n + 1行:序列中的元素(0 <= aii <= 10^9)

output

輸出逆序數

sample input

424

31

sample output

4
思路:

歸併排序的變形

**:#include

#define ll long long

using namespace std;

const ll maxn = (int)5e4 + 10;

ll a[maxn],temp[maxn];

ll solve(ll l,ll r)

}for (ll i = 0;i <= r - l;i ++)

a[l + i] = temp[i];

return ans;

}int main()

51Nod 1019 逆序數 分治

51nod 1019 逆序數 分治法 如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序數是4。給出乙個整數序列,求該序列的逆序數。收起第1行 n,n為序列的長...

逆序數 51nod 1019 歸併 分治

在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序數是4。給出乙個整數序列,求該序列的逆序數。input 第1行 n,n為序列的長度 n 5000...

51nod 1019 逆序數(逆序數 離散化)

在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序數是4。給出乙個整數序列,求該序列的逆序數。input 第1行 n,n為序列的長度 n 5000...