Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 20

I.

Dy con n iu di nht
1. M hnh

Cho dy A1,A2,..An. Hy tm mt dy con tng c nhiu phn t nht ca dy.

c trng:
o Cc phn t trong dy kt qu ch xut hin 1 ln. V vy phng php lm l ta
s dng vng For duyt qua cc phn t A trong dy, khc vi cc bi ton ca
m hnh 4 (c trng l bi ton i tin), cc phn t trong dy c th c chn
nhiu ln nn ta thc hin bng phng php cho gi tr cn quy i tng dn
tng n v.
o

Th t ca cc phn t c chn phi c gi nguyn so vi dy ban u.

c trng ny c th mt i trong mt s bi ton khc ty vo yu cu c th. Chng


hn bi: Tam gic bao nhau.

2. Cng thc QH

Hm mc tiu : f = di dy con.

V di dy con ch ph thuc vo mt yu t l dy ban u nn bng phng n l


bng mt chiu. Gi Li l di dy con tng di nht, cc phn t ly trong min t
A1 n Ai v phn t cui cng l Ai

Nhn xt vi cch lm ny ta chia 1 bi ton ln (dy con ca n s) thnh cc bi ton


con cng kiu c kch thc nh hn (dy con ca dy i s). Vn l cng thc truy hi
phi hp kt qu ca cc bi ton con.

Ta c cng thc QH tnh Li nh sau:


o L1 = 1. (Hin nhin)
o Li = max(1, Lj+1 vi mi phn t j: 0<j<i v AjAi )

Tnh Li : phn t ang c xt l Ai .Ta tm n phn t Aj <Ai c Lj ln nht. Khi


nu b sung ai vo sau dy con ...Aj ta s c dy con tng dn di nht xt t A1...Ai

3. Ci t

Bng phng n l mt mng mt chiu L lu tr cc gi tr ca hm QH L(i).


on chng trnh tnh cc gi tr ca mng L nh sau:

for i:= 1 to n do
begin
L[i]:=1;
for j:=1 to i1 do
if (A[j]<=A[i]) and (L[i]<L[j]+1) then L[i]:=L[j]+1;
end;

Nh vy chi ph khng gian ca bi ton l O(n), chi ph thi gian l O(n2). C mt phng php
ci t tt hn so vi phng php trn, cho chi ph thi gian l O(nlogn)

4. Mt s bi ton khc
Bi ton dy con n iu tng di nht c bin th n gin nht l bi ton dy con n iu
gim di nht, tuy nhin chng ta c th coi chng nh l mt. Sau y l mt s bi ton khc.

B tr phng hp( mt tnh th t so vi dy ban u)


o C n cuc hp, cuc hp th i bt u vo thi im Ai v kt thc thi im
Bi. Do ch c mt phng hi tho nn 2 cuc hp bt k s c cng b tr phc
v nu khong thi gian lm vic ca chng ch giao nhau ti u mt. Hy b tr
phng hp phc v c nhiu cuc hp nht.
o Hng dn: Sp xp cc cuc hp tng dn theo thi im kt thc Bi. Th th
cuc hp i s b tr c sau cuc hp j nu v ch nu j<i v Bj<=Ai. Yu cu b
tr c nhiu cuc hp nht c th a v vic tm dy cc cuc hp di nht
tho mn iu kin trn.

Cho thu my
o Trung tm tnh ton hiu nng cao nhn c n t hng ca n khch hng.
Khch hng i mun s dng my trong khong thi gian t ai
n bi v tr tin
thu l ci. Hy b tr lch thu my tng s tin thu c l ln nht m thi
gian s dng my ca 2 khch hng bt k c phc v u khng giao nhau (c
trung tm ch c mt my cho thu).
o Hng dn: Tng t nh bi ton b tr phng hp, nu sp xp cc n t
hng theo thi im kt thc, ta s a c v bi ton tm dy con c tng ln
nht. Bi ton ny l bin th ca bi ton tm dy con tng di nht, ta c th ci
t bng on chng trnh nh sau:

o
o
o
o
o
o
o
o
o
o

for i:=1 to n do
begin
L[i]:=C[i];
for j:=1 to i1 do
if (B[j]<=A[i]) and (L[i]<L[j]+C[i]) then
L[i]:=L[j]+C[i];
end;

Dy tam gic bao nhau


o Cho n tam gic trn mt phng. Tam gic i bao tam gic j nu 3 nh ca tam gic
j u nm trong tam gic i (c th nm trn cnh). Hy tm dy tam gic bao nhau
c nhiu tam gic nht.
o Hng dn: Sp xp cc tam gic tng dn v din tch. Khi tam gic i s bao
tam gic j nu j<i v 3 nh ca j nm trong i. T c th a v bi ton tm
dy tng di nht.
o Vic kim tra im M c nm trong tam gic ABC khng c th da trn phng
php tnh din tch: im M nm trong nu SABC = SABM + SACM + SBCM
o Bi ton c mt s bin th khc nh tm dy hnh tam gic, hnh ch nht bao
nhau c tng din tch ln nht.

