逆序對 離散樹狀陣列

2022-05-01 15:24:14 字數 664 閱讀 5776

求逆序對有三種以上方法:1、離散樹狀陣列,2、線段樹,3、歸併排序

今天做了下洛谷的p1908逆序對;

1、一開始用樹狀陣列,一直re,後來在發現自己一直忽略離散化。

#include #include 

using

namespace

std;

const

int maxn = 400000+5

;typedef

long

long

ll;ll n,hash[maxn],bt[maxn];

struct

node a[maxn];

ll lowbit(ll x)

void

add(ll i,ll b)

}ll qu(ll i)

return

ans;

}bool

cmp(node a,node b)

intmain()

sort(a+1,a+1+n,cmp);

for(int i=1;i<=n;i++)

//離散化結束;

ll sum = 0

;

for(int i=1;i<=n;i++)

cout

return0;

}

樹狀陣列 (離散化 樹狀陣列 求逆序對)

sample test s input 52 3 1 5 4 output 3 題目大意 求逆序對的個數 題目分析 求逆序對有很多方法,比如說用合併排序 分治 樹狀陣列 線段樹,甚至連暴力 氣泡排序 也可以做,但是要注意會不會超時。這裡就講一下樹狀陣列的方法,這一題最有意思的是離散化的方法,這個方法...

樹狀陣列求逆序對及離散化

樹狀陣列求逆序對及離散化 逆序對指的是乙個序列中有兩個數ai和aj,iaj,即它們下標與數值的增減不一致,那麼對於這個問題 求乙個序列中逆序對的個數,該如何解決呢?我最初接觸到的方法是歸併排序,是個很不錯的方法,但是對於向我一樣的蒟蒻 還是有理解難度,而今天講的樹狀陣列解法,至少 理解難度降低了不少...

SGU180(樹狀陣列,逆序對,離散)

inversions time limit per test 0.25 sec.memory limit per test 4096 kb input standard output standard there are n integers 1 n 65537 a1,a2,an 0 ai 10 9...