洛谷P1908 逆序對 歸併排序 樹狀陣列

2022-08-03 14:36:15 字數 1033 閱讀 7220

題目描述description

貓貓tom和小老鼠jerry最近又較量上了,但是畢竟都是成年人,他們已經不喜歡再玩那種你追我趕的遊戲,現在他們喜歡玩統計。最近,tom老貓查閱到乙個人類稱之為「逆序對」的東西,這東西是這樣定義的:對於給定的一段正整數序列,逆序對就是序列中ai>aj且i輸入輸出格式input/output

輸入格式:

第一行,乙個數n,表示序列中有n個數。

第二行n個數,表示給定的序列。

輸出格式:

給定序列中逆序對的數目。

輸入輸出樣例sample input/output

樣例測試點#1

輸入樣例:

65 4 2 6 3 1

輸出樣例:

11說明description

對於50%的資料,n≤2500

對於100%的資料,n≤40000。

分析:傳統方法是樹狀陣列,但是蒟蒻打起來比較困難,於是直接上歸併排序。在合併的時候記錄一下逆序對個數就好了。

#include#include

#include

#include

#include

#include

#include

using

namespace

std;

int n,a[40001],h[40001

],ans;

intread() //讀入優化。

returna;}

void merge_sort(int l,int

r)

else

for (int i=l;i<=r;i++) a[i]=h[i];

}int

main()

洛谷 P1908 逆序對(遞迴,歸併排序)

題目 標籤 遞迴 歸併排序 資料量很大,普通的比較很容易超時。題意是比較找出 a ia i ai a ja j aj 且 i j 的有序對,因此只需比較a ia i ai 和後面的數即可,所以可以用歸併排序,在合併的時候比較。注意 記錄逆序對的數目ans要用long long 型,雖然資料量n在in...

P1908 逆序對(歸併排序)

p1908 逆序對 歸併排序 感覺歸併排序和二叉樹神似,歸併排序還是用的是插入排序的原理 歸併排序的時間複雜度見 o nlogn include includeusing namespace std define maxn 0x3333333 int a maxn rrr maxn ans 0,n ...

P1908 逆序對 歸併排序

題目描述 貓貓 tom 和小老鼠 jerry 最近又較量上了,但是畢竟都是成年人,他們已經不喜歡再玩那種你追我趕的遊戲,現在他們喜歡玩統計。最近,tom 老貓查閱到乙個人類稱之為 逆序對 的東西,這東西是這樣定義的 對於給定的一段正整數序列,逆序對就是序列中 ai aja i a jai aj 且 ...