2018 10 08 NOIP模擬 序列(主席樹)

2021-08-28 19:40:46 字數 1051 閱讀 8145

傳送門

t2防ak題?

其實也不是很難(考試時sb了)。

直接變形一下求出區間長度在[l2

,r2]

[l2,r2]

[l2,r2

]之間,中位數≤l1

−1

\le l1-1

≤l1−

1的區間數,和區間長度在[l2

,r2]

[l2,r2]

[l2,r2

]之間,中位數≤r1

\le r1

≤r1的區間數就行了。

繼續變變形,乙個區間的中位數如果≤

k\le k

≤k。那麼顯然有:區間中≤

k\le k

≤k的數的個數≤

\leq

≤區間中》

k>k

>

k的數的個數。

我們記sma

ll

ismall_i

smalli

​表示1

11$i$中比$k$小的數的個數,$big_i$表示$1$

i

ii中比k

kk大的數的個數。

那麼就有:sma

llr−

smal

l−1≤

bigr

−big

l−

1small_r-smal_\leq big_r-big_

smallr

​−sm

all−

1​≤b

igr​

−big

l−1​

移項後發現:sma

llr−

bigr

≤sma

lll−

1−bi

gl−1

small_r-big_r\leq small_-big_

smallr

​−bi

gr​≤

smal

ll−1

​−bi

gl−1

​然後就可以主席樹做了。

**

NOIP模擬 字串(字尾陣列)

給定兩個字串 s1 和 s2 兩個字串都由 26 個小寫字母中的部分字母構成。現在需要統計 s 2 在 s 1 中出現了的次數。對於 s1 中的每個位置 i 設 st rlen s2 m,若 j 1m s1 i j 1 s 2 j k 最外層中括號為布林表示式 則認為 s2 在 s1 的 i 處出現...

NOIP模擬 字胡串(單調棧)

只剩5分鐘的時候打了乙個三重迴圈。完全沒想到固定左端點減少1個n。被diss了一波。對於乙個區間,如果他合法,那麼一定是有乙個非最大數在二進位制下與最大數有不同的地方,所以對於乙個數,利用單調棧記錄他作為最大數的區間 左右第乙個至少有一位與他不同的地方,利用容斥原理計算一下統計答案即可,複雜度 然後...

NOIP模擬 修路

這題第一眼看上去有些懵逼,還以為是dp。第二眼,哦,這麼裸的最小生成樹,2分鐘打完,拍都沒對,自信100分。最終100分。每條邊的權值減去連個節點的權值,所有的邊做一次最小生成樹就好了。include include include include include define fo i,a,b f...