1311 例2 5 求逆序對

2021-10-11 09:17:12 字數 670 閱讀 2127

【題目描述】

給定乙個序列a1,a2,…,ana1,a2,…,an,如果存在iajai>aj,那麼我們稱之為逆序對,求逆序對的數目。

【輸入】

第一行為nn,表示序列長度,接下來的nn行,第i+1i+1行表示序列中的第ii個數。

【輸出】

所有逆序對總數。

【輸入樣例】43

232【輸出樣例】

3【提示】

n≤105,ai≤105n≤105,ai≤105。

#include

using

namespace std;

int a[

999999

],b[

999999];

long

long cnt;

void

msort

(int s,

int t)

}while

(i<=mid)

b[k++

]=a[i++];

while

(j<=t)

b[k++

]=a[j++];

for(

int i=s;i<=t;i++

) a[i]

=b[i];}

intmain()

1311 例2 5 求逆序對

1311 例2.5 求逆序對 時間限制 1000 ms 記憶體限制 65536 kb 題目描述 給定乙個序列a1,a2,an,如果存在iaj,那麼我們稱之為逆序對,求逆序對的數目。輸入 第一行為n,表示序列長度,接下來的n行,第n 1行表示序列中的第n個數。輸出 所有逆序對總數。輸入樣例 43 23...

1311 求逆序對

給定乙個序列a1,a2,a n,如果存在i i a j,那麼我們稱之為逆序對,求逆序對的數目。第一行為n,表示序列長度,接下來的n行,第i 1行表示序列中的第i個數。所有逆序對總數。432 32 3 n 105,a i 105 if 1 include include include include...

歸併求逆序對

求這個逆序對只需要在歸併排序的 中加一句即可。感覺自己有點說不清楚,隨手附上別人的詳細解釋,請戳 詳細介紹 include include includeusing namespace std int a 1000000 int b 1000000 int sum 0 void merge int ...