Dy i du
o Cho dy A1, A2,AN. Hy tm dy con i du di nht ca dy . Dy con
con i du Ai1,Ai2,Aik phi tho mn cc iu kin sau:

Ai1<Ai2>Ai3< hoc Ai1>Ai2<Ai3>

Cc ch s phi cch nhau t nht L: i2i1L, i3i2L.

Chnh lch gia 2 phn t lin tip nh hn U: |Ai1Ai2|U, |Ai2Ai3|U

o Hng dn: Gi Li l s phn t ca dy con i du c phn t cui cng l


Ai v phn t cui cng ln hn phn t ng trc. Tng t, Pi l s phn t
ca dy con i du c phn t cui cng l Ai v phn t cui cng nh hn
phn t ng trc.
o Ta d dng suy ra:

Li = max(1, Pj + 1): j iL v AiU Aj < Ai.

Pi = max(1, Lj + 1): j iL v Ai < Aj Ai+U.

Dy s WAVIO:
o Dy s Wavio l dy s nguyn tha mn cc tnh cht : cc phn t u sp xp
thnh 1 dy tng dn n 1 phn t nh sau gim dn. V d dy s 1 2 3 4 5 2
1 l 1 dy Wavio di 7. Cho 1 dy gm N s nguyn, hy ch ra mt dy con
Wavio c di ln nht trch ra t dy .
o Hng dn: L1i l mng ghi di ln nht ca 1 dy con tng dn trch ra t
dy N phn t k t phn t 1 n phn t ai. L2i : mng ghi di ln nht ca
dy con gim dn trch ra t dy N phn t k t phn t AN n Ai. Ta tm phn
t j trong 2 mng L1, L2 tha mn L1j+L2j ln nht.

Thp Babilon ( Tnh cht duy nht ca cc phn t trong phng n ti u b vi phm)

Xp cc khi :
o Cho N khi (N5000) Cc khi u c dng hnh hp ch nht v c c
trng bi 3 kch thc: di, rng, cao. Mt cch xy dng thp l mt cch t
mt s cc khi trong cc khi cho chng ln nhau theo quy tc:

Chiu cao mi khi l kch thc nh nht trong 3 kch thc.

Cc mp ca khi c t song song vi nhau sao cho khng c phn


no ca khi trn nm cha ra ngoi khi di.

o Hy ch ra cch xy dng c mt ci thp sao cho s khi c dng l


nhiu nht.
o Hy ch ra cch xy dng c mt ci thp sao cho chiu cao ca ci thp l
cao nht
o D liu vo TOWER.INP c cu trc nh sau :

Dng u l s N.

N dng sau dng i ghi 3 s nguyn 255 l 3 kch thc ca khi i .

o D liu ra : TOWER1.OUT, TOWER2.OUT ghi theo quy cch :

Dng u ghi s cc khi c chn theo th t dng xy thp t


chn ln nh.

Cc dng sau ghi cc khi c chn, mi khi ghi 4 s T, D, R, C


trong T l s th t ca mi khi . D, R, C l kch thc ca khi
tng ng.

II. Vali (B)


1. M hnh

C n vt, vt th i c trng lng Ai v gi tr Bi. Hy chn ra mt s cc vt,


mi vt mt ci xp vo 1 vali c trng lng ti a W sao cho tng gi tr ca vali l
ln nht.

2. Cng thc

Hm mc tiu : f: tng gi tr ca vali.

Nhn xt : gi tr ca vali ph thuc vo 2 yu t: c bao nhiu vt ang c xt v


trng lng ca cc vt. Do bng phng n s l bng 2 chiu.
o L[i,j] : tng gi tr ln nht ca vali khi xt t vt 1..vt i v trng lng ca vali
cha vt qu j. Ch rng khi xt n L[i,j] th cc gi tr trn bng phng n
u c ti u.

Tnh L[i,j] : vt ang xt l ai vi trng lng ca vali khng c qu j. C 2 kh


nng xy ra :
o Nu chn aia vo vali, trng lng vali trc phi j-a[i]. V mi vt
ch c chn 1 ln nn gi tr ln nht ca vali lc l L[ i-1,j-Ai ]+ Bi
o Nu khng chn Ai, trng lng ca vali l nh c (nh lc trc khi chn ai ):
L[i-1,j]. Tm li ta c L[i,j]=max( L[i-1,j- Ai ] + Bi, L[i-1,j] ).

3. Ci t
For i:=1 to n do
For j:=1 to W do
If

b[i]<=j then L[i,j]:=max(L[ i-1,j-A[i] ] + B[i], L[i-1,j])

