bzoj3809 Gty的二逼妹子序列

2021-07-30 21:53:35 字數 1016 閱讀 1130

先說一種很顯然的做法,大體框架肯定是莫隊,然後每來一種顏色就處理下,如果是新出現的就在bit當中把這個位置+1,如果這種顏色消失了就在bit中對應位置-1。

這樣的時間複雜度是o(

nn−−

√log

2n)

我交了一次發現超時了。

那怎麼辦?

觀察下,我們查詢和修改的複雜度都是o(

logn

) ,但是顯然查詢的次數要遠遠小於修改次數,因此考慮犧牲查詢的時間使修改變快。

都想到這裡了,顯然接下來就要上分塊了。用權值分塊代替bit,每個塊內記錄出現了多少種顏色,用乙個桶輔助修改,使修改的複雜度降到o(

1),查詢則變成o(

n−−√

) 。

總的時間複雜度o(

nlog

2n+n

n−−√

+mn−

−√)

//莫隊+分塊 

#include

#include

#include

#define maxn 100010

using namespace std;

int cnt[maxn], num[maxn*10], q[maxn*10][4], size, n, m, col[maxn],

ans[maxn*10], pos[maxn], block[maxn];

inline bool cmp(int a, int b)

inline int

read(int

x=0)

void init()

inline void add(int c)

inline void del(int c)

inline int quiry(int l, int r)

void work()

for(i=1;i<=m;i++)printf("%d\n",ans[i]);

}int main()

BZOJ3809 Gty的二逼妹子序列

空間這麼小 然後就莫隊了 不知道三維kd tree能不能過 本來想打bit,結果發現過不了的樣子,因為修改比較多,詢問比較少,所以可以考慮平衡複雜度,用分塊維護 單次修改o 1 詢問o n code include include include include include include in...

bzoj 3809 Gty的二逼妹子序列

autumn和bakser又在研究gty的妹子序列了!但他們遇到了乙個難題。對於一段妹子們,他們想讓你幫忙求出這之內美麗度 a,b 的妹子的美麗度的種類數。為了方便,我們規定妹子們的美麗度全都在 1,n 中。給定乙個長度為n 1 n 100000 的正整數序列s 1 si n 對於m 1 m 100...

BZOJ3809 Gty的二逼妹子序列

bzoj3809 gty的二逼妹子序列 又是一道許可權題。本蒟蒻沒錢氪金。附上洛谷題面 洛谷p4867 gty的二逼妹子序列 autumn和bakser又在研究gty的妹子序列了!但他們遇到了乙個難題。對於一段妹子們,他們想讓你幫忙求出這之內美麗度 in a,b a,b 的妹子的美麗度的種類數。為了...