離散數學 求排列的逆序數

2021-08-20 05:25:55 字數 1069 閱讀 3021

問題描述

3 2 5 1 4 中,(3, 2), (3, 1), (2, 1), (5, 1), (5, 4)是其5個逆序。

輸入

第一行是乙個整數n,表示該排列有n個數(n <= 100000)。

第二行是n個不同的正整數,之間以空格隔開,表示該排列。

輸出

輸出該排列的逆序數。

樣例輸入

3 2 5 1 4

樣例輸出

限時一秒

思路:利用二分歸併排序演算法(分治)

答案來自網路:平台得分66.6666,三組測試資料,最後一組反饋超時

#include

#include

#include

using namespace std;

int n,a[

100009

],tmp[

100009];

long sum;

void

merge_sort

(int

,int);

void

merge_nx

(int

,int

,int);

intmain()

void

merge_sort

(int l,

int r)

}void

merge_nx

(int l,

int m,

int r)

else

}while

(z<=m)

//將剩下的直接放入

while

(y<=r)

for(

int i=l;i<=r;i++

)//l---r

a[i]

=tmp[i]

;//將排好的數返回

}

求排列的逆序數

考慮1,2,n n 100000 的排列i1,i2,in,如果其中存在j,k,滿足 j k 且 ij ik,那麼就稱 ij,ik 是這個排列的乙個逆序。乙個排列含有逆序的個數稱為這個排列的逆序數。例如排列 263451 含有8個逆序 2,1 6,3 6,4 6,5 6,1 3,1 4,1 5,1 因...

求排列的逆序數

openjudge011 題目 乙個排列含有逆序的個數稱為這個排列的逆序數。例如排列 263451 含有8個逆序 2,1 6,3 6,4 6,5 6,1 3,1 4,1 5,1 因此該排列的逆序數就是8。顯然,由1,2,n 構成的所有n 個排列中,最小的逆序數是0,對應的排列就是1,2,n 最大的逆...

求排列的逆序數

求排列的逆序數 標題 1020 求排列的逆序數 檢視提交統計提問 總時間限制 1000ms 記憶體限制 65536kb 描述在internet上的搜尋引擎經常需要對資訊進行比較,比如可以通過某個人對一些事物的排名來估計他 或她 對各種不同資訊的興趣,從而實現個性化的服務。對於不同的排名結果可以用逆序...