else L[i,j]:=L[i-1,j];

4. Mt s bi ton khc

Dy con c tng bng S:

o Cho dy A1,A2,..AN. Tm mt dy con ca dy c tng bng S.


o Hng dn

t L[i,t]=1 nu c th to ra tng t t mt dy con ca dy gm cc phn


t A1,A2,..Ai. Ngc li th L[i,t]=0. Nu L[n,S]=1 th p n ca bi ton
trn l c.

Ta c th tnh L[i,t] theo cng thc: L[i,t]=1 nu L[i1,t]=1 hoc L[i1,t


a[i]]=1.

o Ci t

Nu p dng lun cng thc trn th ta cn dng bng phng n hai


chiu. Ta c th nhn xt rng tnh dng th i, ta ch cn dng i1.
Bng phng n khi ch cn 1 mng 1 chiu L[0..S] v c tnh nh
sau:

L[t]:=0; L[0]:=1;

D thy chi ph khng gian ca cch ci t trn l O(m), chi ph thi gian
l O(nm), vi m l tng ca n s. Hy t kim tra xem ti sao vng for th
2 li l for downto ch khng phi l for to.

for i := 1 to n do
for t := S downto a[i] do
if (L[t]=0) and (L[ta[i]]=1) then L[t]:=1;

Chia ko
o Cho n gi ko, gi th i c ai vin. Hy chia cc gi thnh 2 phn sao cho chnh
lch gia 2 phn l t nht.
o Hng dn: Gi T l tng s ko ca n gi. Chng ta cn tm s S ln nht tho
mn:

ST/2.

C mt dy con ca dy a c tng bng S.

Khi s c cch chia vi chnh lch 2 phn l T2S l nh nht v dy


con c tng bng S trn gm cc phn t l cc gi ko thuc phn th
nht. Phn th hai l cc gi ko cn li.

Market (Olympic Balkan 2000)


o Ngi nh c Clement bt c n con c, khi lng mi con l ai, em bn
ngoi ch. ch c, ngi ta khng mua c theo tng con m mua theo mt
lng no . Chng hn 3 kg, 5kg
o V d: c 3 con c, khi lng ln lt l: 3, 2, 4. Mua lng 6 kg s phi ly con
c th 2 v v th 3. Mua lng 3 kg th ly con th nht. Khng th mua lng 8
kg. Nu bn l ngi u tin mua c, c bao nhiu lng bn c th chn?
o Hng dn: Thc cht bi ton l tm cc s S m c mt dy con ca dy a c
tng bng S. Ta c th dng phng php nh du ca bi chia ko trn ri
m cc gi tr t m L[t]=1.

in du
o Cho n s t nhin A1,A2, ...,AN. Ban u cc s c t lin tip theo ng th t
cch nhau bi du "?": A1?A2?...?AN. Cho trc s nguyn S, c cch no thay cc
du "?" bng du + hay du c mt biu thc s hc cho gi tr l S
khng?

Hng dn: t L[i,t]=1 nu c th in du vo i s u tin v cho kt


qu bng t. Ta c cng thc sau tnh L:

L[ 1,a[1] ] =1.

L[i,t]=1 nu L[i1,t+a[i] ]=1 hoc L[ i1,ta[i] ]=1.

Nu L[n,S]]=1 th cu tr li ca bi ton l c. Khi ci t, c th


dng mt mng 2 chiu (lu ton b bng phng n) hoc 2 mng
mt chiu ( lu dng i v dng i1). Ch l ch s theo t ca
cc mng phi c c phn m (tc l t T n T, vi T l tng ca
n s), v trong bi ny chng ta dng c du nn c th to ra cc
tng m.

Bi ny c mt bin th l t du sao cho kt qu l mt s chia ht cho


k. Ta c thut gii tng t bi ton trn bng cch thay cc php cng,
tr bng cc php cng v tr theo mun k v dng mng nh du vi
cc gi tr t 0 n k1 (l cc s d c th c khi chia cho k). p s ca
bi ton l L[n,0].

Expression (ACM 10690)


o Cho n s nguyn. Hy chia chng thnh 2 nhm sao cho tch ca tng 2 nhm l
ln nht.

o Hng dn: Gi T l tng n s nguyn . Gi s ta chia dy thnh 2 nhm, gi


S l tng ca mt nhm, tng nhm cn li l TS v tch ca tng 2 nhm l
S*(TS). Bng phng php nh du ta xc nh c mi s S l tng ca mt
nhm (nh bi Market) v tm s S sao cho S*(TS) t max.

III. Bin i xu:


1. M hnh

Cho 2 xu X,F. Xu ngun c n k t X1X2...Xn , xu ch c m k t F1F2...Fm .C 3


php bin i :
o Chn 1 k t vo sau k t th i :I i C
o Thay th k t v tr th i bng k t C : R i C.
o Xo k t v tr th i. D i

