Untitled
Transcription
Untitled
!"# k $% &' & ( k )* + ,&-. ,& / ,0 $12 34 $ 5 6 &47 k 4- & +8 9 :; ≤ i ≤ j ≤ n x , . . . , xn !"#"$ n !"# % &#'# xi + xi+ + . . . + xj ($ #& #) <- 4=$ &> . $ ? ? @ / ,0 ; &A( &B1 ( @ C6 & D4E & <- 4=$ /. xi + xi+ + . . . + xj " sm = gm = 0 for i = 0 to n do if x[i] + sm > gm then sm = sm + x[i] gm = sm else if x[i] + sm > 0 then sm = sm + x[i] else sm = 0 return gm k '*+ ,## - *. ,#%/!0 , n !"# *. 1+ %!0 x *. 2 , # 3* %' 4 n # 5 !+ %67 8% % 9 2 #/ %!0 x ,## 8%:;0 %+<0 = # 3* . &@-F 6 & $-7 0G4 9 H @ . , / ,0 &1 5 !+ %67 - a < a < . . . < an +0 >, ai = i #(/ !"# ≤ i ≤ n & ?@'0 . # $ 0G4 binary search / ,0 ## !;/ 0 ! / ; I !"# $ $ J4 KL C MGH 4 + . , N$12 DFS / ,0 C MGH OP $ & Q) 4 R7 Q) M-F OP $ .3 + & '- (i, j) -/ #& A) O(n ) !"# !C n ! / vj vi %5 :(2 + $ ;7 D-H = A) $12 DFS A) &' 1-. / ,0 $. 3 R7 +8 KL ,.C D+ E & #& #) F( ') ! # O( ) G$ H 5 SEnqueueT U V - @ 0 6 $ B A W ; / ,0 / $ X Y & SDequeueT Enqueue(x) push(A, x) Dequeue() if B is empty then while A is not empty do push(B, pop(A)) return pop(B) ,#& 2I , Reset + ! -+ # '- ! # O( ) D+ + E & , Z , F $ H\] &B1 ,$^4 &> . / ,0 $. $$^H 2$1 Increment -@ N$ G; $^4 6 Reset , # & 2 I - + # - Decrement + , # & 4 ! ' + - , J # # ' - ! 7 J # - O( ) K 0 7 E & 6 # ) % L + % .! 0 M N O -% .! 0 , K R 0 , S + - , J # T PQ ( ) = × + J 27 _ 4 $. ) n− − × E & + × + × = ( ) = 01-( V -) , / ,0 $. J. U& H + #& !2 *0 / V<- T 0 E W%( X ! # U& n/ G$ + &1$ N`2 ,&Ga1 5 , Nb$ 0G4 -R & 6 9 / ,0 W RH ,c@ RH $14] < H N$>H , b$ $] O(n) b$ 5 O(nS) !+ %67 S '%+<0 , n !"# ! #/ ,#J". J0 Y%+<0 %.!0 %6 # b$ S/ , 4=]& &' -. / ,0 Problem Set 3 of CS 423: Theory of Algorithms, Princeton University, Spring 2000 d 73- .X D%L - s , . . . , sn +0 !"# ## O(n ) %*( K# b $ si & D4E ,R; ,&A1 H`2 VY li / ,0 &' e li = max{lj : ≤ j < i and sj < si } + l = :; max{li } #& $ O(n logn) 0 3 :ZJ0 + !"# \a@ C6 b$1 ,B 4 ,R; ,&A1 9 / ,0 ,.VY ,R; ,.&A1 4 &> . ( H9L ,B H 06 & ,R; ,&A1 H`2 VY l & N &B1 , , . . . , l $$^H eC ,.&A1 ? _ 3$) N @ . OP &> ,& 6 N &A( ( &7f l + VY & ,&A1 9 N prev ,& 6 &B1 ,R; ,.&A1 4 a@ C6 O 1 last 0G4 .&A1 , , H Input: Array x[1..n] of numbers Output: Array ans[1..l] the Longest strictly Increasing Subsequence of x LsIS(x) l = 1 last[1] = 1 for i=2 to n do if x[i] < x[last[1]] then last[1] = i prev[i] = 0 else if x[i] > x[last[l]] then l = l + 1 last[l] = i prev[i] = last[l-1] else find maximum k with x[last[k]] < x[i] < x[last[k+1]] using binary search g last[k+1] = i prev[i] = last[k] s = last[l] for i=l to 1 do ans[i] = x[s] s = prev[s] return ans [#. . - N . L R$ n D%L ! + ## :+&\ 0 #0Ak , [. 0 !347 1 H j h & i VY & ,.&4( RH d[i][j] / ,0 / ] ] : ; & ,& Q 9 - & H d 3 $ W R H < H 1 C 7 N& 6 i] O ] d[i][j] = d[i − ][j] + d[i − ][j − ] &H &A( & $ ) ans & 6 SO?@ :; & T e find(k,n,L) /$ Returns the k-th element of the set of 0-1 strings with length i and at most j 1’s find(k,i,j) if i=0 then return if d[i-1][j] < k then ans[i] = 1 find(k-d[i-1][j], i-1, j-1) else ans[i] = 0 find(k,i-1,j) ,#& G ,#%/!0 , X $ ACM-ICPC North-Eastern European http://neerc.ifmo.ru/past/2002.html j Regional Contest 2002-03, m %!0 E S . m m(S) &-0 !.3 =L% 0 ! . 3 E + 0 S % / ] & 3 0 % -^ ! * # 3 L (AB) → ABABAB P#& %. DR0 (AB (C)(D (A))) → ABCCCCDADADAABCCCCDADADA &$ :; & n VY & S ,&4( & $ & O(n. ) -4 B H 0( M( Dii 4 & $ W RH S ,&4( S[i, j] / ,0 , D* 4- VY d[i, j] S = S[ , n] O] & Dij k(R) :; & -) 4 d[ , n] e $ W RH S[i, j] $L = -1 S[i, j] 6 & S[i, j] = RR . . . R b$( &4( 06 N >4 & .k RH O(j − i + ) H $C √ b-$$ &A> 2$1 k D) RH k|j − i + O( n) h -) ,& 2. ≤ i ≤ j ≤ n L O] 0( &A> k_ A) R , D* O(n. ) = 1 : ; S[i, j] & 7 1 2 $ 1 V - 4 6 & \ & , 3 b - $ $ S[i, j] O ] O(n ) ,& 2. ) min{d[i, k] + d[k + , j] : i ≤ k < j} 4 F:@0 !+- , 0 !I# ,#-%.!0 ! Y%&. !7 ,#& ,#%/!0 = 3J- +0 +- ,#-%.!+- , ,#& 4 =,#& 4 JE %+<0 , %3<0 W 40 !&* ,# %E ,#&!0 4 !- \ I$ D$ ,#5%6 %E ,#-%.!0 !7 ! &!0 %E [&0 +- = %. _&0 !7%+*0 P- -%!0 4 !0 ##`. %E = ##`. =&J !:*2 &!0 VQ %E abc7 ##`.d P-Y%- %/ !7%+*0 K +$ * = 6 * e"2 9% * &!0 VQ %E a!+5 ##`.d # e"2 bc7 ##`. !7 =- !+5 ##`. + %!0 R$ = m *. n 0 D%L & E+0 !/ !+ %67 , !+5 ##`. m K "# bc7 ##`. m ,+#� *. & !.%( 0 # 5 O(m n) l , D* ,.4 b-$$ c[i, k] b$ W RH / ,0 h 3 . $] , b$( Dik C6 & ,Y & N4 V 4 b $B 1 m i & 2 :ZJ0 O(n n ) !-0 3. 0 !+ %67 !I# # 5 ( j ( & i ( 47 ,& 2. C(i, j) / ,0 , . ( D - H & 6 Y & $ W R H & i , G ,& 2 . b - $ $ T ( ; , , . . . , n) &' e b &47 9 _3$) j , j , . . . , jk / &A> ) X Y & T (i; j , j , . . . , jk ) T (i; j , j , . . . , jk ) = min ≤m≤k [C(i, jm ) + T (jm ; j , . . . , jm− , jm+ , . . . , jk )] T (i; j) = C(i, j) + C(j, ) /b ,&$ m( D%L ,#%/!0 , m Y%+<0 n l D%L S !+ %67 / ,## S -%'#) .X #& 5 O(ml) 3. 0 S Dii 1=$] N.&4( 6 4 H $. ) TRUE d(i) / ,0 $ :; 4=]& ,&' &$A( 4 & .d(i) .3 C " # $% *. ,#%/!0 , V%:*0 ,<$ DZ! m #& 9 2 & ) E+0 ,<$ '# %L ,# V%:*0 ,<$ 3* Problem Set 7 of Introduction to Algorithms, MIT, November 2005 n :ZJ0 &#g 8% J#- ., !Z# h# ,<$ 3* ,<$ ,#-!0 % ) 3* OP T / - = , %67 # '- = OP T a! d %b&0 , %67 #& J"0 !-0 3. 0 ij &&!0 DZ! =&J 3* . !5# %. ,#&#!0 DZ! ,#!0 k !0 %!0 3* ,#&!0 ! [#. . #+ ij [. 0 \% X #• [ n , n) ' + < $ ! , # & ! 0 6 - ! E ! E # • n ! [ n , ) '+<$ !5# * :$ 0 ,#&!0 ! & ! # + . ,#&!0 E. "- $ 0 ,#&!0 [ n , n) ' + < $ ! , # & ! 0 6 - ! E ! E # • ,#&!0 ! # + * :$ 0 ,#&!0 ! & A R b F W a 1 4 = $ b F ' $ ( / $ B / ,0 O(mlog n)NO(mlog m) ,&AH o$HH & .b4 B ( &4( N( &4(1 4. O(m) D % 5 * . , # % /! 0 , ! / # * . ., -% D % 5 V + . , # # C <0 %5 D = #!0 C !&# ,# 4 C <0 D <0 C = #!0 D !&# &#!0 l / 0 !+ %67 &#!0 # 5 ; .$ ,Y N= A) $4. 8 , 4) $12 DF S / ,0 N1( 0 a4 17 & 6 & .V +8 & $. ) 06 & 17 & H@kY & &H ?- X Y p] & h 0( 0G4 \ D & OP ( eE41 &1a :; & J( 4 $. V341 H* +8 & :@kY @ & ACM-ICPC Sharif Preliminary Contest, 2006-07 q ' ( # $% ! - 0 3 . 0 ! + % 6 7 G g !"# ) 2 D%L g ?#@'. # 5 O(V E) #/ $12 DF S + ,&-. $ b$3H A-. _) ,.&G & G 4 / ,0 N( &4( 6 & 7 $ 9 U $ 9 &= & B 8 VA1 $ 0G4 ,A-. _) r OP i C - G + n . N G g %5 F *. i C % j i g #J0 i −→ j ,#J%-!0 j g(i) "0 # 5 O(V + E) !+ %67 g(i) = max{j : i −→ j} ,#&!0 & 8J$ ≤ i ≤ n b$ W RH V b G ,.V O?@ G∗ / ,0 G g(i) 3 G∗ ind[i] 3 sf & ind[i] = max{j : j −→ i} /b$ < H 9- & .ind[i] global variables: father, ind[n] with initial value 0 findInds() for i=1 to n do father = i dfs(i) dfs(v) for every child u of vertex v do if ind[u] = 0 then ind[u] = father dfs(u) Y C J !' = : %. %b&0 ! # = !0 m C =&!0 !L K"# D + =%!0 : %. #& T G6 &\ C E+0 % W%( %. = H S%5 V+. &3+ g&. ## O(V + E) 6 & , ,. $ M( 9 , H 47 , / ,0 $B 9- ,1$] $ $1H $1At * +, ( - ./0 1 O(V ) , D +0 3R0 !2 !"# 2 &#+ # 2 / O(V ) #-% e D %L #& k )S#) ## G!0 D $ T 6 $ &A> > &$- $7 C / ,0 b. & T , v u & ,$ , V H$B v u +8 . , NO(V ) $B V 5 &' e N1 & e = uv V . V $ $$RH ; 6 & e &7f v u $ - T &#+ # 2 / G ! # !+ %67 ,#&!0 ( %5 *. 2I C & #) &#+ # 2 / # .V & ,&$- $7 C & b ,&4?1 / ,0 d \& 7f +8 -1 0G4 4$1 T 10 G & V − + d 8 V + 7 &$- $7 C $] & &' N( ( AH " ' ( 0 # , C #J0 . .% *. = g !"# 3 ## O(V + E) v u 6 & .$ H0H RH 0 $ + ,&-. , BF S / ,0 = !4&0 # 5 !+ %67 ! # & #) =% W%( $ 0G4 Bellman-Ford b4 B / ,0 , , . . . , W "0 !E -% !2 D ! # 3 . 0 # ) % L J E , % 6 7 % .! 0 # ' - = # 6 O(V W + E) k!-0 $ ,@ .$ H0H ,&-. VY / ,0 $ Di i ,& 6 b $B H V W ,& 6 b$1H &F$41 .C .u+8 H9 21 47 v :$-@ ,&-. &F$41 d[v] = i & b$. ) v h O(V W ) & 6 , N&4=] , Extract-Min , & H DF1 (V − ) × W 3. 0 DAG G . J 2 !+ %67 ! # ! - 0 3 . 0 ! + % 6 7 % @ 7 ! 2 =, # f (V, E) ! - 0 D *. E ∗ # G . J # 5 f (V, E) + O(V + E ∗ ) J , wG b4 B N A-. _ ) ,.&G 4 / ,0 &$ ,5H 4 N&F$41 & &H OP $ ,A-. _) ,.&G I 5 4 6 R$ augment %.!0 &#'# l # '- ! # / !'2 #J0 E N $B 1 b-$$ ,0( b &$=$ ,0( $ w7 / ,0 V 6 ,0( ,01 & V 5B V 6 ( t & s & $ $] $ 9 $12 34 $ b $ ,.V ,0( $7x S%5 V+. !'@ #& T ! # 0 n;. ,0( ,&$c) OP N V. m( H / ,0 $ 0G4 &$- \ y&$=$ ; (& Y%+<0 !"#"$ (& !J .0 #& 9 2 %.!0 #& T o#c( % (& Y%+<0 !:3 "0 + % ; (& Y%+<0 F F" =i .0 -+ N =E V 19 G; $ .& w7 H / ,0 w7 XAY 5B q &$3 G;1 ;@ x4 ,.V $7x ,0( H ! # . &$c) XAY 5 z$>; ,&$=$ ,0( , &?A( & ,;@ , & V ( z$>; .V ,&-. ,0( 6 & 7 ,&$=$ $. ) W &$3 , & =G3 N0( (x4 V ,0( push-relabel , % 6 7 relabel * . \ # & T ! # V<- !7 O(V ) E+0 + !-0 3. 0 O(V ) !: 7$ !0 0 O(V E) D+ !0+. Z +8 , relabel -@ ( d v +8 ,& & $ &H / ,0 ( DF1 O(d) G $ # - / # 4 - / p - ; c 4 ( e%. -/ %L -%) %� %.!0 ($ E #& T =,#& % #%) %� K"# $ 0G4 &$- \ y&$=$ ,0( ,&$c) / ,0 # 7 8 Rabin-Karp , %67 %.!0 -%6\ # o#I%. ! # 9 ,#+*. *A / ,0 0 ! + % 6 7 - n D% L B A ! # ≤ i ≤ n % k i - ? # @ ' . # 5 O(n) ]& 0 , S/ \ !&*^ Bi = A(i+k)%n P,# & AA ,&4( B ,B 47 , KM P b4 B / ,0 # $% # 5 2-SAT :ZJ0 $ O(n ) !+ %67 d :( ; ! # 1$ 3 .$^4 &L $$A $. 3 $^4 9 / ,0 ,&$3 V E {)H & $B1 3 ,$^4 B H $. & &' C {)H & $ O?@ $^4 D $. & :A@ |$1 f ) ! C S % ) . \% - 2 # & T !"# V+.q!) #- H %5 V+. ! $ w7 b$. J. &' & -R 8 J(] &' / ,0 b. & +8 & 6 $ &7f 6 & +8 & V 0( 0 G $ ; 2$1 G 7 & + D-H & +8 & ? N$ ; k ,01 & 8 J(] G H k + ,01 & 8 J(] ( &4( % :+&\ 0 !+ %67 P = N P #& T !"# !-%:#+ #J0 ?#@'. #6 C & C k % 9 14$-. ,&' H -4 B $L 4( / ,0 ,&-L 0E P r Integer Programming : Z J 0 !I# &-0 s *. - % a , a , . . . , an o#c( k × a + k × a + . . . + kn × an > k k, k . . . , kn ∈ Z V+.q!) :ZJ0 #& T >&& t( J. &' & 3-SAT subset-sum ,&' H u- v #0u- !2 :ZJ0 #& T !"# / ,0 V+.q!) = #/ J g E J. &' & H 3-SAT ,&' / ,0 ,<$ DZ! *. P r bin-packing :ZJ0 ! # V+. %.!0 ,# J0 ,<$ 3* *. ,#%/!0 V%:*0 # '- subset-sum :ZJ0 S > 3* . k # V+.q!) :ZJ0 0 & subset-sum ,& ' SinstanceT & 1 - 1 9 $ w 7 / ,0 k M-F ,&@-F 6 b$ B @ M-F S 6 & 0( & DZ( 9 @ . , & b ?( $( ,&@-F $C :; b S − k S + k ,.bF 2$1 &7f DZ( b bF 6 2$1 S $7x &AR ( S + S + k + S − k = S $( M-F b$ bin packing ,&' b $1 ,&AR 0( &7f DZ( _-4 N ) &AR $( 4 &AR 9 $7x 4=$ & S .6 M-F N1 ) :G4 ] &AR . N.&AR $7x M-F _3$) $( bF M-F L 0k@ & ) $( N0(0 ) S − k bF & DZ( & ,&AR 6 &F$41 ( 0( &@-F 9 <) R S − (S − k) = k =1 M-F & 1&47 0( k =R- & b $] @ ,$( N( k =R- & ( &4( @ &@-F 9 NO?@ 01 ,$( &AR 9 S − k bF & 7f DZ( ,0k@ & .6 x4 e x4 bin packing &' O] Nb$. ) B ,&AR ,#0-!0 % %+<0 G %5 A %+<0 H A J+ A v =G v R0 !C D + g %L Y X S@ g !'@ ,#0-!0 8%/ %+<0 X S %+<0 = Y X P#& T % v S w !E !7 =Y v C V+.q!) = k - % %+<0 :ZJ0 ]N ]M = k - 8%/ %+<0 g !'@ :ZJ0 V+.q!) j J . , ) ,& @ - F & ' & 8 J ( ] ,& ' ]N $ / ,0 0 &7f xuv h +8 9 e = uv V . , NG ,0(0 b$. @ b$1 H V +8 O(n ) & ; $ ; v u & 6 9 G &$ H 8 k ,) ,&@-F 9 H b$ ( &4( 8 k 8 J(] 8 ( &@-F $B 1 H , 8 k ,) ,&@-F 9 & Su +8 k_ h T 6 & a 4 +8 ? 0 5 6 N xuv 1 +8 k h ,) 2$1 ,&@-F sf & b$ &7f &@-F G , 8 J(] 9 N+ &@-F & H 4 & 7Y 1 ( H , ,) ,&@-F 9 _3$) G , 8 J(] . NO?@ ,&' ,) ,&@-F ,&' H / 0 &' ]M $ J. eC ,&@-F ,&' & 8 J(] u , . . . , un + &@-F G /S,) ,&@-F ,&' J.T V 0 Y = {w , . . . , wn } X = {v , . . . , vn } & H =E N $B 1 :; ( F G ui uj i = j vi → wj 4. 6 JE {vi½ , . . . , vi } eC ,&@-F x4 _3$) G {ui½ , . . . , ui } ,) ,&@-F . O?R H u , . . . , un + &@-F G /S J(] ,&' J.T D 0 V . , & & Y X = {v , . . . , vn } JE H N&471 J(] . :; u, v → yuv b$. ) Y yuv h NG e = uv H {vi½ , . . . , vi } eC ,&@-F x4 _3$) G {ui½ , . . . , ui } 8 O?R k k k k [1] Thomas H. Coremen et al., Introduction to Algorithms (2nd ed.), MIT Press 2001. [2] Udi Manber, Introduction to Algorithms: A Creative Approach, AddisonWesley 1989. [3] Steven S. Skiena, The Algorithm Design Manual, Springer-Verlag 1998 l