分塊 雙倍經驗 蒲公英

2021-10-25 08:50:35 字數 2461 閱讀 2230

蒲公英

求最小眾數

蒲公英掉紫了?

黑色經驗-1

n ≤4

e4,a

i≤1e

9n\le 4e4,a_i\le 1e9

n≤4e4,

ai​≤

1e9,離散化

竟然不帶修,多美好的世界

預處理si,

js_

si,j

​表示第i

ii塊中j

jj的出現次數

p i,

jp_

pi,j

​表示第i

ii塊到第j

jj塊的眾數

那麼[ l,

r]

[l,r]

[l,r

]的眾數為整塊眾數和散裝中數的並集,統計這些數個數即可

用桶統計,pot

[i]≤

2n+1

pot[i]\le 2\sqrt n+1

pot[i]

≤2n​

+1整塊類字首和,o(1

)o(1)

o(1)

;總查詢o(n

)o(\sqrt n)

o(n​)

預處理:

s i,

js_

si,j

​字首和

p i,

jp_

pi,j

​,列舉i,j

i,ji,

j,利用si,

js_

si,j​更新

#include

using

namespace std;

#define in read()

int in

#define pb push_back

const

int n=

1e5+

5,m=

1e3+

5,inf=

2147483647

;int n,sz,lim,m;

int bl[n]

,a[n]

,val[n]

;int s[m]

[n],p[m]

[m];

int pot[n]

;vector<

int>inpot;

void

discretize()

return;}

void

prepare()

if(cnt==s[j]

[val[k]

]-s[i-1]

[val[k]

]&&mode>val[k]

) mode=val[k];}

if(i!=j)

if(cnt==s[j]

[k]-s[i-1]

[k]&&mode>k)

mode=k;

} p[i]

[j]=mode;

}return;}

intquery

(int l,

int r)

int mode=inf,cnt=0;

if(bl[l]

==bl[r])if

(pot[val[i]

]==cnt&&mode>val[i]

) mode=val[i]

; inpot.

pb(val[i]);

}return mode;

}else

if(pot[val[i]

]==cnt&&mode>val[i]

) mode=val[i]

; inpot.

pb(val[i]);

}for

(int i=r;bl[i]

==bl[r]

;--i)

if(pot[val[i]

]==cnt&&mode>val[i]

) mode=val[i]

; inpot.

pb(val[i]);

}if(bl[r]

==bl[l]+1

)return mode;

int mone=p[bl[l]+1

][bl[r]-1

];if(pot[mone]

)return mode;

pot[mone]

+=s[bl[r]-1

][mone]

-s[bl[l]

][mone];if

(pot[mone]

>cnt)

if(pot[mone]

==cnt&&monemode=mone;

inpot.

pb(mone)

;return mode;}}

intmain()

return0;

}

蒲公英 分塊

在鄉下的小路旁種著許多蒲公英,而我們的問題正是與這些蒲公英有關。為了簡化起見,我們把所有的蒲公英看成乙個長度為 n 的序列a1,a2,an,其中ai為乙個正整數,表示第 i 棵蒲公英的種類編號。而每次詢問乙個區間 l,r 你需要回答區間裡出現次數最多的是哪種蒲公英,如果有若干種蒲公英出現次數相同,則...

分塊 蒲公英

include include include include define maxn 40005 using namespace std int rd return x partition section int a maxn blk maxn sizb int tmplwb maxn 離散化的輔...

Violet 蒲公英 分塊

題解 講道理,關於區間眾數問題應該第乙個就想到分塊,可毒瘤出題人說是線段樹.qaq 考慮查詢的區間 l,r 第一種情況,我們可以考字首和以及遞推來進行預處理,查詢的時候直接呼叫即可。第二種情況,我們開乙個桶,將 2 個端點所在不完整塊進行統計,再用乙個 vector 加上中間完整整塊對這些顏色的貢獻...