BZOJ3809 Gty的二逼妹子序列

2022-05-20 15:56:14 字數 1082 閱讀 8870

題目大意:

給定乙個長度為$n(n\leq10^5)$的數列,$m(m\leq10^6)$組詢問,每次求出$a_$中,權值$\in[a,b]$的權值的種類數。

思路:莫隊處理詢問,分塊維護每個區間內的權值種類數。時間複雜度$o(m\sqrt n)$。如果用樹狀陣列是$o(m\sqrt n\log n)$的,會tle。

1 #include2 #include3 #include4 #include5 inline int

getint()

12const

int n=100001,m=1000000;13

intv[n],ans[m],cnt[n],sum[n],n,block,bel[n],begin[n],end[n];

14struct

query

19};

20query q[m];

21 inline void ins(const

int &x)

24 inline void del(const

int &x)

27 inline int query(const

int &l,const

int &r)

33for(register int i=l;bel[i]==bel[l];i++) ret+=(bool

)cnt[i];

34for(register int i=r;bel[i]==bel[r];i--) ret+=(bool

)cnt[i];

35for(register int i=bel[l]+1;isum[i];

36return

ret;37}

38int

main()

47for(register int i=0;i) ;50}

51 std::sort(&q[0],&q[m]);

52for(register int i=0,l=1,r=0;i)

59for(register int i=0;i"

%d\n

",ans[i]);

60return0;

61 }

BZOJ3809 Gty的二逼妹子序列

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

bzoj3809 Gty的二逼妹子序列

先說一種很顯然的做法,大體框架肯定是莫隊,然後每來一種顏色就處理下,如果是新出現的就在bit當中把這個位置 1,如果這種顏色消失了就在bit中對應位置 1。這樣的時間複雜度是o nn log 2n 我交了一次發現超時了。那怎麼辦?觀察下,我們查詢和修改的複雜度都是o logn 但是顯然查詢的次數要遠...

bzoj 3809 Gty的二逼妹子序列

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