Hy tm s t nht cc php bin i bin xu X thnh xu F.

Hng dn:
o Hm mc tiu : f: s php bin i.
o D thy s php bin i ph thuc vo v tr i ang xt ca xu X v v tr j ang
xt ca xu F. Do vy ci t cho bang phng n ta s dng mng 2 chiu
o Gi L[i,j] l s php bin i t nht bin xu Xi gm i k t phn u ca X
( Xi=X[1..i] ) thnh xu Fj gm j k t phn u ca F( Fj =F[1..j]). D thy
F[0,j]=j v F[i,0]=i.
o C 2 trng hp xy ra: Nu X[i]=F[j] :

X1X2...Xi-1

Xi

F1F2...Fj-1

Xi

th ta ch phi bin i xu Xi-1 thnh xu Yj-1. Do F[i,j]=F[i-1,j-1].

o Ngc li, ta c 3 cch bin i:

Xo k t Xi:

X1X2...Xi-1

Xi

F1F2...Fj-1

Fj

Xu Xi-1 thnh Fj. Khi F[i,j]=F[i-1,j]+1.(Cng 1 l do ta dng


1 php xa)

Thay th Xi bi Fj :

X1X2...Xi-1

Fj

F1F2...Fj-1

Fj

Xu Xi-1 thnh Fj-1. Khi F[i,j]=F[i-1,j-1]+1.

Chn Fj vo Xi:

X1X2...Xi-1

Fj

F1F2...Fj-1

Fj

o Xu X(i) thnh Y(j-1). Khi F(i,j)=F(i,j-1)+1. Tng kt li, ta c cng thc


QH:

F[0,j]=j

F[i,0]=i

F[i,j] =F[i1,j1] nu Xi = Yj.

F[i,j] = min( F[i1,j] , F[i,j1] , F[i1,j1] )+1 nu XiXj.

Bi ny ta c th tit kim bin hn bng cch dng 2 mng 1 chiu tnh ln nhau v mt
mng nh du 2 chiu truy vt.

4. Mt s bi ton khc

Xu con chung di nht


o Cho 2 xu X,Y. Hy tm xu con ca X v ca Y c di ln nht.
o Cng thc QH

Gi L[i,j] l di xu con chung di nht ca xu Xi gm i k t phn


u ca X ( Xi=X[1..i] ) v xu Yj gm j k t phn u ca Y
( Yj =Y[1..j] ). Ta c cng thc quy hoch ng nh sau:

L[0,j]=L[i,0]=0.

L[i,j] = L[i1,j1]+1 nu Xi = Yj.

L[i,j] = max( L(i1,j), L[i,j1] ) nu XiYj.

o Ci t

Bng phng n l mt mng 2 chiu L[0..m,0..n] lu cc gi tr ca


hm QH L[i,j].

on chng trnh ci t cng thc QH trn nh sau:


for i:=0 to m do L[i,0]:=0;

for j:=0 to n do L[0,j]:=0;

for i:=1 to m do

for j:=1 to n do

if X[i]=Y[j] then L[i,j]:=L[i1,j1]+1

else L[i,j]:=max(L[i1,j],L[i,j1]]);

o Nh vy chi ph khng gian ca bi ton l O(n2), chi ph thi gian l O(n2). C


mt phng php ci t tt hn, ch vi chi ph khng gian O(n) da trn nhn
xt sau: tnh L[i,j] ca bng phng n, ta ch cn 3 L[i1,j1],L[i1,j] v
L[i,j1]. Tc l tnh dng L[i] th ch cn dng L[i1]. Do ta ch cn 2
mng 1 chiu lu dng va tnh (P) v dng ang tnh (L) m thi. Cch ci
t mi nh sau:

for j:=0 to n do P[j]:=0;


for i:=1 to m do
begin
L[0] := 0;
for j:=1 to n do
if X[i]=Y[j] then L[i,j]:=P[j1]+1
else L[i,j]:=max(P[j], L[j1]); P := L;
end;

Bc cu
o Hai nc Anpha v Beta nm hai bn b sng Omega, Anpha nm b bc v
c M thnh ph c nh s t 1 n m, Beta nm b nam v c N thnh ph
c nh s t 1 n n (theo v tr t ng sang ty). Mi thnh ph ca nc
ny thng c quan h kt ngha vi mt s thnh ph ca nc kia. tng
cng tnh hu ngh, hai nc mun xy cc cy cu bc qua sng, mi cy cu
s l nhp cu ni 2 thnh ph kt ngha. Vi yu cu l cc cy cu khng c
ct nhau v mi thnh ph ch l u cu cho nhiu nht l mt cy cu, hy ch ra
cch bc cu c nhiu cu nht.
o Hng dn: Gi cc thnh ph ca Anpha ln lt l A1,A2,Am; cc thnh ph
ca Beta l B1,B2,...Bn. Nu thnh ph Ai v Bj kt ngha vi nhau th coi
Ai "bng Bj. cc cy cu khng ct nhau, nu ta chn cp thnh ph
(Ai,Bj) xy cu th cp tip theo phi l cp (Au,Bv) sao cho u>i v v>j. Nh
vy cc cp thnh ph c chn xy cu c th coi l mt dy con chung ca
hai dy A v B.
o Bi ton ca chng ta tr thnh bi ton tm dy con chung di nht, y hai
phn t bng nhau nu chng c quan h kt ngha.

