HDU 1394 最小逆序數

2021-06-12 02:35:44 字數 620 閱讀 3251

#include using namespace std;

#define lson l, m , rt << 1

#define rson m+1, r, rt << 1 | 1

const int maxn = 5555;

int sum[maxn<<2];

void pushup(int rt)

void build(int l, int r, int rt)

void update(int p, int l, int r, int rt)

int m = (l +r) >> 1;

if(p <= m) update(p, lson);

else update(p, rson);

pushup(rt);

}int query(int l, int r, int l, int r, int rt)

int x[maxn];

int main()

int ret = sum;

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

printf("%d\n", ret);

} return 0;

}

hdu 1394 求逆序數

首先建立空樹,將 a i 逐個插入 計算乙個序列n排列的最小逆序數 首先用線段樹算出出事序列的逆序數,然後找規律推出排列的最小逆序數。include include include include include include include include include include inc...

HDU1394 求逆序數

hdu1394minimum inversion number 逆序數 a i 後面比它小的數的個數即為a i 的逆序數,題目要求的是序列的逆序數,求和即可 題意 乙個由0.n 1組成的序列,每次可以把隊首的元素移到隊尾,求形成的n個序列中最小逆序數 思路 乙個序列的逆序數可以用線段樹,或者暴力法求...

hdu1394 線段樹求最小逆序數

hdu 1394 用線段樹求逆序數,例如要求x的逆序數隻需要訪問 x 1,n 段有多少個數,就是x的逆序數。還有就是求最小逆序數的時候有個巧妙的想法,當把x放入陣列的後面,此時的逆序數應該為x沒放入最後面之前的逆序總數加上 n x 再減去 x 1 sum sum n x i x i 1 線段樹 in...