–¨zŒ(˜
†I˘ Æ#
Contents
1 c
2 '(
3 ˜:£
4 –¨zª
4.1 ªP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 :?U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 :,«m˛fl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 –¨z‹GL
5.1 ‹GL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1 \ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.3 o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.4 E, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 –¨z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 «m1kflK
6.1 flK£ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1 flK£ª . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.2 flK†;{ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 ƒ^–¨z†{ . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.1 Xƒ^ªØ1k . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.2 ª$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.3 ˆ?U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.4 k?U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.5 o( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 ’u?U[! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
4
4
4
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
7
7
7
8
8
8
8
9
6.3.1 ¢m!:ª . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 «m1kflKEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5 «m1kflKEXTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
9
6.6 «m1kflKEXTEXTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7 ·»1kflK
11
7.1 flK£ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.1.1 flK£ª . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.1.2 †;{ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.2 ƒ^–¨zª{ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.2.1 ˆ?U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.2.2 k?U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8 l=3
13
8.1 C‰yk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8.1.1 K8£ª . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8.1.2 { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
9 ~K
13
9.1 middle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
10 –¨z†
14
10.1 Treap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.1.1 P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.2 –¨z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.2.1 merge¢y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.2.2 split¢y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
10.2.3 ¢y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
11 ??6
16
11.1 K8¿ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
12
13 ˜
17
17
13.1 k\ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
13.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
13.3 ¿.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
13.4 ƒmœ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
13.5 ¢y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
13.6 ¢y[!flK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2
14 ~K:Almost
21
14.1 K8¿ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
14.2 Œ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
14.3 { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
14.3.1 =z⁄AflK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
14.3.2 {1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
14.3.3 {2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
15 a
23
3
1 c
⁄¢–¨zŒ(,·øŒ¯⁄k{⁄,^§m^
Œ~mm.
ØıŒ(––¨z,’Xª,†,‹GL.
2 '(
'k0–¨zªA^,0–¨z‹GL.
• «m1k˛fl
• ·»1k˛fl
• l=3
• ~K
e5·'›:,0–¨z†A^.
• ??6
• ˜(|–:,\:).
3 ˜:£
• ª &[‹.
• &[‹.
• GŒ| &[‹ƒ^GŒ|5ocM.
• † •‹3'¥0.
• ‹GL •‹3'¥0.
4
4 –¨zª
4.1 ªP
etL«!:.
left(t), right(t)'OL«tmflf.
et·[l, r),@oleft(t)·[l, l+r
f(t)L«3tP„&E,’Xcnt(t)·t¥ŒŒa.
2 ),right(t)·[ l+r
2 , r).
•4ª|–,Uo⁄k{⁄.
a5˜e,g?UU!:kO(log n),›ø:¿ƒ›^
§:,·•8.
4•5˜X¢y–¨zª.
4.2 :?U
˜k•8I·,?U,K⁄k8c{⁄$,
#ª.
duª¢y·48,@o•548wøflK.
˜k˜f!:,@o•I##f!:,§·?UL
,@oUc.
2˜f!:,du§flf¥ı‹k?U,w⁄flf,@
o•Øflf48N^…Œ,flf?U,,c!:,mflf
C,flf?U,Uc!:?U.
5¿‹?U!:,U·?Uf!:yk,zgI#O(log n)(
:.
•·3#!:,vkØ?!:&E?U,{⁄vk´K.
4.3 :,«m˛fl
•Iª@–.
4.4 IP
ª¥k~†;:IP.
4•˜X4–¨zª¢yIP.
•fl:,XJ§¡kIP,•§IPeD.5¿øp•Ø:
?U,ø·vkflK,ˇeDIP,T:·5:d,‹Kc{⁄
.
5¿eDIP,•U?U§flf,•#2!:L«IP
§flf.
5
IPKaq:?U,XJT:CX,#!:L«IP§,˜K
{#:,vCXflfC,CXflfO?U.
5 –¨z‹GL
√
n,@o§
5.1 ‹GL
‹GL,·O(
√
y‹>=
5.1.1 \
n)^LºŒ|.
√
√
n,‹<= 2
n.
•Ø@⁄3‹,3§S\@,E,O(
5.1.2
•Ø@⁄3‹,3§S@,E,O(
5.1.3 o
√
n).
√
n).
zg?1,•£H⁄k‹,XJk‹<
√
¿,XJk‹> 2
n,@o§'⁄ƒ'.
5.1.4 E,
√
N·w⁄kE,·O(
n).
5.2 –¨z
4•˜X–¨z‹GL.·o‹GL{⁄.
•zg?U‹,U#?UL‹#‹.
√
^O(
n)Œ|·L⁄k‹.
?U^#Œ|#‹S.
6 «m1kflK
6.1 flK£
4•5£e†;«m1kflK.
6.1.1 flK£ª
nŒa0, a1, ..., an−1,zg˛flal, al+1, ..., ar¥,1kŒ·ı.
£“k3l2«,k||–?UŒ«O.
6
6.1.2 flK†;{
•5£eø†;flK†;{.
ˆ?U+3:
E,O(A) + O(B) + O(C)L«?nE,O(A),£g˛flE,O(B),mE,
O(C)
• 'Y+ª O(n log n) + O(log3 n) + O(n log n)
• 'Y+'‹ O(n log n) + O(
• y' O(n log n) + O(log n) + O(n log n)
• Uª O(n log n) + O(log2 n) + O(n log n)
n log n log n) + O(n)
√
k?U+3:
E,O(A)+O(B)+O(C)+O(D)L«?nE,O(A),£g˛flE,O(B),?
UE,O(C),mE,O(D)
• 'Y+ª@† O(n log n) + O(log3 n) + O(log2 n) + O(n log n)
• 'Y+'‹ O(n log n) + O(
• Uª@† O(n log n) + O(log2 n) + O(log2 n) + O(n log n)
n log n log n) + O(
n log n) + O(n)
√
√
√
'‹{:·øz‹
n log n,–$E,.
øNu[0,[–gC·L].
–wy'E,'‘D,·ø(E,,ŁE,’p.
6.2 ƒ^–¨z†{
6.2.1 Xƒ^ªØ1k
Ø1k1k·d,B•Ø1k.
ø·†;flK,•bŒ·3[0, n)m,@oØuƪ. z!
:t,^cnt(t)L«!:SŒŒ.
@o•˜c3!:t,Ø!:tS1kŒ. XJtflfSŒŒ≥
k,@oY3flfS,taflf. ˜K{,Y·mflfS1k − cnt(left(t))
!:,tamflf=.
øE,·O(log n).
O\ŒIت?1?U–¢y.
7
6.2.2 ª$
˜(ªa, b,ªa(+/−)bz!:cnt·ØA
a¥!:(+/−) ØAb¥!:.
˜ªaŒc,ªa · cz!:cnt·ØAa¥
!:ƒc.
@oØuªa − b,•ا¢1˛fl¿Iƒ,Ioa, b¥3Ø
A!:=.
Øuªa · c,·n.
n,•˜ª
T =
k
i=1
ai · ci
·kªŒ. @oتT ?1˛fl,IO(k log n)m.
6.2.3 ˆ?U
4•kØ⁄kŒlz,@olz,ai < n.
e5,•^atiL«a0, a1, ..., ai−1øŒV\¡‘ª/⁄ª.
@oati–ˇLati−1?U.
ƒ^–¨zª⁄katiIO(n log n)mm.
@o•˜˛fl«mal, al+1, ..., ar−11kŒ.
5¿•I3ªatr − atlØ1k1.
@oø{E,·O(n log n) + O(log n) + O(n log n)
6.2.4 k?U
duk?U,•ati’J,ˇg?U‹UKO(n)ati.
·•–^GŒ|5oati,uoªcM.
@oati–L«⁄O(log n)ª.
@oatr − atlg,–L«⁄O(log n)ªXŒŒ.
@o–3O(log2 n)mS⁄˛fl,?UI?UGŒ|¥O(log n)
!:,?UE,O(log2 n).
@oø{E,·O(n log n) + O(log2 n) + O(log2 n) + O(n log2 n)
6.2.5 o(
ƒ^–¨zª{mE,ˆkvk?U,·fi{¥‘.
ø{~·un)—,~N·,3OI’m¥Ø•ƒ^.
(•‹‘y'fi†C⁄œbo)
-<¢ˆ·?UmE,,Iƒ^m~Œ‘zUˇLK
8.
8