Palindrom (IOI 2000)


o Mt xu gi l xu i xng (palindrom) nu xu c t tri sang phi hay t
phi sang tri u nh nhau. Cho mt xu S, hy tm s k t t nht cn thm vo
S S tr thnh xu i xng.
o Hng dn: Bi ton ny c mt cng thc QH nh sau:

Gi L[i,j] l s k t t nht cn thm vo xu con S[i..j] ca S xu


tr thnh i xng.

p s ca bi ton s l L[1,n] vi n l s k t ca S. Ta c cng thc


sau tnh L[i,j]:

L(i,i)=0.

L(i,j)=L(i+1,j1) nu Si=Sj

L(i,j)=max(L(i+1,j), L(i,j1)) nu SiSj

o Bn c d dng c th kim chng cng thc . Ta c th ci t trc tip cng


thc bng phng php quy c nh. Tuy nhin khi chi ph khng gian l
O(n2). C mt phng php ci t tit kim hn (bn c c th tham kho bi
bo trn ca thy Trn Hng), tuy nhin phng php kh phc tp.

o Ta c thut ton n gin hn nh sau:

Gi P l xu o ca S v T l xu con chung di nht ca S v P. Khi


cc k t ca S khng thuc T cng l cc k t cn thm vo S tr
thnh i xng. p s ca bi ton s l nk, vi k l di ca T.

V d: S=edbabcd, xu o ca S l P=dcbabde. Xu con chung di nht


ca S v P lT=dbabd. Nh vy cn thm 2 k t l e v c vo S tr
thnh xu i xng.

IV. Vali (A)


1. M hnh

Cho n vt, vt i nng Ai v c gi tr Bi. Hy chn ra mt s vt cho vo bal sao cho


tng khi lng khng vt qu W v tng gi tr l ln nht. Ch rng mi vt c th
c chn nhiu ln.

2. Cng thc

Gi L(i,j) l tng gi tr ln nht khi c chn i vt t 1 n i cho vo bal vi tng


khi lng khng vt qu j. L(n,W) s l p s ca bi ton (l gi tr ln nht c c
nu chn n vt v tng khi lng khng vt qu W).

Cng thc tnh L(i,t) nh sau:


o L[i,0]=0;
o L[0,j]=0.
o L[i,j]=L[i-1,j] nu t<Ai.
o L[i,t]=max( L[i,j] , L[i-1,jAi ]+Bi) nu t Ai

Trong : L[i1,j] l gi tr c c nu khng a vt i vo bal, L[i-1,jAi]+Bi l gi


tr c c nu chn vt i.

3. Ci t

Ta c th dng mt mng 2 chiu lu bng phng n, tuy nhin da trn nhn xt


rng tnh dng i ca bng phng n ch cn dng i1, ta ch cn dng 2 mng mt
chiu P v L c ch s t 0 n m lu 2 dng . on chng trnh con tnh bng
phng n nh sau.

o
o
o
o
o
o
o
o

L[t] := 0; {vi mi t}
for i := 1 to n do
begin
P:=L;
for t := 0 to m do
if t<a[i] then L[t]:=P[t]
else L[t] := max(P[t],P[ta[i]]);
end;

Nu k bn s thy rng on trnh trn ch vit ging cng thc QH ch cha ti


u. Chng hn c lnh gn P:=L, sau li c gn L[t]:=P[t] vi cc gi tr t<a[i] l
khng cn thit. Bn c c th t ci tin chng trnh ti u hn.

Chi ph khng gian ca cch ci t trn l O(m) v chi ph thi gian l O(n.m).

4. Mt s bi ton khc

Farmer (IOI 2004)


o Mt ngi c N mnh t v M di t. Cc mnh t c th coi l mt t gic v
cc di t th coi nh mt ng thng. Dc theo cc di t ng ta trng cc cy
bch, di t th i c Ai cy bch. ng ta cng trng cc cy bch trn vin ca
cc mnh t, mnh t th j c Bj cy bch. C trn cc mnh t v di t,
xen gia 2 cy bch ng ta trng mt cy liu. ng ta cho con trai c chn cc
mnh t v di t tu vi iu kin tng s cy bch khng vt qu Q.
Ngi con trai phi chn th no c nhiu cy liu (loi cy m anh ta thch)
nht.
o Hng dn: D thy mnh t th i c Ai cy liu v di t th j c bj1 cy
liu. Coi cc mnh t v di t l cc vt, vt th k c khi lng Wk
v gi tr Vk (nu k l mnh t i th Wk=Vk=Ai, nu k l di t j th Wk=Bj,
Vk=bj 1). Ta cn chn cc vt, sao cho tng khi lng ca chng khng
vt Q v tng gi tr l ln nht. y chnh l bi ton xp bal trnh by
trn.

