我們回憶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...