BZOJ3295 動態逆序對(線段樹,樹狀陣列)

2021-08-14 03:26:01 字數 1120 閱讀 6506

對於序列a,它的逆序對數定義為滿足i

輸入第一行包含兩個整數n和m,即初始元素的個數和刪除的元素個數。以下n行每行包含乙個1到n之間的正整數,即初始排列。以下m行每行乙個正整數,依次為每次刪除的元素。

輸出包含m行,依次為刪除每個元素之前,逆序對的個數。

5 4顯然可以cdq分治做(我等下就寫)

這題神似dynamic ranking

其實,有些人說這個叫做帶修改的主席樹

可是,我怎麼看都覺得這是線段樹動態開點呀。。。

無所謂了

智商不夠資料結構來補就好啦

空間大概是nl

og2 的????

玄學空間

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define max 150000

inline

int read()

struct node

t[max<<6];

int tot,rt[max],sum;

long

long ans;

int n,m;

int c[max],a[max],b[max];

int lowbit(int x)

void add(int x,int w)

int getsum(int x)

void modify(int &now,int l,int r,int pos,int w)

int l,r;

int query(int now,int l,int r)

int main()

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

for(int x=i;x<=n;x+=lowbit(x))

modify(rt[x],1,n,a[i],1);

while(m--)

return

0;}

bzoj3295 動態逆序對

portal bzoj3295 雖然說這個可能原本是一道愉快的樹套樹但是 看到 按照某個順序依次刪除 這樣的字眼,比較容易聯想到乙個套路 反過來看,變成按照某個順序依次插入 那麼對於乙個詢問,刪掉它之前 化完了之後就是插入它之後 的所會影響到的逆序對數可以分為兩種 一種是在它前面但是比它大的,一種是...

BZOJ3295 動態逆序對

問題描述 對於序列a,它的逆序對數定義為滿足i j,且ai aj的數對 i,j 的個數。給1到n的乙個排列,按照某種順序依次刪除m個元素,你的任務是在每次刪除乙個元素之前統計整個序列的逆序對數。輸入格式 輸入第一行包含兩個整數n和m,即初始元素的個數和刪除的元素個數。以下n行每行包含乙個1到n之間的...

BZOJ3295 動態逆序對(樹狀陣列套線段樹)

time limit 10 sec memory limit 128 mb submit 6058 solved 2117 submit status discuss 對於序列a,它的逆序對數定義為滿足i aj 的數對 i,j 的個數。給1到n的乙個排列,按照某種順序依次刪除m個元素,你的任務是在每...