i tin
o t nc Omega ngi ta ch tiu tin xu. C N loi tin xu, loi th i c mnh
gi l ai ng. Mt ngi khch du lch n Omega du lch vi s tin M ng.
ng ta mun i s tin ra tin xu Omega tin tiu dng. ng ta cng mun
s ng tin i c l t nht (cho ti tin nng khi i y i ). Bn hy
gip ng ta tm cch i tin.
o Hng dn: Bi ton ny kh ging bi ton xp bal (khi lng l mnh gi,
gi tr l 1), ch c mt s thay i nh: s ng xu mi loi c chn tu
(trong bi ton xp bal mi vt ch c chn 1 ln) v tng gi tr yu cu l
nh nht.

o Do ta cng xy dng hm QH mt cch tng t: Gi L[i,t] l s ng xu t


nht nu i t ng ra i loi tin xu (t 1 n i). Cng thc tnh L[i,t] nh sau:

L[i,0]=0;

L[0,t]= vi t>0.

L[i,t]=L[i1,t] nu t<Ai.

L[i,t]=min(L[i1,t], L[i,tAi]+1) nu t Ai.

o Cng thc ny khc cng thc ca bi xp bal ch: dng hm min ch khng
phi hm max (v cn tm cch chn t hn) v nu chn ng xu th i th
L[i,t]=L[i,tAi]+1 (v ta vn cn c chn ng xu th i na), khc vi khi
xp bal l: nu chn vt th i th L[i,t]=L[i1,tAi])+Bi v vt i ch c
chn mt ln.

V. Nhn ma trn
1. M hnh

Nhn mt ma trn kch thc mn vi mt ma trn np, s php nhn phi thc hin
l m.n.p. Mt khc php nhn cc ma trn c tnh kt hp, tc l: (A.B).C = A.(B.C)

Do khi tnh tch nhiu ma trn, ta c th thc hin theo cc trnh t khc nhau, mi
trnh t tnh s quyt nh s php nhn cn thc hin.

Cho N ma trn A1 ,A2 AN , ma trn A c kch thc l di-1 di . Hy xc nh trnh t


nhn ma trn A1.A2AN sao cho s php nhn cn thc hin l t nht.

2. Cng thc

Gi F(i,j) l s php nhn tnh tch cc ma trn t Ain Aj (Ai.Ai+1....Aj).


o F[i,i]=0.
o F[i,i+1]=di-1 x di x di+1
o F[i,j] = min(F[i,k]+F[k+1,j] + di-1 x di x di+1 vi k=i+1,i+2,...,j1

Cng thc hi phc tp nn ti xin gii thch nh sau:


o F[i,i]=0 l hin nhin.

o F[i,i+1] l s php nhn khi nhn Ai v Ai+1 . Ai c kch thc di-1 x di ,Ai+1 c
kch thc didi+1, do F[i,i+1]=di-1 x di x di+1
o Vi j>i+1 th ta thy c th tnh Ai.Ai+1....Aj bng cch chn mt v tr k no
t ngoc theo trnh t: Ai.Ai+1....Aj = (Ai..Ak).(Ak+1..Aj)

Ma trn kt qu ca php nhn (Ai ..Ak ) c kch thc di-1 di , ma trn kt qu ca php
nhn (Ak+1..Aj) c kch thc dkdj. Vi cch t ta s mt F[i,k] php nhn c kt
qu trong du ngoc th nht, mt thm F[k+1,j] php nhn c kt qu trong du
ngoc th hai, v cui cng mt di-1.dk.dj nhn 2 ma trn kt qu . T tng s
php nhn ca cch t l: F[i,k]+F[k+1,j]+di-1xdk x dj

Ta chn v tr k cho s php nhn t nht.

3. Ci t

Bng phng n l mt mng 2 chiu F lu F[i,j]. Ch khi ci t l tnh c


F(i,j), ta phi tnh F[i,k] v F[k+1,j] trc. Phng php n gin lm iu l
phng php quy c nh.

Tuy nhin da vo nhn xt l trong cng thc QH: ji ln hn ki v jk, ta c th


tnh theo trnh t khc: tnh cc phn t F[i,j] vi ji t nh n ln (khng phi l tnh
cc gi tr F[i,j] vi i,j t nh n ln nh vn lm). Vi cch , khi tnh n F[i,j] th ta
c F[i,k] v F[k+1,j].

on chng trnh tnh bng phng n nh sau:


o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o

for i:=1 to n do F[i,i]:=0;


for i:=1 to n1 do F[i,i+1] := d[i1]*d[i]*d[i+1];
for m:=2 to n1 do
begin
for i:=1 to nm do
begin
j:=i+m;
F[i,j]:=oo;
for k:=i+1 to j1 do F[i,j]:=min(F[i,j],
F[i,k]+F[k+1,j]+d[i1]*d[k]*d[j]);
end;

end;

Vi cch ci t trn,chi ph khng gian l O(n2), chi ph thi gian l O(n3) (y l bi


ton c chi ph ln nht trong tt c cc bi ton QH thng gp).

4. Mt s bi ton khc

Chia a gic
o Cho mt a gic li N nh. Bng cc ng cho khng ct nhau, ta c th chia
a gic thnh N2 tam gic. Hy xc nh cch chia c tng cc ng cho ngn
nht.
o Hng dn: n gin ta coi mi on thng ni 2 nh u l ng cho
(nu ni 2 nh trng nhau hoc 2 nh lin tip th c di bng 0).
o Gi F(i,j) l tng di cc ng cho khi chia a gic gm cc nh t i n j
thnh cc tam gic. Nu j<i+3 th a gic c t hn 4 nh, khng cn phi chia
nn F(i,j)=0. Ngc li ta xt cch chia a gic bng cch chn mt nh k
nm gia i,j v ni i,j vi k. Khi F[i,j]=F[i,k]+F[k,j]+d[i,k]+d[k,j]; d(i,k) l
di ng cho (i,k).
o Tm li cng thc QH nh sau:

F[i,j]=0 vi j<i+3.

F[i,j]=min(F[i,k]+F[k,j]+d[i,k]+d[k,j] vi k=i+1,...j1). F[1,n)] l tng


