1311 求逆序對

2021-10-02 06:49:13 字數 915 閱讀 1361

給定乙個序列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 #include #define a 100000+5

using namespace std;

int a[a],b[a];

long long sum=0; //注意

void msort(int left,int right);

int main()

msort(1,n);

cout<=right) return ;

int mid=(left+right)/2;

msort(left,mid);

msort(mid+1,right);

int i=left,j=mid+1,k=left;

while(i<=mid&&j<=right)

//因為相當於a[i]陣列中進入b陣列的個數

else b[k++]=a[i++];

}while(i<=mid)

b[k++]=a[i++];

while(j<=right)

b[k++]=a[j++];

for(i=left;i<=right;i++)

a[i]=b[i];

}#endif

1311 例2 5 求逆序對

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

1311 例2 5 求逆序對

題目描述 給定乙個序列a1,a2,ana1,a2,an,如果存在iajai aj,那麼我們稱之為逆序對,求逆序對的數目。輸入 第一行為nn,表示序列長度,接下來的nn行,第i 1i 1行表示序列中的第ii個數。輸出 所有逆序對總數。輸入樣例 43 232 輸出樣例 3 提示 n 105,ai 105...

歸併求逆序對

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