莫隊 樹狀陣列 Mato的檔案管理

2021-09-25 03:11:45 字數 1108 閱讀 7600

對於區間詢問,我們可以想到莫隊,而逆序對則需要用樹狀陣列來維護。

因此我們便可以動態維護區間的逆序對。例如:

然後用莫隊和樹狀陣列維護即可。

**如下:

#include

using

namespace std;

const

int n =

2000000

;int n, m, ans, t, cnt =0;

int a[n]

, ans[n]

, b[n]

;map<

int,

int>mp;

struct node

} q[n]

;inline

intread

(void

)while

(c>=

'0'&& c<=

'9') s = s*

10+c-

48,c =

getchar()

;return s*w;

}struct tree

;#define lowbit(i) (i & -i)

void

add(

int x,

int v)

intask

(int x)

} tree;

void

init

(void

)int

main

(void

)sort

(q+1

,q+m+1)

;int l =

1, r =0;

ans =0;

for(

int i=

1;i<=m;

++i)

for(

int i=

1;i<=m;

++i)

printf

("%d\n"

, ans[i]);

return0;

}

BZOJ 3289 Mato的檔案管理 莫隊演算法

詢問區間內逆序對的個數。區間轉移是o logn 的,加上莫隊總複雜度 o nn logn include include include using namespace std const int n 50005 int block n a n c n n unsigned x n t n stru...

莫隊 樹狀陣列 AHOI 作業

3236 ahoi2013 作業 time limit 100 sec memory limit 512 mb submit 1716 solved 690 submit status discuss description input output sample input 3 41 2 2 1 ...

莫隊 樹狀陣列 AHOI 作業

3236 ahoi2013 作業 time limit 100 sec memory limit 512 mb submit 1716 solved 690 submit status discuss description input output sample input 3 41 2 2 1 ...