ng cho ca cch chia ti u.

Biu thc s hc (IOI 1999)


o Cho biu thc A1A2AN, trong ai l cc s thc khng m v l mt php
ton + hoc cho trc. Hy t cc du ngoc biu thc thu c c kt qu
ln nht.
o Hng dn: Gi F[i,j] l gi tr ln nht c th c ca biu thc AiAi+1Aj. D
thy nu i=j th F[i,j]=Ai, nu j=i+1 th F[i,j]=AiAj. Nu j>i+1 th c th tnh biu
thc AiAi+1Aj bng cch chia thnh 2 nhm: (AiAi+1Ak)(Ak+1Aj),
Khi F[i,j]=F[i,k]F[k+1,j].
o Tm li, cng thc QH l:

F[i,i]=Ai

F[i,i+1]=AiAi+1

F[i,j]=max(F[i,k]F[k+1,j] vi k=i+1,i+2,..j1).

o (Ch l l cc hng t ca dy u khng m v cc php ton l + hoc nn


F[i,k] v F[k+1,j] t max th F[i,k]F[k+1,j] cng t max).

VI. Ghp cp
1.M hnh

C n l hoa sp thng hng v k b hoa c nh s th t t nh n ln. Cn cm k


b hoa trn vo n l sao cho hoa c s th t nh phi ng trc hoa c s th t ln.
Gi tr thm m tng ng khi cm hoa i vo l th j l v(i,j) Hy tm 1 cch cm sao
cho tng gi tr thm m l ln nht. Ch rng mi b hoa ch c cm vo 1 l v
mi l cng ch cm c 1 b hoa. (IOI 1999)

2. Cng thc

Nhn xt rng bi ton nu trn l mt bi ton ghp cp c yu cu v th t nn ta c


th gii quyt bng phng php QH.

Hm mc tiu : f: tng gi tr thm m ca cch cm.

Gi tr thm m ph thuc vo cc hoa v cc l ang c xt nn ta s dng mng 2


chiu lu bng phng n.

L(i,j): tng gi tr thm m ln nht khi xt n hoa i v l j. Khi tnh L(i,j) hoa ang xt
s l hoa i v l j.
o Nu i = j. Ch c mt cch cm L[i,i]:= V[1,1]+V[2,2]+...V[i,i]
o Nu i>j . Khng c cch cm hp l
o Nu i<j : C 2 trng hp xy ra:

Cm hoa i vo l j. Tng gi tr thm m l L[i-1,j-1]+V(i,j). (Bng tng gi tr trc khi


cm cng vi gi tr thm m khi cm hoa i vo l j)

Khng cm hoa i vo l j (c th cm vo l trc j), gi tr thm m ca cch cm l


nh c : L[i,j-1]

3. Ci t :

L[i,j]:= -maxint;

For i:=1 to k do
For j:=i to n do
If i = j then L[i,j]:=sum(i)
else if i<j then L[i,j]:=max(L[i-1,j-1]+v[i,j],L[i,j-1]);

