對於序列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個元素,你的任務是在每...