bzoj3787 Gty的文藝妹子序列

2021-07-10 20:04:54 字數 2059 閱讀 2815

我們回憶bzoj3289的做法,可以使用莫隊演算法,加上線段樹進行茲瓷in,out,query。

我們回憶經典分塊做法。

預處理ans[i,j]表示第i塊到第j塊的答案,sum[i,j]表示前i塊元素j的個數,然後只需要再弄個樹狀陣列就可以搞了。

現在我們要茲瓷修改,那我們照著原來的思路改一下。

ans[i,j]表示在第i塊取乙個元素並在第j塊取乙個元素組成的逆序對個數。

那麼每次修改操作會涉及到根號個值發生改變,詢問操作時需要對第二維進行區間查詢。因此第二維用樹狀陣列維護。

sum[i,j]表示前i塊元素j的個數,那麼修改操作也只會改變根號個值,詢問操作需要對第二維進行區間查詢,因此第二維用樹狀陣列維護。

num[i]表示第i塊內逆序對個數,修改操作暴力重算。

因此就可以了。

#include

#include

#include

#include

#define fo(i,a,b) for(i=a;i<=b;i++)

#define fd(i,a,b) for(i=a;i>=b;i--)

using namespace std;

const int maxn=50000+10,maxc=250+10;

int ans[maxc][maxc],num[maxc];

int sum[maxc][maxn],tree[maxn];

int belong[maxn],a[maxn],sta[maxn];

int i,j,k,l,r,s,t,n,m,now,top,c;

bool czy;

int lowbit(int

x)void change(int k,int t)

}int query(int k)

return t;

}void change2(int id,int k,int t)

}int query2(int id,int k)

return t;

}void change3(int id,int k,int t)

}int query3(int id,int k)

return t;

}int

read()

returnx;}

void write(int

x) while (top)

putchar('\n');

}int main()

fo(j,(i-1)*c+1,i*c) change(a[j],-1);

}fo(i,1,belong[n])

fo(j,1,min(i*c,n)) change3(i,a[j],1);

fo(i,1,belong[n])

fo(j,(i-1)*c+1,min(n,i*c)) change(a[j],-1);

}m=read();

while (m--)

fo(i,j,k) change(a[i],-1);

//write(now);

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

continue;

}fo(i,l+1,r-1)

fo(i,j,l*c)

fo(i,(r-1)*c+1,k)

fo(i,j,l*c) change(a[i],-1);

fo(i,(r-1)*c+1,k) change(a[i],-1);

//write(now);

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

}else

fo(i,1,belong[j]-1)

fo(i,belong[j],belong[n])

a[j]=k;

num[belong[j]]=0;

fo(i,(belong[j]-1)*c+1,min(belong[j]*c,n))

fo(i,(belong[j]-1)*c+1,min(belong[j]*c,n)) change(a[i],-1);}}

//printf("\n%d\n",clock());

}

BZOJ3787 Gty的文藝妹子序列

將序列分成 sqrt 塊,預處理出每兩塊之間的逆序對數,以及ap i 表示前i塊內數字出現次數的樹狀陣列 預處理 o n sqrt log n 修改時,ap i 可以在 o sqrt log n 複雜度內完成修改,然後考慮修改的位置對答案的貢獻,可以發現相當於某一行 某一列都加上乙個數,對於行列各開...

bzoj3720 Gty的妹子樹

我們可以樹上分塊,詳見我部落格中雜文下的根號演算法題庫 然後每個塊維護降序,對於整一塊在子樹內的就可以二分,其餘部分暴力。include include include include define fo i,a,b for i a i b i using namespace std const i...

bzoj3744 Gty的妹子序列

time limit 20 sec memory limit 128 mb submit 967 solved 293 submit status discuss 我早已習慣你不在身邊,人間四月天 寂寞斷了弦。回望身後藍天,跟再見說再見 某天,蒟蒻autumn發現了從 gty的妹子樹 bzoj372...