4. Mt s bi ton khc

Cu lc b:( thi chn HSG Tin H Ni nm 2000)


o C n phng hc chuyn v k nhm hc c nh s th t t nh n ln.
Cn xp k nhm trn vo n phng hc sao cho nhm c s hiu nh c xp vo
phng c s hiu nh, nhm c s hiu ln phi c xp vo phng c s hiu
ln.Vi mi phng c ch hc sinh, cc gh tha phi c chuyn ra ht, nu
thiu gh th ly vo cho gh .Bit phng i c Ai gh ,nhm j c Bj hc sinh.
Hy chn 1 phng n b tr sao cho tng s ln chuyn gh ra v vo l t nht.
o Hng dn : Khi xp nhm i vo phng j th s ln chuyn gh chnh l chnh
lch gia s gh trong phng i v s hc sinh trong nhm. t V[i,j]:=|Ai-Bj|

Mua giy ( QG bng B nm 2003)


o Trong hiu c n i giy, i giy i c kch thc HI. C k ngi cn mua giy,
ngi i cn mua i giy kch thc Si . Khi ngi i chn mua i giy j th
lch s l |hI-sJ|. Hy tm cch chn mua giy cho k ngi trn sao cho tng
lch l t nht. Bit rng mi ngi ch mua 1 i giy v 1 i giy cng ch c
mt ngi mua.
o Hng dn : Lp cng thc gii nh bi Cu lc b. Ch chng minh tnh ng
n ca b heuristic sau :Cho 2 dy tng dn cc s dng A1A2...AN ,
B1B2...BN. Gi C1C2....CN l mt hon v ca dy {BN}. Khi : |A1-B1|+ |A2-B2|
+...+ |AN-BN| < |A1-C1+ |A2- C2|+...+ |AN-CN|

VII. Di chuyn
1. M hnh

Cho bng A gm MxN . T (i,j) c th di chuyn sang 3 (i+1,j), (i+1,j1) v


(i+1,j+1). Hy xc nh mt l trnh i t hng 1 n hng M sao cho tng cc i qua l
ln nht.

2. Cng thc

Gi F(i,j) l gi tr ln nht c c khi di chuyn n (i,j). C 3 c th i n (i,j)


l (i1,j), (i1,j1) v (i1,j+1). Do ta c cng thc QH nh sau:
o F[1,j]=A[1,j]
o F[i,j]=max(F[i1,j],F([i1,j1],F[i1,j+1])+A[i,j] vi i>1

3. Ci t

Bng phng n l bng 2 chiu F[0..m,0..n]. (Tt c cc trn bin u cho gi tr bng
0).

Qu trnh tnh nh sau:


o
o
o
o
o

for i:=1 to m do
for j := 1 to n do
F[i,j]=max[F[i1,j],F[i1,j1],F[i1,j+1]]+A[i,j];

Cch ci t ny cho chi ph khng gian v thi gian u l O(n2). Ta c th tit kim
khng gian nh bng cch tnh trc tip trn mng A.

4. Mt s bi ton khc

Tam gic (IOI 1994)


o Cho mt tam gic gm cc s nguyn khng m. Hy tnh tng ln nht cc s
trn ng i t nh tam gic xung mt im no y tam gic no . Ti
mi ta ch c i thng xung, sang bn tri hoc bn phi.
o Hng dn: M t cc phn t ca tam gic s nh mt ma trn, A[i,j] l phn t
th j trn dng i (vi 1iN v 1ji). C 2 c th di chyn n (i,j) l (i
1,j1) v (i1,j). Gi F(i,j) l tng ln nht c th c khi i n (i,j) ta c:

Con kin

F[1,1]=A[1,1]

F[i,1]=F[i1,1]+A[i,1]

F[i,j]=max( F[i1,j1],F[i1,j] ) + A[i,j]

o C mt ng hnh tr, khi tri phng ra c th l mt bng MxN . Gi tr A[i,j] l


lng thc n c dng i ct j. Mt con kin xut pht t mt mp bn
tri ca hnh tr v b sang mp bn phi. T (i,j) kin c th b sang 1 trong 3
(i1,j+1), (i,j+1) hoc (i+1,j+1). (Ch : v ng hnh tr nn kin ang dng 1
c th b xung dng M v ngc li). B qua no th kin mang theo ton b
lng thc n . Hy tm ng i m kin kim c nhiu thc n nht.

Hng dn: x l tnh hung hnh tr, ta lu dng 0 l dng M v dng M+1 l dng
1. Khi tng t nh bi ton ban u, gi F(i,j) l lng thc n kin c c khi b
n (i,j), ta thit lp c cng thc QH sau:
o F[i,1]=A[i,1]
o F[i,j]=max( F[i1,j1],F[i,j1],F[i+1,j+1] )+A[i,j] vi j>1

You might also like