題目描述
貓貓 tom 和小老鼠 jerry 最近又較量上了,但是畢竟都是成年人,他們已經不喜歡再玩那種你追我趕的遊戲,現在他們喜歡玩統計。
最近,tom 老貓查閱到乙個人類稱之為「逆序對」的東西,這東西是這樣定義的:對於給定的一段正整數序列,逆序對就是序列中 ai>aja_i>a_jai>aj 且 iupdate:資料已加強。
輸入格式
第一行,乙個數 nnn,表示序列中有 nnn個數。
第二行 nnn 個數,表示給定的序列。序列中每個數字不超過 10910^9109。
輸出格式
輸出序列中逆序對的數目。
輸入輸出樣例
輸入 #1
65 4 2 6 3 1
輸出 #1
說明/提示
對於 25%25%25% 的資料,n≤2500n \leq 2500n≤2500
對於 50%50%50% 的資料,n≤4×104n \leq 4 \times 10^4n≤4×104。
對於所有資料,n≤5×105n \leq 5 \times 10^5n≤5×105
請使用較快的輸入輸出
應該不會 o(n2)o(n^2)o(n2) 過 50 萬吧 by chen_zhe
#include
#include
#include
#include
using
namespace std;
typedef
long
long ll;
const
int maxn =
5e5+10;
int a[maxn]
;int b[maxn]
;int c[maxn]
;int d[maxn]
;ll n, ans;
void
discrete
(int
*s)}
void
merge_sort
(int l,
int r)
while
(i <= mid) d[k++
]= c[i++];
while
(j <= r) d[k++
]= c[j++];
for(
int i = l; i <= r; i++
) c[i]
= d[i];}
intmain()
P1908 逆序對(歸併排序)
p1908 逆序對 歸併排序 感覺歸併排序和二叉樹神似,歸併排序還是用的是插入排序的原理 歸併排序的時間複雜度見 o nlogn include includeusing namespace std define maxn 0x3333333 int a maxn rrr maxn ans 0,n ...
洛谷 P1908 逆序對(遞迴,歸併排序)
題目 標籤 遞迴 歸併排序 資料量很大,普通的比較很容易超時。題意是比較找出 a ia i ai a ja j aj 且 i j 的有序對,因此只需比較a ia i ai 和後面的數即可,所以可以用歸併排序,在合併的時候比較。注意 記錄逆序對的數目ans要用long long 型,雖然資料量n在in...
洛谷P1908 逆序對 歸併排序 樹狀陣列
題目描述description 貓貓tom和小老鼠jerry最近又較量上了,但是畢竟都是成年人,他們已經不喜歡再玩那種你追我趕的遊戲,現在他們喜歡玩統計。最近,tom老貓查閱到乙個人類稱之為 逆序對 的東西,這東西是這樣定義的 對於給定的一段正整數序列,逆序對就是序列中ai aj且i輸入輸出格式in...