You are on page 1of 42

Algoritmuselmlet (BMEVISZA213) feladatgyjtemny

Drtos Mrton
2012. mjus 30.
Tartalomjegyzk
1. Elsz, hasznlati tancsok 2
2. Nagysgrendek 3
3. Dinamikus programozs 4
4. Szlessgi bejrs, legrvidebb utak, prostsok 5
5. Kupacok 6
6. Keress, rendezs 7
7. Keresfk, p-f fk, 2-3 fk 9
8. Hash 10
9. Mlysgi bejrs, DAG, valamint alkalmazsaik 11
10.Minimlis kltsg fesztfk 13
11.Bonyolultsgelmlet 14
12.Egszrtk programozs 16
13.Kzelt algoritmusok 16
14.Megoldsok 18
1
1. Elsz, hasznlati tancsok
Jelen feladatgyjtemnyben tbbnyire az elmlt vekben a gyakorlataimon feladott feladatok szerepelnek.
Sok feladat rgebbi ZH-kon, vizsgkon szerepelt.
A megoldsok fleg az tletek lersra helyezik a hangslyt, sokszor az egyszer technikai rszletek
hinyoznak. Felttelezem, hogy ezeket mindenki kpes nllan is megfogalmazni. Mechanikus feladatbl
kevs van (nem is szerepel minden tpus), hiszen ezeket az eladsokbl s a weben tallhat animcikbl
sokkal knnyebb megtanulni.
A megoldsokat megtanulni, vagy a feladatokat megoldsokkal egytt nzni nem tancsos, hiszen a
szmonkrseken teljesen ismeretlen feladatok lesznek, amiket nllan kell megoldani. A legclravezetbb
mdszer az, hogy ha valaki nllan megprblja res papron megoldani a feladatokat, majd az itt
tallhat megoldssal sszeveti (klns tekintettel az indoklsra).
Minden tmakrben az els nhny feladat bevezet s/vagy tpusfeladat. Termszetesen ez nem jelenti
azt, hogy csak ilyenek szerepelnek szmonkrsen. A tbbi feladat tbb-kevsb nehzsg szerint van
rendezve.
A jegyzet kinyomtatst nem javaslom, egyrszt paprtakarkossgi okokbl, msrszt elkpzelhet,
hogy az idk folyamn nhny helyen javtani fogok rajta, esetleg j feladatokkal bvl.
2
2. Nagysgrendek
1. Bizonytsuk be, hogy
(a) log
2
f(n) = (log
100
f(n)) (f(n) > 0)
(b) f(x) = a
k
x
k
+a
k1
x
k1
+ +a
0
(a
k
,= 0) f(n) = (n
k
)
(c) 2
n+1
= O(2
n
), de 2
2n
,= O(2
n
)
(d) max(f(n), g(n)) = (f(n) +g(n)) (f(n), g(n) > 0)
2. [Vizsga: 2007. jnius 12.] Egy / algoritmusrl azt tudjuk, hogy n hossz bemeneteken a lps-
szma O(nlog n). Lehetsges-e, hogy
(a) van olyan x bemenet, amin a lpsszma x
3
?
(b) minden x bemeneten legfeljebb 2007[x[ lpst hasznl?
(Szoks szerint [x[ az x sz hosszt jelli.)
3. Jelljk T(n)-nel egy algoritmus legnagyobb lehetsges lpsszmt az n mret inputokon. Tudjuk,
hogy T(n) 10, ha n 5 s T(n) T(n 1) + n/3, ha n > 5. Ekkor mit tudunk mondani
T(n) = O(n), T(n) = O(n
2
) s T(n) = O(n
3
) egyenlsgek helyessgrl?
4. [ZH: 2011. mrcius 28.] Egy problmra kt algoritmusunk van.
Az / algoritmus az n 2 mret problmbl 10 lpssel 2 db n 1 mrett kszt s ezeket oldja
meg rekurzvan.
A B az n 2 problmbl 3 lpssel 4 db n 1 mrett kszt s ezeket oldja meg rekurzvan. Az
n = 1 esetben mindkt eljrs 1 lpst hasznl.
Melyik algoritmus lesz nagy n rtkekre gyorsabb?
5. Igaz-e, hogy
(a) ha f = O(g) s g = O(h), akkor f = O(h)
(b) ha f = (g) s g = (h), akkor f = (h)
6. Az albbi fggvnyeket rendezzk olyan sorozatba, hogy ha f
i
utn kzvetlenl f
j
kvetkezik a sorban,
akkor f
i
(n) = O(f
j
(n)) teljesljn!
f
1
(n) = 8n
2.5
, f
2
(n) = 5

n + 1000n, f
3
(n) = 2
log
2
n
, f
4
(n) = 2008n
2
log n
7. Az / algoritmusrl azt tudjuk, hogy n hossz bemeneteken a lpsszma O(n
2
). Lehetsges-e, hogy
(a) n hossz bemeneten O(n) lpst hasznl?
(b) x, hogy az x bemeneten az algoritmus lpsszma 10[x[
2
log [x[ 800 (ahol [x[ az x bemenet
hosszt jelli)?
8. [Vizsga: 2007. jnius 19.] Az albbi fggvnyeket rendezze olyan sorozatba, hogy ha f
i
utn
kzvetlenl f
j
kvetkezik a sorban, akkor f
i
(n) = O(f
j
(n)) teljesljn!
f
1
(n) = 2
100n
2
50n
, f
2
(n) = 2007n
3
, f
3
(n) = 3
3n
9. [Vizsga: 2007. jnius 5.] Jellje egy algoritmus maximlis lpsszmt az n hossz bemeneteken
L(n). Azt tudjuk, hogy minden n = 2k > 4 pros szmra L(2k) L(2k 2) + 1 teljesl, s hogy
L(4) = 10. Kvetkezik-e ebbl, hogy az algoritmus lpsszma O(n)?
10. [PZH: 2011. prilis 22.] Egy problmra kt algoritmusunk van.
Az / algoritmus az n 2 mret problmbl 5 lpssel 2 db legfeljebb n/2 mrett kszt s ezeket
oldja meg rekurzvan.
A B algoritmusrl azt tudjuk, hogy lpsszma az n mret problmkon O(n
2
).
Ha ennyibl lehetsges, hatrozza meg, melyik algoritmus lesz nagy n rtkekre gyorsabb! Ha ennyi
informcibl mg nem kvetkezik, hogy / vagy B lesz a gyorsabb, akkor indokolja meg, mirt nem!
3
11. Tudjuk, hogy f(x) = O(h(x)) s g(x) = O(h(x)). Igaz-e, hogy
(a) ha h(x) = 3x, akkor f(g(x)) = O(h(x))
(b) f(g(x)) = O(h(x)) h fggvnyre
3. Dinamikus programozs
1. [ZH: 2008. mrcius 28.] Egy n n mret tblzat minden eleme egy egsz szm. A tblzat bal
als sarkbl akarunk eljutni a jobb fels sarkba gy, hogy egy lpsben a tblzatban vagy felfel
vagy jobbra egyet lpnk. Azt szeretnnk, hogy a lpegets sorn ltott elemek nvekv sorrendben
kvessk egymst. Egy ilyen t rtke a benne szerepl szmok sszege. Adjon O(n
2
) futsi idej
algoritmust, ami meghatrozza, hogy az adott tblzatban a szablyok szerinti utak rtkei kztt
mekkora a legnagyobb!
2. Adott egy fa, melynek cscsaihoz slyok vannak rendelve. Adjunk lineris algoritmust, ami megha-
trozza a fban tallhat maximlis sly fggetlen ponthalmaz slyt!
3. [Vizsga: 2007. jnius 12.] Egy n s egy m karakterbl ll szvegben meg akarjuk tallni a
legnagyobb azonos darabot, azaz ha az egyik szveg a
1
a
2
a
n
s a msik b
1
b
2
b
m
, akkor olyan
1 i n s 1 j m indexeket keresnk, hogy
a
i+1
= b
j+1
, a
i+2
= b
j+2
, . . . , a
i+t
= b
j+t
teljesljn a lehet legnagyobb t szmra. Adjon erre a feladatra O(mn) lpst hasznl algoritmust!
4. [Vizsga: 2007. mjus 29.] Legyen w = w
1
w
2
w
n
egy n betbl ll sz. Hvjuk rszsznak w
egy tetszleges w
i
w
i+1
w
i+k
darabjt (1 i n 1, 1 k n i). Adjunk algoritmust, ami
O(n) lpsben meghatrozza az sszes a-val kezdd s b-re vgzd rszsz szmt.
5. Egy jtkban egy n m rcs bal fels sarkbl kell eljutnunk a jobb als sarokba. Egy lps sorn
a rcs mentn vizszintesen vagy fgglegesen tudunk a kvetkez rcspontba lpni. Azonban van
nhny keresztezds, ahova nem szabad lpnnk. Ezek helyt az R tmb rja le, R[i, j] = 1, ha az
(i, j) keresztezdsbe nem lphetnk, egybknt R[i, j] = 0. Adjunk O(nm) futsi idej algoritmust
annak meghatrozsra, hogy pontosan n +m2 lpst tve a rcson hnyflekppen tudjuk a clt
elrni!
6. [ZH: 2010. prilis 19.] Egy n k mret tblzatban van nhny megjellt elem. A tblzat
bal als sarkbl akarunk eljutni a jobb fels sarkba gy, hogy minden lpsben a tblzat egy
elemrl vagy a kzvetlen felette vagy a tle jobbra lv elemre mehetnk (ha van ilyen). Adjon
O(nk) idej algoritmust, amely a megjellt elemek helyt ismerve meghatrozza, hogy egy ilyen t
sorn maximlisan hny alkalommal tudunk megjellt elemre lpni!
7. Legyenek a
1
, a
2
, . . . , a
n
tetszleges egsz szmok s m < n
2
egsz. Adjunk algoritmust, amely a binris
alakjukkal megadott a
1
, a
2
, . . . , a
n
s m szmokrl eldnti polinom idben, hogy az a
1
, a
2
, . . . , a
n
szmok kzl kivlaszthat-e nhny gy, hogy az sszegk m-mel osztva egyet adjon maradkul!
8. Adjunk algoritmust, ami egy n cscs fban lineris idben meghatrozza a fban lev leghosszabb
t hosszt!
9. [Vizsga: 2009. jnius 11.] A vges hossz 0-1 sorozatok egy rszt valamilyen szempontbl jnak
tekintjk, a tbbit rossznak. Van egy A algoritmusunk, mely adott n hossz 0-1 sorozatrl O(log(n!))
lpsben megmondja, hogy a sorozat j vagy rossz.
Adjon olyan eljrst, mely A-t felhasznlva, ha adott egy m hossz 0-1 sorozat, y = y
1
y
2
y
m
, akkor
eldnti, hogy y elll-e nhny j sorozat egyms utn fzsbl. Az eljrs lpsszma sszesen legyen
O(m
4
).
Segtsg: log(n!) O(nlog n) = O(n
2
).
4
10. Egy n szbl ll szveget kell sorokra trdelni. A szveg i-edik szava
i
karakterbl ll, egy sor s
karakter hossz. Ha egy sor a szveg i-edik szavval kezddik s a j-edik szval vgzdik, akkor az
elvlaszt szkzket is gyelembe vve t = s(
i
+
i+1
+ +
j
+j i) res hely marad a sor vgn.
Egy ilyen sor hibja legyen t
2
. A trdels hibja a nem res sorok hibinak sszege. Adjunk O(n
2
)
lpses algoritmust egy legkisebb hibj trdels meghatrozsra! (A szavak sorrendje rgztett.)
11. Az 1, 2, . . . , n szmoknak adott kt permutcija, x
1
, . . . , x
n
s y
1
, . . . , y
n
. A kt sorozat egy kzs
rszsorozata egy 1 i
1
< < i
k
n, s egy 1 j
1
< . . . < j
k
n indexsorozattal adhat meg,
ahol x
i
m
= y
j
m
teljesl minden 1 m k esetn. Adjunk O(n
2
) lpsszm algoritmust, ami az x
s y sorozatokban meghatroz egy leghosszabb kzs rszsorozatot!
12. [MSc felvteli 2009. tavasz] Adott egy n s egy m hossz 0-1 sorozat, a
1
, a
2
, . . . , a
n
, illetve
b
1
, b
2
, . . . , b
m
. Ezek alapjn egy T tmbt tltttnk ki a kvetkez mdon:
Ha 0 i n, akkor T[i, 0] = 0. Ha 0 j m, akkor T[0, j] = 0.
Ha 1 i n s 1 j m, akkor T[i, j] =
_
T[i 1, j 1] + 1 ha a
i
= b
j
max(T[i, j 1], T[i 1, j]) ha a
i
,= b
j
rja le, hogy mi a jelentse a T[i, j] rtknek! A kt sorozatnak milyen tulajdonsgt adja meg a
T[n, m] rtk?
13. Adottak M
1
, M
2
, . . . , M
n
munkk H
1
, H
2
, . . . , H
3
hatridkkel s P
1
, P
2
, . . . , P
n
protokkal. Mind-
egyik munka elvgzse pontosan 1 napunkba kerl (egy napon csak egy munkt vgezhetnk el).
Adjunk O(n
2
) lpsszm algoritmust, amely meghatrozza, hogy mely munkkat vllaljuk el a pro-
t maximalizlsa rdekben!
4. Szlessgi bejrs, legrvidebb utak, prostsok
1. Hatrozzuk meg a Bellmann-Ford algoritmussal a legrvidebb utat s s t kztt, nyomon kvetve az
algoritmust!
2. [ZH: 2009. prilis 24.] Dijsktra-algoritmussal hatrozza meg az albbi grfban az A pontbl az
sszes tbbi pontba men legrvidebb utak hosszt az x pozitv vals paramter fggvnyben. Min-
den lpsnl rja fel a tvolsgokat tartalmaz D tmb llapott s a KSZ halmaz elemeit.
3. Hogy nz ki egy irnytatlan teljes grf szlessgi bejrsa?
4. [Vizsga: 2012. mjus 24.] Klfldi sztndjakat szeretnnk megplyzni, ehhez ajnllevelekre van
szksgnk. sszesen n helyre adjuk be a plyzatot, minden plyzathoz kt ajnllevl szksges.
Ajnllevelet m darab embertl tudunk krni, de nem akarunk senkit sem tlsgosan terhelni, ezrt
egy embertl legfeljebb egy ajnllevelet akarunk krni. (Az ajnllevelek egyediek, egy levelet csak
egy plyzatnl tudunk felhasznlni.) Sajnos a plyzatok olyanok, hogy nem minden lehetsges
ajnl szemly j minden helyre (azt tudjuk, ki hova j). Adjon algoritmust, ami O((n + m)nm)
lpsben javasol egy lehetsges megoldst!
5
5. llistval adott a slyozott l G(V, E) grf. Tegyk fel, hogy az lek slyai az 1, 2, 3 szmok kzl
valk. Javasoljunk O(n+e) kltsg algoritmust az s V pontbl az sszes tovbbi v V pontokba
viv legrvidebb utak hossznak meghatrozsra!
6. Legfeljebb hny komponensbl llhat egy irnytott grf szlessgi bejrsa sorn keletkez erd?
7. Hatrozzuk meg a kvetkez grfban az lslyokat gy, hogy a Dijkstra algoritmus rossz eredmnyt
adjon!
8. Adjuk meg az sszes olyan minimlis lszm irnytott grfot (lslyokkal egytt), amely(ek)re az
albbi tblzat a Dijkstra algoritmusban szerepl D[ ] tmb vltozsait mutathatja. Adjuk meg a
legrvidebb utakat tartalmaz P[ ] tmb llapotait is!
v
1
v
2
v
3
v
4
v
5
v
6
0 2 6 7
0 2 5 9 6
0 2 5 6 9 6
0 2 5 6 8 6
0 2 5 6 7 6
9. [ZH: 2009. prilis 24.] Egy kezd autvezet a vrosban val kzlekedse sorn szeretne gyakorla-
tnak megfelel tvonalat vlasztani. Az thlzat egy irnytatlan grfknt van megadva, a cscsok
a keresztezdsek, az lek az utak, a cscsoknl adott, hogy nehz-e szmra a keresztezds. (Az
hogy nehz, a keresztezds tulajdonsga, nem azon mlik, merrl rkezik oda s s merre akar rajta
thaladni.) rjon le egy algoritmust, amivel meg lehet hatrozni, hogy az auts az egyik adott cscsnl
lev otthonbl mely cscsokba tud autval gy eljutni, hogy tja sorn kt nehz cscs soha nem
jn kzvetlenl egyms utn. Az algoritmus lpsszma llists megads esetn legyen O(n+e), ahol
n a cscsok s e az lek szma.
10. Egy G grfban pontosan egy l slya negatv, s nincs a grfban negatv sszsly irnytott kr.
Adjunk O(n
2
) lpsszm algoritmust az s V (G) pontbl az sszes tbbi pontba vezet legrvidebb
utak meghatrozsra!
11. [ZH: 2007. prilis 27.] Kutyastltatskor egy parkban egy gazda rgztett, egyenes szakaszokbl
ll tvonalon halad, aminek trspontjai t
1
, . . . , t
n
, a bejratot jellje t
0
, a kijratot t
n+1
. A kutyja
szabadon szaladgl, de a t
i
pontokban tallkozik a gazdjval. A t
i
s t
i+1
pontokban val tallkozs
kztt a kutya szeretne egy ft is megltogatni (minden i = 0, 1, . . . , n esetn legfeljebb egyet-egyet).
Legyenek adottak az s(t
i
, t
i+1
) tvolsgok (0 i n), valamint minden fnak az sszes t
i
ponttl
vett tvolsga. Tegyk fel, hogy kt tallkozs kztt a kutya legfeljebb ktszer akkora tvolsgot
tud megtenni, mint a gazda. Adjon algoritmust, ami segt a kutynak eldnteni, hogy mikor melyik
ft ltogassa meg ha a kutya clja, hogy minl tbb fnl jrjon. Az algoritmus lpsszma legyen
O(n
2
f +nf
2
), ahol f a parkban lev fk szmt jelli.
12. Legyen G = (V, E) mtrixszal adott n pont, slyozott l irnytott grf! Tegyk fel, hogy G nem
tartalmaz negatv sszhosszsg irnytott krt, tovbb azt, hogy a G-beli egyszer irnytott utak
legfeljebb 25 lbl llnak. Javasoljunk O(n
2
) kltsg mdszert az 1 V pontbl az sszes tovbbi
v V pontokba viv legrvidebb utak hossznak a meghatrozsra!
13. Adott llistval egy n pont, e l G sszefgg irnytatlan grf. Adjunk O(e) kltsg algoritmust
olyan X V (G) kzponti ponthalmaz keressre, melyre [X[ n/2 teljesl! Az X V (G) egy
kzponti ponthalmaz, ha G minden pontja vagy X-beli, vagy egyetlen llel elrhet valamelyik X-beli
pontbl.
5. Kupacok
6
1. [PZH: 2008. mjus 9.] A 10 elem A tmb els 8 elemre legyen A[i] = 2i(1 i 8), s tekintsk
ezt, mint egy 8 elem kupacot. Rajzolja le az ehhez tartoz ft! Hajtsa vgre rajta a BESZR(3),
BESZR(1), MINTR mveletsort, rajzolja le az egyes mveletek utn a kupacot (s jelezze a kzben
szksges rszlpseket is)!
2. [ZH: 2008. mrcius 28.] Egy orvosi rendelben a regisztrcinl kell bejelentkezni, ahol az ott
dolgozk eldntik, hogy a beteg az pp rendel kt orvos kzl A-hoz vagy B-hez kell kerljn, vagy
brmelyikkhz kerlhet. Ezen kvl, a beutal ismeretben, a beteghez egy, a srgssget kifejez,
szmot is rendelnek. Amikor valamelyik orvos vgzett egy beteggel, akkor azon betegek kzl, akiket
nem csak a msik orvos lthat el behvja a legnagyobb srgssgi szmt. Tegyk fel, hogy a kiosztott
srgssgi szmok egymstl klnbzek. rjon le egy olyan adatszerkezetet, ami abban az esetben
ha n beteg vrakozik, akkor a regisztrcin az j beteg beillesztst, illetve az orvosoknak a kvetkez
beteg kivlasztst O(log n) lpsben lehetv teszi.
3. [Vizsga: 2008. mjus 27.] Egy kupacba beraktunk egy j x elemet, majd vgrehajtottunk egy
MINTR mveletet. Mikor fordul el, hogy vgl az eredeti kupacot kapjuk vissza?
4. Adjunk hatkony (hehe :)) algoritmust egy kupac tizedik legkisebb elemnek meghatrozsra!
5. Adott egy n elemet tartalmaz kupac s egy k kulcs. Keressk meg a kupac k-nl kisebb elemeit! Ha
m ilyen elem van, akkor az algoritmus O(m) elemi lpst hasznlhat.
6. Adjunk konstans szorz erejig optimlis kltsg algoritmust az albbi problmra!
INPUT: Egy A[1 : n] tmb, amely eredetileg az 1, . . . , n szmokat tartalmazta kupacba rendezve, de
t elem megsrlt, s a helyre kerlt.
FELADAT: Talljuk meg a tmb sszes olyan kitltst, ami lehetett az eredeti!
7. Tervezznk olyan adatszerkezetet, ami egy rendezett halmaz elemeinek trolsra szolgl. A megva-
lstand mveletek: Felpt(n): n elembl felpti a struktrt; Mintr, Maxtr: a min. illetve max.
elem trlse; Beszr(x): az x elemet a struktrba illeszti. Az egyes mveletek kltsge ne legyen
tbb, mint Felpt: O(n); Mintr, Maxtr, Beszr: O(log n), ahol n a trolt elemek szma.
8. Igazoljuk, hogy egy n elembl ll kupac felptse (n) sszehasonltst ignyel!
6. Keress, rendezs
1. Legalbb hny sszehasonlts kell ahhoz, hogy egy n elem tmbbl egy olyan tagot talljunk meg,
ami a tmb 10 legkisebb eleme kz tartozik?
2. [ZH: 2004. prilis 8.] Az A[1 : n] tmbben lev elemekrl tudjuk, hogy A[1] ,= A[n]. Adjon O(log n)
sszehasonltst hasznl algoritmust, amely tall egy olyan i indexet, hogy A[i] ,= A[i + 1]!
3. [ZH: 2004. mrcius 29.] Az A[1 . . . n] tmbben egsz szmokat trolunk, ugyanaz a szm tbbszr
is szerepelhet. Hatrozzuk meg O(nlog n) lpsben az sszes olyan szmot, amelyik egynl tbbszr
fordul el a tmbben.
4. [Vizsga: 2007. jnius 19.] Adott a skon n pont, melyek koordinti (a
1
, b
1
) . . . (a
n
, b
n
). Olyan
P = (x, y) pontot keresnk a skon, amire az albbi sszeg minimlis.
n

i=1
([a
i
x[ +[b
i
y[)
Adjon algoritmust, ami O(nlog n) lpsben meghatroz egy ilyen P pontot.
5. Vzoljunk egy O(n) idigny algoritmust (az idkorlt bizonytsval egytt) n olyan egsz szmbl
ll sorozat rendezsre, melynek elemei az
(a) 1, . . . , 3n tartomnyba esnek!
(b) 1, . . . , n
7
1 tartomnyba esnek!
7
6. [ZH: 2007. prilis 27.] A vals szmokbl ll a
2
1
. . . a
2
n
sorozat egy darabig n, utna cskken.
Adjon O(n) sszehasonltst hasznl algoritmust, ami rendezi az a
1
, . . . a
n
sorozat!
7. Az A[1 : n] tmbben egy rendezett univerzum n klnbz eleme volt, nagysg szerint nvekv
sorrendben. Valaki idkzben megkeverte a tmb elemeit, de csak annyira, hogy minden egyes elem
j helye az eredetitl legfeljebb 5 tvolsgra esik. Adjunk O(n) futsidej algoritmust az eredeti
llapot helyrelltsra!
8. [ZH: 2010. prilis 19.] Az A tmbben n klnbz szmot trolunk. Tudjuk, hogy A[1] > A[2] s
A[n 1] < A[n]. Adjon algoritmust, mely O(log n) sszehasonltssal megtall a tmbben egy loklis
minimumot (ha van), azaz egy olyan 1 i n indexet, hogy A[i] tmbbeli szomszdai nagyobbak,
mint A[i].
9. A (nvekven) rendezett A[1 : n] tmb k elemt valaki megvltoztatta. A vltoztatsok helyeit nem
ismerjk. Javasoljunk O(n +k log k) kltsg algoritmust az gy mdostott tmb rendezsre!
10. Legyen adott egy egszekbl ll A[1 : n] tmb valamint egy b egsz szm. Szeretnnk hatkonyan
eldnteni, hogy van-e kt olyan i, j 1, . . . , n index, melyekre A[i] + A[j] = b. Oldjuk meg ezt a
feladatot O(nlog n) idben!
11. [Vizsga: 2009. jnius 11.] Adott a szmegyenesen n intervallum, [a
1
, b
1
], . . . , [a
n
, b
n
]. Azt akarjuk
tudni, hogy egytt milyen hossz rszt fednek le a szmegyenesbl (azaz, hogy mennyi az
n
i=1
[a
i
, b
i
]
sszhossza). Adjon O(nlog n) lpses algoritmust ennek a hossznak a meghatrozsra!
12. Adottak a sk egsz koordintj P
1
= (x
1
, y
1
), . . . , P
n
= (x
n
, y
n
) koordintj pontjai. Javasol-
junk O(n) kltsg mdszert olyan P
i
,= P
j
pontok kivlasztsra, amelyeken tmen egyenes ltal
meghatrozott flskok kzl az egyik tartalmazza az sszes pontot!
13. [Vizsga: 2004. jnius 10.] Az n mret (nem felttlenl rendezett) A tmb elemei klnbz
pozitv egsz szmok. Adjon algoritmust, amely meghatroz egy 1 k n szmot s kivlaszt k
klnbz elemet az A tmbbl gy, hogy a kivlasztott elemek sszege nem tbb, mint k
3
. Ha nincs
ilyen k, akkor az algoritmus jelezze ezt a tnyt! Az algoritmus lpsszma legyen O(nlog n)! (Kt
szm sszehasonltsa, sszadsa vagy szorzsa egy lpsnek szmt.)
14. [Vizsga: 2004. jnius 3.] A 2
k
1 elem A tmb elemei mind klnbzek s nvekv sorrendben
vannak. Minden elemet egy k hossz bitsorozat r le, teht tekinthetjk gy, hogy a 0, 1, 2, . . . , 2
k
1
szmokat troljuk egy kivtelvel. A feladat ennek a hinyz szmnak a megkeresse. Ehhez egy
lpsben valamelyik elem egy bitjre krdezhetnk r: a BIT(i, j) eljrs az A[i] elem j-edik bitjt
mondja meg. Adjon olyan algoritmust, amely a BIT eljrs O(k)-szori hvsval megtallja a hinyz
szmot (bitsorozatot).
15. Adott egy dobozban n klnbz mret anyacsavar, valamint egy msik dobozban a hozzjuk ill
apacsavarok. Kizrlag a kvetkez sszehasonltsi lehetsgnk van: egy apacsavarhoz hozzpr-
blunk egy anyacsavart. A prbnak hromfle kimenete lehet: apa<anya, apa=anya, apa>anya,
annak megfelelen, hogy az apacsavar kls tmrje hogyan viszonyul az anyacsavar bels tmr-
jhez. Szeretnnk minden anyacsavarhoz megtallni a megfelel apacsavart. Adjunk erre a feladatra
tlagosan O(nlog n) sszehasonltst felhasznl mdszert!
16. A 4 elem I abc felett adott kt sz: x = x
1
x
2
. . . x
n
s y = y
1
y
2
. . . y
k
, ahol 1 k n s i, j :
x
i
, y
j
I. Keressk az x szban az olyan rszszavakat, amelyek anagrammi y-nak, azaz az olyan
i indexeket, hogy az x
i
, x
i+1
, . . . , x
i+k1
betk megfelel sorrendbe rakva az y szt adjk. Adjunk
algoritmust, ami x-ben az sszes ilyen i helyet O(n) lpsben meghatrozza!
17. [Vizsga: 2003. mjus 30.] Adott sszesen 2n klnbz szm kt n elem halmazban, A =
a
1
, . . . , a
n
s B = b
1
, . . . , b
n
. Azt szeretnnk eldnteni minimlis szm sszehasonltsssal,
hogy a 2n szm kzl a legnagyobb az A vagy a B halmazban van-e. (Azaz nem kell felttlenl
meghatrozni, melyik elem a legnagyobb, csak azt, hogy melyik halmazba tartozik.) Mutassa meg,
hogy ehhez a feladathoz is legalbb annyi sszehasonlts kell, amennyi 2n elem kzl a maximlis
meghatrozshoz szksges.
18. [ZH: 2002. prilis 8.] Adottak a c
1
, c
2
, . . . , c
n
klnbz egsz szmok. Ezeket szeretnnk nagysg
szerint rendezni nvekv, vagy cskken sorrendbe gy, hogy a szoksos sszehasonlts helyett, most
a kvetkez krdseket lehet feltenni: Hrom kivlasztott elem kzl melyik a kzps? Bizonytsuk
be, hogy a leghatkonyabb algoritmus (nlog
2
n) sszehasonltst hasznl!
8
7. Keresfk, p-f fk, 2-3 fk
1. [Vizsga: 2007. jnius 5.] Adott egy n cscs s egy k cscs piros-fekete fa. A kt fban trolt
sszes elembl O(n +k) lpsben ksztsen rendezett tmbt.
2. [ZH: 2004. mrcius 29.] Egy binris keresfban csupa klnbz egsz szmot trolunk.
Lehetsges-e, hogy egy KERES(x) hvs sorn a keressi t mentn a 20, 18, 3, 15, 5, 8, 9 kulcso-
kat ltjuk ebben a sorrendben? Ha nem lehetsges, indokolja meg mirt nem, ha pedig lehetsges,
hatrozza meg az sszes olyan x egsz szmot, amire ez megtrtnhet.
3. [ZH: 2009. prilis 24.] Egy binris fa cscsai 0 s 9 kztti egsz szmokkal vannak megcmkzve.
Az inorder bejrs sorn a cmkk sorrendje: 9, 3, 1, 0, 4, 2, 7, 6, 8, 5, a postorder bejrsnl pedig
9, 1, 4, 0, 3, x, 7, 5, y, 2. Mi lehet az x s mi az y?
4. [ZH: 2009. prilis 24.] Egy 2-3 fa gykernek hrom a van, a benne szerepl kt rtk 40 s 50.
Mennyi lehet a trolt elemek minimlis, illetve maximlis szma, ha tudjuk, hogy csak pozitv egsz
szmokat trol a fa?
5. [Vizsga: 2009. jnius 17.] Az MSc-re jelentkezknek a felvtelit alkot 3 tmakr mindegyikbl
lesz egy rsbeli pontszmuk (P
1
, P
2
, P
3
), s keletkezik egy felvlteli pontszmuk is (FP). Tegyk fel,
hogy a P
i
-k 1 s 30 kztti egszek, mg az FP tetszleges pozitv egsz szm lehet. Adjon meg egy
olyan adatszerkezetet, amivel a kvetkez mveletek az adott idben vgrehajthatak (n a jelentkezk
szmt jelli)!
BESZR(P
1
, P
2
, P
3
, FP): az adott pontszmok beillesztse O(log n)
KERES(p): a pontosan p felvteli ponttal (FP = p) rendelkez jelentkezk szmt hatrozza meg
O(log n)
KORLT(i, q): az rsbelin az i-edik tmakrbl legalbb q pontot elrt jelentkezk szmt hatrozza
meg O(1)
6. Az [1, 178] intervallum sszes egszei egy 2-3 fban helyezkednek el. Tudjuk, hogy a gykrben kt
kulcs van, s ezek kzl az els 17. Mi lehet a msodik? Mirt?
7.
(a) Lehet-e tetszleges (adott) kulcshalmaz esetn olyan piros-fekete ft pteni, hogy az azonos
szinten lv elemek azonos sznek legyenek?
(b) Van-e olyan piros-fekete fa, ami nem gy nz ki?
8. [ZH: 2007. prilis 27.] Egy piros-fekete fban lehetsges-e, hogy a piros-fekete tulajdonsg meg-
srtse nlkl
(a) nhny fekete cscsot tvltoztathatunk pirosra?
(b) valamelyik (csak egy) fekete cscsot tvltoztathatjuk pirosra?
(Mst nem vltoztatunk a fn.)
9. Az S
1
s S
2
kulcshalmazokat kiegsztett 2-3 fkban troljuk. Ezek az eredeti 2-3 ftl annyiban
klnbznek csak, hogy minden cscsban nyilvn van tartva az onnan indul rszfa magassga.
Tudjuk tovbb, hogy az S
1
-beli kulcsok mind kisebbek, mint az S
2
-beliek. Javasoljunk hatkony
algoritmust a kt fa egyestsre!
10. [ZH: 2009. jnius 4.] Mutassa meg, hogyan kell a 2-3 fa BESZR eljrst mdostani, ha a fa
minden v cscsban a szoksos dolgokon kvl azt is nyilvntartjuk, hogy hny levl van a v gyker
rszfban!
11. [PZH: 2008. mjus 9.] Vzolja a 2-3 fnak (s mveleteinek) egy olyan mdostst, amiben
tovbbra is van KERES, BESZR, TRL, MIN, MAX mvelet, s ezeken kvl van mg RANG
s K-ADIK mvelet is, ahol RANG(x) azt adja vissza, hogy a trolt elemek kztt az x a rendezs
szerint hnyadik elem, a K-ADIK(i) pedig, hogy a rendezs szerint a trolt elemek kzl melyik az
i-edik. A mdosts sorn a felsorolt szoksos mveletek lpsszmnak nagysgrendje ne vltozzon,
s mindkt j mvelet lpsszma legyen O(log n), ahol n a trolt elemek szma.
9
12. [Vizsga: 2003. mrcius 31.] Tervezzen adatstruktrt a kvetkez felttelekkel. Termszetes sz-
mokat kell trolni, egy szm tbbszr is szerepelhet. A szksges mveletek:
BESZR(i): i egy jabb pldnyt troljuk
TRL(i): i egy pldnyt trljk
MINDTRL(i): i sszes pldnyt trljk
DARAB(i): visszaadja, hogy hny pldny van i-bl
ELEM(K): megmondja, a nagysg szerinti rendezsben a K-adik elem rtkt.
Az adatstruktra legyen olyan, hogy ha m-fle elemet trolunk, akkor mindegyik mvelet lpsignye
O(log m).
(Pldul ha a trolt elemek 1, 1, 3, 3, 3, 8, akkor DARAB(1) = 2, ELEM(4) = 3 s m = 3.)
13. [ZH: 2011. prilis 19.] Adott 2
k
1 klnbz szm, mindegyik az 1, 2, . . . , n halmazbl, ezekbl
kell egy O(k) mlysg binris keresft kszteni. Adjon olyan algoritmust, amely ezt O(n) lpsben
megcsinlja!
14. [Vizsga: 2009. mjus 28.] Adott egy n cscs binris keresfa. Ennek minden v cscsra meg
akarjuk hatrozni, hogy a v gyker rszfban hny darab v-nl kisebb elem van trolva. Adjon
algoritmust, ami ezt a feladatot O(n) lpsben megoldja!
15. [ZH: 2009. prilis 24.] Egy piros-feket fban jellje x s y a gykr kt t. Tudjuk, hogy fm(x) =
fm(y), de az x cscs kt gyereknek klnbzik a fekete magassga. Milyen szn lehet az y cscs?
16. [ZH: 2003. mrcius 31.] Egy 2-3 fba egyms utn 1000 j elemet illesztettnk be. Mutassa meg,
hogy ha ennek sorn egyszer sem kellett cscsot sztvgni, akkor a beillesztsek sorozata eltt mr
legalbb 2000 elemet troltunk a fban.
17. Egy binris keresfa cscsait egy, a gykrtl egy levlig men t szerint hrom osztlyba soroljuk: B
az ttl balra lev, U az tra es, J pedig az ttl jobbra lev cscsok halmazt jelli. Igaz-e mindig,
hogy minden B-beli cscs kulcsa kisebb tetszleges U-beli cscs kulcsnl, s minden U-belis cscs
kulcsa kisebb tetszleges J-beli cscs kulcsnl?
18. Adott n pont a skon, melyek pronknt mindkt koordintjukban klnbznek. Bizonytsuk be,
hogy pontosan egy binris fa ltezik, melynek cscsai az adott n pont, s az els koordinta szerint
a keresfa tulajdonsggal, a msodik szerint a kupac tulajdonsggal rendelkezik! (A kupac tulajdon-
sgba most nem rtjk bele, hogy a fa teljes binris fa legyen.)
19. [ZH: 2004. mrcius 29.] Egy kezdetben res 2-3 fba az 1, 2, . . . , n szmokat szrtuk be ebben a
sorrendben. Bizonytsa be, hogy a keletkezett fban a harmadfok cscsok szma O(log n).
20. Adott egy n = 2
k
1 pont teljes binris keresfa. A fban trolt elemek egszek az I = [1, 2
k
]
intervallumbl, s egy szm legfeljebb egyszer fordul el a fban. Utbbi felttel szerint pontosan egy
olyan i egsz szm van 1 s 2
k
kztt, amely nincs a fban. Adjunk O(log n) lpsszm algoritmust
i meghatrozsra!
21. Egy fban az x cscs slya legyen x leszrmazottainak szma. Egy binris ft szigoran binrisnak
mondunk, ha a levelek kivtelvel minden cscsnak pontosan 2 a van. Tegyk fel, hogy egy szigoran
binris fa minden x cscsra fennll, hogy
1
2
<
s uly(bal(x))
s uly(jobb(x))
< 2.
Bizonytsuk be, hogy ez csakis egy teljes fa lehet, azaz ha k szintje van, akkor a cscsok szma 2
k
1.
(Ez nem kifejezetten keresfzs feladat, de gy ltalban rdekes.)
8. Hash
1. Nyitott cmzssel hash-eltnk egy 11 elem tblba a h(k) = k (mod 11) hash-fggvny segtsgvel.
A kvetkez kulcsok rkeztek (a megadott sorrendben): 10, 22, 31, 4, 15, 28, 17, 88, 59. Adjuk meg a
tbla vgs llapott a kvetkez kt prbamdszerre:
(a) lineris prba;
(b) kvadratikus maradk prba!
10
2. [Vizsga: 2010. janur 21.] Ketts hashelst hasznlva szrja be egy kezdetben res, M = 11
mret tblba a kvetkez kulcsokat (ebben a sorrendben): 26, 3, 48, 14, 15, 7. A hasznlt hash
fggvny legyen
h(k) = (k (mod M)),
a prbasorozat hash fggvnye pedig
h

(k) = 1 + (k (mod M 5)).


Minden beszrs utn rajzolja le a tbla pillanatnyi llapott!
3. [ZH: 2010. prilis 19.] Egy M mret hash-tblba n < M elemet raktunk be nyitott cmzssel,
kvadratikus prbval, a h(x) hash-fggvnyt hasznlva. Ennek sorn t
1
tkzs trtnt (ennyiszer
kellett tovbb prblkoznunk, egy elem beszrsa sorn tbb tkzs is lehetett). Ugyanezt az n
elemet ugyanabban a sorrendben beszrtuk egy M
2
mret hash-tblba is, de most lineris prbval,
M h(x) + 1 hash-fggvnnyel, ekkor t
2
tkzs trtnt. Igazolja, hogy t
2
t
1
.
4. [Vizsga: 2011. jnius 9.] Az albbi hash-tblt az resbl kiindulva beszrsok sorozatval kaptuk.
Hatrozzuk meg a beszrsok sszes lehetsges sorrendjt, ha a hash-fggvny a h(x) = 3x (mod 10)
volt s a nyitott cmzs hash-elst lineris prbval alkalmaztuk!
0 1 2 3 4 5 6 7 8 9
5 19 3 33 23
5. A T[0 : M 1] tblban rekordokat trolunk nyitott cmzs hashelt szervezssel. Az tkzsek
feloldsra lineris prbt alkalmazunk. Tegyk fel, hogy a tbla hasznlata sorn egy hibs trls
trtnt: egy cellbl kitrltnk egy rekordot a trls-bit belltsa nlkl.
(a) Igaz-e, hogy a hibs trls helye mindig megtallhat?
(b) Adjunk hatkony (lineris) algoritmust a tbla megjavtsra! (Mdostsuk a tblt gy, hogy
megsznjenek a hibs trls negatv kvetkezmnyei!)
6. A T[0 : M 1] tblban 2n elemet helyeztnk el az els 3n helyen egy ismeretlen hash-fggvny
segtsgvel. A tblban minden 3i index hely resen maradt (0 i n). Legfeljebb hny tkzs
lehetett, ha az tkzsek feloldsra
(a) lineris prbt hasznltunk?
(b) kvadratikus prbt hasznltunk?
7. [ZH: 2005. prilis 8.] Egy m mret hash-tblban mr van nhny elem. Adjon O(m) lps-
szm algoritmust, amely meghatrozza, hogy egy jabb elem lineris prbval trtn beszrsakor
maximum hny tkzs trtnhet.
8. Mi a baja a h(k) = k
2
(mod 7) hash-fggvnynek, ha a tbla 7 mret?
9. Mutassuk meg, hogy nyitott cmzses hashels s lineris prba esetn mr kt kulcshoz tartoz
hash-fggvnyrtk megegyezse is okozhat tetszlegesen nagy mret csomsodst!
10. [Vizsga: 2008. jnius 3.] Az 1 s 91 kztti sszes 3-mal oszthat egsz szmot valamilyen sor-
rendben egy M mret hash-tblba raktuk a h(x) = x (mod M) hash-fggvny segtsgvel, lineris
prbval. Ennek sorn hny tkzs fordulhatott el, ha M = 35, illetve ha M = 36?
11. [Vizsga: 2005. mjus 26.] A kezdetben res M mret hash-tblba sorban beraktuk a
k
1
, k
2
, . . . , k
n
kulcsokat a h(x) x (mod M) hash-fggvnnyel, lineris prbval. Jellje t
1
a keletke-
zett tblban az egyms melletti foglalt mezk maximlis szmt. Amikor ugyanezt a k
1
, k
2
, . . . , k
n
sorozatot ugyanabban a sorrendben egy res 2M mret tblba rakjuk be a h(x) x (mod 2M)
hash-fggvnnyel, lineris prbval, akkor a kapott tbllban legyen t
2
az egyms melletti foglalt
mezk maximlis szma.
(a) Igazolja, hogy t
2
t
1
(b) Igaz-e, hogy t
1
2t
2
?
9. Mlysgi bejrs, DAG, valamint alkalmazsaik
11
1. A 6 pont irnytott G grf cscsait jellje x, y, z, u, v, w. A grf egy mlysgi bejrsnl a mlysgi,
ill. a befejezsi szmok a kvetkezk: x : 1, 6; y : 2, 4; z : 6, 5; u : 3, 3; v : 4, 1; w : 5, 2. Adjuk meg a
bejrshoz tartoz mlysgi fesztfa leit! Rekonstrulhat-e G az elz szmok ismeretben?
2. [ZH: 2008. mrcius 28.] Egy n n mret tblzat minden eleme egy egsz szm. A tblzat bal
als sarkbl akarunk eljutni a jobb fels sarkba gy, hogy egy lpsben a tblzatban vagy felfel
vagy jobbra egyet lpnk. Azt szeretnnk, hogy a lpegets sorn ltott elemek nvekv sorrendben
kvessk egymst. Egy ilyen t rtke a benne szerepl szmok sszege. Adjon O(n
2
) futsi idej
algoritmust, ami meghatrozza, hogy az adott tblzatban a szablyok szerinti utak rtkei kztt
mekkora a legnagyobb! (Persze, dinprog is kzenfekv, de most DAG-gal!)
3. [ZH: 2011. mrcius 28.] Van b darab bortkunk, az i-ediknek a hossza h
i
, a magassga m
i
. Az
i-edik bortkba akkor tudjuk berakni a j-edik bortkot, ha h
j
< h
i
s m
j
< m
i
is teljesl (nem
forgatjuk s nem is hajtogatjuk a bortkokat). Clunk, hogy minl hosszabb olyan lncot alaktsunk
ki, hogy az i-edikben benne van a j-edik, abban a k-adik, stb.
Legyen adott egy L > 0 egsz s a h
i
s m
i
szmok. Hogyan lehet O(b
2
) lpsben eldnteni, hogy
kialakthat-e a bortkokbl egy L hossz lnc?
4. [Vizsga: 2008. mjus 27.] llistval adott egy n pont e l irnytott grf. Azt szeretnnk tudni,
hogy van-e benne olyan minden pontot tartalmaz rszgrf, ami egy, a gykertl a levelek fel
irnytott fa. Adjon O(ne +n
2
) lpsszm algoritmust, ami ha van, tall egy ilyen rszgrfot.
5. [ZH: 2007. prilis 27.] Az n n mret tbla minden mezjre egy pozitv egsz szm van rva,
az i-edik sornak j-edik elemre A[i, j], ahol 0 i, j < n. Feladat, hogy az els oszlopbl eljussunk
az utols oszlopba gy, hogy egy lpsben mindig a kvetkez oszlopba lpnk, s azon bell, ha az
i-edik sorban voltunk, akkor a kvetkez lpsben vagy az (i 1) (mod n), vagy az i, vagy az (i +1)
(mod n) szm sorba kerlhetnk. Adjon O(n
2
) lpsszm algoritmust, ami meghatrozza, hogy az
els oszlop melyik elembl induljunk, ha azt akarjuk, hogy a bejrt mezkn lv szmok sszege
minimlis legyen (az utols oszlop brmelyik mezje lehet az utols olyan mez, amire rlpnk).
6. [Vizsga: 2010. jnius 3.] Egy falutrtnet rja n korbbi lakosrl gyjttt informcikat. A kr-
dsekre kapott vlaszok a kvetkez tpusak voltak:
S
i
szemly meghalt S
j
szletse eltt;
S
i
szemly lete sorn szletett S
j
;
S
i
szemly korbban szletett, mint S
j
;
S
i
korbban halt meg, mint S
j
.
Egy S
i
, S
j
prra nem biztos, hogy szerepel minden vlasztpus, s olyan pr is lehet, amely egyetlen
vlaszban sem szerepel egytt. Mivel az emberek idnknt rosszul emlkeznek, nem biztos, hogy
minden kapott informci helyes. Adjon algoritmust, amivel k db fenti tpus vlaszrl O(n + k)
lpsben eldnthet, hogy van-e kzttk ellentmonds.
7. [ZH: 2005. prilis 8.] Cirkuszi akrobatk egyms vllra llva minl nagyobb tornyot szeretnnek
ltrehozni (a toronyban minden szinten csak egy akrobata lesz). Eszttikai s gyakorlati szempontok
miatt egy ember vllra csak egy olyan llhat, aki nla alacsonyabb s knnyebb is. A cirkuszban
n akrobata van, adott mindegyikk magassga s slya. Adjon algoritmust, amely O(n
2
) lpsben
megadja a lehetsges legtbb emberbl ll torony sszelltst.
8. [ZH: 2007. prilis 27.] Tekintsk az olyan G irnytott grfokat, amelyekben ha eltekintnk az
lek irnytstl, akkor a kapott irnytatlan G

grf sszefgg. A G grf egy mlysgi bejrsnl


maximlisan hny olyan cscs lehet, amelyre a mlysgi s a befejezsi szm megegyezik?
9. Adjunk algoritmust, mely egy llistval megadott irnytatlan grfban vagy tall egy krt, vagy
igazolja a grf krmentessgt O([V [) idben (fggetlenl attl, hogy [E[ akr sokkal nagyobb is
lehet, mint [V [)!
10. [Vizsga: 2007. jnius 12.] Egy szmtgphlzatban n szmtgp van. Minden olyan esemnyt,
hogy az i-edik gp zenetet kld a j-ediknek (i, j, t) formban feljegyeznk, ahol a t egsz szm
az zenet kldsnek idpontjt jelli. Ugyanabban a t idpontban egy gp tbb gpnek is kldhet
zenetet. Ha a t idpontban az i-edik gp vrusos volt, akkor egy (i, j, t) zenet hatsra a j-edik
gp mefertzdhet, ami azt jelenti, hogy a t + 1 idponttl kezdve mr a j-edik gp is vrusos lehet.
12
Legyen adott az (i, j, t) hrmasoknak egy m hossz listja, valamint x, y s t
0
< t
1
egsz szmok.
Azt kell eldntennk, hogy ha az x-edik gp a t
0
idpontban vrusos volt, akkor lehet-e emiatt az
y-adik gp a t
1
idpontban vrusos. Adjon algoritmust, ami ezt a krdst O((t
1
t
0
)n + m) lps
utn megvlaszolja.
11. [Vizsga: 2007. jnius 19.] Egy elre rgztett tvonalon gy indulunk el, hogy az aut L literes
tankja tele van. ticlunkhoz gy akarunk eljutni, hogy legalbb egy fl tanknyi benzin maradjon
az autban. Tudjuk, hogy az utunkba es n benzinkt kzl melyikben mennyibe kerl a benzin,
tovbb, hogy kt szomszdos benzinkt kztt, valamint a kiindulponttl az els benzinktig,
illetve az utols benzinkttl a clunkig mennyi benzint fogyaszt az aut. Az egyszersg kedvrt ha
megllunk egy benzinktnl, akkor mindig tele tankolunk. Adjon algoritmust, ami O(Ln
2
) lpsben
megmondja, hogy hol lljunk meg tankolni ha azt akarjuk, hogy utunk sorn a benzinkltsg minimlis
legyen. (Kiegszts: feltesszk, hogy L egsz, tovbb a fogyaszts mindig egsz liter.
12. A G(V, E) sszefgg, irnytott grf minden le az 1, 2, . . . k szmok valmelyikvel van slyozva.
Egy t rtke legyen az ton tallhat lek slyainak maximuma. Adjunk O([E[ log k) futsidej
algoritmust az adott x, y V cscsok kzti legkisebb sly t rtknek meghatrozsra!
13. [Vizsga: 2003. mjus 30.] llistval adott egy G grf, melynek n cscsa s e le van. A grf
minden cscshoz hozz van rendelve egy 1 s k kztti egsz szm (cmke). Talljunk (ha ltezik)
olyan tarka utat a grfban, amelyben minden 1 i k cmke pontosan egyszer fordul el. Az
algoritmus lpsszma legyen O(k!(e +n)).
14. Bizonytsuk be, hogy minden G = (V, E) irnytott grf felbonthat kt DAG-ra; pontosabban az
lhalmaznak van olyan E
1
, E
2
partcija (E = E
1
E
2
s E
1
E
2
= ), hogy a G
1
= (V, E
1
) s a
G
2
= (V, E
2
) grfok DAG-ok!
10. Minimlis kltsg fesztfk
1. Mennyi az albbi grfban a minimlis fesztfa slya? (Gyakorlskppen mindhrom mdszerrel
Prim, Kruskal, Borvka csinljuk meg a fesztfa-keresst!)
2. Egy teljes grf ponthalmaza x
1
, x
2
, . . . , x
k
, y
1
, y
2
, . . . , y
l
. Az (x
i
, x
j
) lek kltsge (slya) 1, az (y
i
, y
j
)
lek 2, az (x
i
, y
j
) lek 3. Mennyibe kerl a legolcsbb fesztfa?
3. [Vizsga: 2005. jnius 23.] Irnytatlan grf trolsra adjon meg egy adatszerkezetet az albbi
mveletekkel:
JCSCS(v): a grfhoz hozzad egy j cscsot;
JL(u, v): a mr ltez u s v cscsok kz felvesz egy let;
VANT(u, v): igen rtket ad vissza, ha vezet az u s v cscsok kztt t, egybknt pedig nem
rtket.
Ha a trolt grfnak n cscsa van, akkor mindhrom mvelet lpsszma legyen O(log n).
4. [Vizsga: 2010. mjus 27.] Adott egy G = (V, E) irnytatlan, sszefgg, slyozott grf az l-
listjval valamint egy f E l. Tegyk fel, hogy a grfban minden l slya klnbz. Adjon
O([V [ +[E[) lpsszm algoritmust annak eldntsre, hogy van-e olyan minimlis fesztfa G-ben,
amely tartalmazza az f let!
13
5. [Vizsga: 2008. jnius 3.] llistval adott a G = (V, E) egyszer, sszefgg grf. A grf lei s-
lyozottak, a slyfggvny c : E 1, 1. Adjon algoritmust, ami G-ben O([V [ + [E[) lpsben
meghatrozza, hogy mennyi a minimlis slya egy olyan rszgrfnak, ami G minden pontjt tartal-
mazza s sszefgg.
6. [Vizsga: 2007. jnius 5.] tptskor a krnyken sok helyen felszedtk a jrdt. Az ptk 1-
tl n-ig megszmoztk a fontos pontokat (kapualj, tkeresztezds, stb.). A krnyk llapott kt
n n tblzat rja le. A J tblzatban J[i, j] = 1, ha az i s j pontok az utcn szomszdosak s
megmaradt az ezeket sszekt rszen a jrda, egybknt az rtk 0. A P tblzat az ideiglenesen
elhelyezhet pallkat rja le: ha az i s j pontok sszekthetek egy pallval, akkor P[i, j] ennek a
pallnak a kltsge. Amennyiben a kt pont nem kthet ssze egy pallval, akkor a tblzatban
szerepel. (Minden pall pontosan kt pontot rint.) Szeretnnk biztostani, hogy mindenhonnan
mindenhova el tudjunk jutni (hol jrdn hol palln haladva). Az ptk clja, hogy gy vlasszk
meg a pallk helyt, hogy minl kevesebb pallt kelljen hasznlniuk, s ezen bell a pallk rtkeinek
sszege minimlis legyen. rjon le egy algoritmust, ami O(n
2
) lpsben javasol egy ilyen elhelyezst.
(Egy pontra tetszlegesen sok pall illeszkedhet, s a gyalogosok az egy pontra illeszked pallk
brmelyikrl brmelyikre t tudnak lpni.)
7. Mtrixval adott egy G irnytatlan slyozott grf. Adott mg a G-nek egy F minimlis sly fesz-
tfja, s az F-nek egy f le. Adjon O(n
2
) lpsszm algoritmust, ami meghatrozza, hogy az f l
slyt meddig lehet gy felemelni, hogy az F a grf minimlis fesztfja maradjon.
8. [Vizsga: 2008. mjus 27.] llistval adott egy egyszer, sszefgg, slyozott irnytatlan G =
(V, E) grf amiben nincs kt egyforma sly l. Adjon O([V [ [E[) lpsszm algoritmust, ami
megadja a grfban a msodik legkisebb sly fesztft.
9. Legyen adva egy (egyszer, irnytatlan, sszefgg) n cscs G grf llistval, az lek slyozsval
egytt. Tegyk fel, hogy a G-bl a v
1
cscs, valamint a v
1
-re illeszked lek elhagysval keletkez
G

grf mg mindig sszefgg, s adott a G

egy minimlis kltsg fesztfja. Adjunk O(nlog n)


futsi idej algoritmust a G grf egy minimlis kltsg fesztfjnak elksztsre!
10. Hny le van az n pont egyszer sszefgg grfnak, ha pontosan 3 klnbz fesztfja van?
11. llistval adott egy sszefgg, egyszer, irnytatlan, n cscs, e l Ggrf csupa klnbz lsllyal.
Adjunk egy olyan O(e) kltsg algoritmust, ami a G grf egy minimlis fesztfjnak legalbb
2
3
n lt ellltja! (Azaz egy olyan lhalmazt keresnk, ami biztosan rsze egy minimlis kltsg
fesztfnak.)
12. Bizonytsuk be, hogy a piros-kk algoritmus akkor is helyesen mkdik, ha egy fesztfa kltsgt az
lslyok sszege helyett az lslyok maximumval deniljuk!
11. Bonyolultsgelmlet
1. Lssuk be, hogy az albbi problmk NP-beliek! Melyekrl tudjuk megmondani, hogy coNP-ben
vannak? Melyekrl, hogy P-ben?
(a)
1
= (G, k) [ G grf kisznezhet k sznnel
(b)
2
= G [ G irnytatlan grfban van Euler-kr
(c)
3
= (G, k) [ G irnytatlan grfban van k fggetlen pont
2. Bizonytsuk be, hogy a kvetkez problma P-beli:
=
_
G

G grf kisznezhet a piros, zld, srga, kk sznekkel gy,


hogy pontosan egy cscs legyen piros s pontosan kt cscs legyen kk
_
3. Tegyk fel, hogy van egy olyan F eljrsunk, ami egy input G grfra s k szmra 1 lps alatt meg-
mondja, hogy van-e G-ben legalbb k mret fggetlen ponthalmaz. Tervezznk olyan algoritmust,
ami polinomidben
(a) meghatrozza (G)-t!
(b) tall egy (G) mret fggetlen ponthalmazt!
14
4. Adjunk Karp-redukcit a 3-SZN nyelvrl a 4-SZN nyelvre!
5. [Vizsga: 2007. mjus 29.] A G irnytatlan grf minden x pontjhoz tartozik egy s(x) sly. Clunk,
hogy olyan fesztft talljunk a grfban, amiben a levelekhez tartoz slyok sszege minimlis.
Fogalmazza meg a feladathoz tartoz nyelvet s vagy lssa be rla, hogy P-ben van vagy azt, hogy
NP-teljes.
6. Bizonytsuk be a kvetkez problmrl, hogy NP-teljes, vagy azt, hogy P-beli!
L = G [ G irnytatlan teljes grf, amiben van Hamilton-kr
7. [Vizsga: 2008. jnius 10.] Tegyk fel, hogy P ,= NP. Az albbi felttelek kzl melyikbl kvet-
kezik s melyikbl nem kvetkezik hogy az X eldntsi problma nem P-beli?
(a) Egy NP-teljes Y problmra X Karp-reduklhat.
(b) Egy NP-teljes Y problma Karp-reduklhat X-re.
(c) az X problma NP-beli.
8. Lssuk be, hogy az albbi problmk NP-beliek! Melyekrl tudjuk megmondani, hogy coNP-ben
vannak? Melyekrl, hogy P-ben?
(a)
1
= (G, k) [ G pros grfban van teljes prosts
(b)
2
= (G, k) [ G pros grfban van k lbl ll prosts
(c)
3
= G [ G irnytatlan grf, van benne pontosan 100 lbl ll kr
(d)
4
= (G, k) [ G irnytatlan grf, van benne legalbb k lbl ll kr
(e)
5
=
_
(s
1
, s
2
, . . . , s
n
, b) [ i s
i
, b Z
+
; j
1
, . . . , j
k
(1 k n) :
k

l=1
s
j
l
= b
_
9. A G irnytatlan grf minden x pontjhoz tartozik egy s(x) sly. Clunk, hogy olyan fesztft tall-
junk a grfban, amiben a levelekhez tartoz slyok sszege minimlis. Fogalmazzuk meg a feladathoz
tartoz eldntsi problmt, s bizonytsuk be, hogy NP-beli!
10. Tegyk fel, hogy van egy algoritmusunk, ami polinom idben megmondja, hogy adott G grf
kisznezhet-e legfeljebb k db sznnel! (Vagyis input: G s k; output: igen/nem). Hogy tudnnk ennek
segtsgvel polinom idben meghatrozni (G)-t?
11. Tegyk fel, hogy van egy algoritmusunk, ami polinom idben megmondja, hogy adott G grf
kisznezhet-e legfeljebb k db sznnel! A fentiek rtelmben azt is megtudhatjuk polinom idben,
hogy mennyi (G). Hogyan tudnnk kisznezni polinom idben a grfot (G) sznnel?
12. Legyen a dntsi problma inputja egy G grf, az output pedig pontosan akkor igen, ha G
skbarajzolhat. Mutassuk meg, hogy NP coNP.
13. Mi az albbi problmk bonyolultsga, ha az input egy G(V, E) grf ([V [ = n, [E[ = e)? Termszetesen
bizonytsuk is be!
(a) Van-e G-ben egy legalbb 15 pont teljes rszgrf?
(b) Van-e G-ben legalbb n/100 hosszsg kr?
(c) Van-e G-ben olyan fesztfa, amelyben a maximlis fokszm legfeljebb 2?
(d) Van-e G-ben olyan fesztfa, amelyben a maximlis fokszm legfeljebb 3?
14. Bizonytsuk be, hogy a leghosszabb t meghatrozsa egy irnytott, lslyozott G grfban NP-teljes!
(Pontosabban az ehhez tartoz eldntsi problma.) Mskppen: bizonytsuk be, hogy
L = (G, k) [ G irnytott, lslyozott grf, van benne legalbb k sly t
NP-teljes!
15. [Vizsga: 2007. jnius 12.] Tudjuk, hogy a skgrfokbl ll nyelv P-ben van. Legyen a SK-
MAXKLIKK nyelv a kvetkez:
(G, k) [ G egy skgrf, amiben van k pont klikk
Mutassa meg, hogy ez a nyelv NP-teljes, vagy mutassa meg, hogy a nyelv P-ben van.
15
16. [Vizsga: 2009. mjus 28.] P-beli vagy NP-teljes az albbi problma? Adott egy G = (V, E)
irnytatlan grf s az a krds, hogy van-e olyan C kr a grfban, melyhez minden v , C cscsbl
vezet l.
17. [Vizsga: 2010. mjus 27.] Az rvz tbb helyen fenyegeti a gtakat, tudjuk, hogy n kritikus
hely van. Ezek kzl az i-ediknl a gt megfelel megerstshez h
i
darab homokzsk kell. Ha az
ersts nem trtnik meg (vagy csak kevesebb homokzskkal), akkor az i-edik helyen k
i
krt okoz
a foly. Adottak a h
i
s k
i
pozitv szmok, tovbb a gtak megerstshez sszesen rendelkezsre
ll homokzskok Z szma (Z > 0 egsz). Azt szeretnnk meghatrozni, hogy ennyi homokzskkal
hogyan tudjuk a krt minimalizlni, ha feltesszk, hogy a meg nem erstett pontokon keletkez krok
sszeaddnak.
Fogalmazza meg a feladatot eldntsi problmaknt s vagy adjon r polinomilis algoritmust vagy
igazolja, hogy a problma NP-teljes!
18. [Vizsga: 2010. mjus 27.] Az X problma bemenete egy binrisan felrt N > 0 egsz szm, s
akkor lesz a vlasz igen, ha N nem 2-hatvny. Az Y problma bemenete egy G egyszer grf, s akkor
lesz a vlasz igen, ha G cscsainak sznezshez 3-nl tbb szn kell. Ha feltesszk, hogy P ,= NP,
akkor van-e X Y , illetve Y X Karp-redukci?
19. [Vizsga: 2010. jnius 17.] Az X problmban adott egy G dag s egy k pozitv egsz szm, a
krds, hogy van-e G-ben legalbb k l t. Igaz-e, hogy X 3SZN, illetve, hogy 3SZN X?
20. [Vizsga: 2007. jnius 12.] Igazolja, hogy ha a 3SZN nyelv benne van coNP-ben, akkor NP =
coNP.
12. Egszrtk programozs
1. [Vizsga: 2009. jnius 11.] Egy adott egyszer, irnytatlan grfban maximlis mret prostst
akarunk tallni. rja le ezt a problmt egy egsz rtk programozsi feladatknt! (A kapott egsz
rtk programozsi feladatot nem kell megoldani.)
2. [Vizsga: 2009. jnius 4.] Egy adott egyszer, irnytatlan grfban maximlis mret teljes rszg-
rfot akarunk tallni. rja le ezt a problmt egy egsz rtk programozsi feladatknt! (A kapott
egsz rtk programozsi feladatot nem kell megoldani.)
3. [Vizsga: 2010. jnius 3.] Fogalmazza meg egsz rtk programozsi feladatknt az albbi prob-
lmt! Egy adott G = (V, E) irnytatlan egyszer grfban keresnk olyan maximlis mret D V
cscshalmazt, melyre teljesl, hogy minden x V cscsnak legfeljebb 2 szomszdja van a D halmaz-
ban!
4. [Vizsga: 2010. jnius 17.] Adott egy G = (V, E) egyszer, irnytatlan grf. Egy olyan W V
halmazt keresnk, amely a lehet legtbb cscsbl ll s teljesl r, hogy a grfban brmely 2 fggetlen
l 4 vgpontjbl W legfeljebb 2 pontot tartalmaz.
Hogyan lehet ezt a problmt egszrtk programozsi feladatknt felrni? (A kapott EP feladatot
nem kell megoldani!)
13. Kzelt algoritmusok
1. Bizonytsuk be, hogy a kvetkez algoritmus legfeljebb 2(G) ponttal lefog egy tetszleges G grfot:
Keresnk egy tovbb nem bvthet fggetlen lhalmazt, s kivlasztjuk ezen lek vgpontjait. les
ez a korlt?
16
2. [Vizsga: 2009. jnius 17.] A Ldapakols problmnak tekintsk azt a specilis esett, amikor az
n trgy mindegyike vagy a vagy b mret, ahol 0 < a < b < 1 s a +b = 1. Adjon ennek megoldsra
O(n) lpsszm algoritmust!
3. [Vizsga: 2009. mjus 28.] Egy csomagkld szolglatnl csupa egyforma dobozokba pakoljk az
elkldend rut. Cljuk az, hogy a ldkban marad res helyet kitlt anyagbl minl kevesebbre
legyen szksg. Igaz-e, hogy a Ldapakolsra megismert First Fit eljrs erre a problmra is egy
2-kzelt algoritmus?
4. [Vizsga: 2006. jnius 12.] Van n fjlunk, az i-edik fjl hosszt jellje h
i
. Tegyk fel, hogy a fjlok
hosszuk szerint nem cskken sorrendben kvetik egymst, azaz 0 < h
1
h
2
h
n
. Mentskor
kt egyforma mret lemez ll rendelkezsnkre. A mentsnek sorban kell trtnnie, elbb az els
fjlrl kell megmondani, melyik lemezre kerljn, azutn a msodikrl, stb. (Fjlokat sztvgni nem
szabad, minden fjl teljes egszben kerl az egyik vagy a msik lemezre.) Amikor a soron kvetkez
fjl mr egyik lemezre sem fr r, akkor abbahagyjuk az eljrst. Egy ilyen eljrs optimlis, ha a
lehet legtbb fjlt lehet segtsgvel kimenteni.
Mutassa meg, hogy az a moh eljrs, amikor a kvetkez fjlt oda tesszk, ahol tbb hely van, nem
felttlenl optimlis. Legfeljebb hny fjllal fogunk kevesebbet kimenteni ezzel a moh eljrssal az
optimlis (szintn sorrendben ment) megoldshoz kpest?
17
14. Megoldsok
18
2. Nagysgrendek
1. (a) log
2
f(n) =
log
100
f(n)
log
100
(2)
= c log
100
f(n). Innen kiaddik mindkett.
(b) O:

a
i
n
i
c n
k
kell. n
k
(> 0) osztssal a
k
+

a
i
1
n
ik
c, amibl mr knny ltni (analzis).
: teljesen hasonlan.
(c) 2
n+1
= 2 2
n
, ahonnan az els trivilis.
Tfh 2
2n
= O(2
n
). Ekkor n > n
0
esetn 2
2n
c 2
n
, ahonnan egy osztssal 2
n
c. Ez nyilvnvalan
nem lehetsges.
(d) max(f(n), g(n)) f(n) + g(n), ezrt O trivilisan addik. max(f(n), g(n))
f(n)+g(n)
2
= c
(f(n) +g(n)), ahonnan addik.
2. (a) Termszetesen lehet ilyen, pl. ha [x[ < n
0
.
(b) Lehet, hiszen 2007[x[ = O([x[) = O([x[ log [x[).
3. A favg megolds:
T(n) T(n 1) +
n
3
T(n 2) +
n
3
+
n 1
3
T(5) +
1
3
(n + (n 1) + + (n (n 6)))
= T(5) +
1
3
(
n

i=1
i (1 + 2 + 3 + 4 + 5)) = T(5) +
n(n + 1)
6
5
10 5 +
n(n + 1)
6
= 5 +
n(n + 1)
6
Innen egyszer bizonytani O(n
2
)-et, ahonnan O(n
3
) is rgtn addik. O(n)-rl nem tudunk semmit,
nincs kizrva, de nem is bizonythat (Vigyzat! Ha helyett = lenne, akkor mr nem ez lenne a
helyzet!).
Az elegns megolds (Vigyzat! Sok veszly!):
O(n
2
)-et bizonytjuk. n
0
= 5-re s c = 1-re igaz, mert T(5) 10 1 5
2
= 25. Indukcival tfh
valamilyen n >= 5-re igaz (azaz T(n) c n
2
= 1 n
2
), beltand, hogy n + 1-re is.
T(n+1) T(n)+
n + 1
3
cn
2
+
n + 1
3
= 1n
2
+
n + 1
3
n
2
+n+1 n
2
+2n+1 = (n+1)
2
= c(n+1)
2
,
pont amit bizonytani akartunk.
Figyelem! Itt a konstanst rgzteni kell elre, nem bnhatunk vele olyan lazn, mint a norml
bizonytsoknl! Vgig ugyanaz a c szerepel (jelen esetben 1-re rgztve, ms feladatnl lehet ms).
Az egyszersget az adta, hogy fels becslseket simn adhatunk (n helyett 2n-t runk, stb.). Ezzel
viszont pl. O(n)-t akkor sem lehetne ilyen simn kizrni, ha T(n) denciban helyett = lenne.
4. /(n)-et s B(n)-et felrjuk elszr rekurzvan, majd trjuk zrt alakra, ahonnan ki fog jnni (fel-
hasznlva, hogy 1 = n (n 1), valamint

k
i=0
c
i
=
c
k+1
1
c1
).
/(n) = 10 + 2/(n 1) = 10 + 2(10 + 2/(n 2)) = 10 + 10 2 + 2
2
/(n 2) =
= 10 + 10 2 + 2
2
(10 + 2/(n 3)) = 10 + 10 2 + 10 2
2
+ 2
3
/(n 3) =
= = 10(2
0
+ 2
1
+ 2
2
+ + 2
n2
) + 2
n1
/(1) = 10
n2

i=0
2
i
+ 2
n1
=
= 10(2
n1
1) + 2
n1
= 11 2
n1
10 = O(2
n
)
B(n) = 3 + 4B(n 1) = 3 + 4(3 + 4B(n 2)) = 3 + 3 4 + 4
2
B(n 2) =
= 3 + 3 4 + 4
2
(3 + 4B(n 3)) = 3 + 3 4 + 3 4
2
+ 4
3
B(n 3) =
= = 3(4
0
+ 4
1
+ 4
2
+ + 4
n2
) + 4
n1
B(1) = 3
n2

i=0
4
i
+ 4
n1
=
= 3(
4
n1
3

1
3
) + 4
n1
= 2 4
n1
1 = (4
n
)
Fentiekbl ltszik, hogy / a gyorsabb (fontos, hogy az egyikre O-t szmoltunk, a msikra -t; persze
itt minkett , ezrt nem kellett klnbzkppen szmolnunk).
19
5. (a) f c
f
g c
f
(c
g
h) = c

h (n > max(n
f
, n
g
) esetn), teht igaz.
(b) f c
f
g c
f
(c
g
h) = c

h (n > max(n
f
, n
g
) esetn), teht igaz.
6. f
2
= O(f
4
) = O(f
1
) = O(f
3
). Ez hrom szmols, nem rom le. Amit bizonyts nlkl fel lehet hozz
hasznlni: log n c

n.
7. (a) Termszetesen, hiszen a dencinak nem mond ellent.
(b) Termszetesen, hiszen ha [x[ < n
0
, akkor brmi lehet.
8. Megsejtjk, hogy f
2
(n) = O(f
3
(n)) = O(f
1
(n)). Most bebizonytjuk, denci szerint.
f
2
(n) = O(f
3
(n)): c > 0, n
0
> 0, hogy n > n
0
2007n
3
c(3
3n
). Ezt talaktva, konstanst hozzvve
c-hez n
3
c 27
n
, aminek az igazsgt mr nem kell bizonytani, trivilisnak tekinthet.
f
3
(n) = O(f
1
(n)): c > 0, n
0
> 0, hogy n > n
0
3
3n
c(2
100n
2
50n
). rhatjuk, hogy 3
3n

c2
50n
(2
50n
1), s mondjuk logaritmust vonva nlog 27 c

+ nlog 2
50
+ log(2
50n
1) = c

+ 50n +
log(2
50n
1). A kifejtetlen tag biztos pozitv, gy ez biztosan igaz brmely n > 0 s c 0 esetn.
Szmols nlkl, nem denci szerint nem lehet max. pontot kapni!
9. Nem kvetkezik, hiszen a pratlan n-ekrl semmit sem tudunk, ott lehet akr 2
n
is.
10. /-ra fels becslsnk van, gy kiszmolva O(. . . ) lenne. Az O fels becsls, gy mindkt algoritmus
lpsszmra csak fels becslsnk van, vagyis nem tudjuk eldnteni, melyik a gyorsabb (lehet mind-
kett akr pl. konstans lpsszm is).
Megjegyzs: itt nem volt r szksg, de ha a rekurzv kpletet fel akarnnk rni s ki akarnnk
szmolni, akkor (feltve, hogy /(1) = c, valamint nhny egszrsz jelet nagyvonalan elhanyagolva)
azt gy lehet (felhasznlva, hogy 1 =
n
2
log n
):
/(n) 5 + 2/(
n
2
) 5 + 2(5 + 2/(
n
4
)) = 5 + 5 2 + 2
2
/(
n
4
)
5 + 5 2 + 2
2
(5 + 2/(
n
8
)) = 5 + 5 2 + 5 2
2
+ 2
3
/(
n
16
)
5(2
0
+ 2
1
+ 2
2
+ + 2
log n
) + 2
log n
/(1) = 5
log n1

i=0
2
i
+c n =
= 5(2
log n
1) +c n = (5 +c)n 5 = O(n)
11. (a) x > max(n
f
, n
g
) esetn f(g(x)) c
f
3g(x) c
f
3 c
g
3x c

3x = c

h(x). (n
f
s n
g
az f-hez
s g-hez tartoz kszbszmot jelenti.)
(b) Ellenplda: f(x) = x
2
, g(x) = x
3
, h(x) = x
4
, ebbl f(g(x)) = (x
3
)
2
= x
6
. Ltszik, hogy a felttel
teljesl, viszont x
6
,= O(x
4
).
3. Dinamikus programozs
1. Felvesznk egy T[n n] tblzatot, ahol T[i, j] jelentse a kvetkez: a tblzat i. sor, j. oszlopba
mi a legnagyobb rtk, a szablyokat betart t rtke? Kitlts, ha az eredeti tblzat neve A:
T[i, j] =
_

_
ha A[i, j] A[i 1, j] s A[i, j] A[i, j 1]
T[i 1, j] +A[i, j] ha A[i, j] > A[i 1, j] s A[i, j] A[i, j 1]
T[i, j 1] +A[i, j] ha A[i, j] A[i 1, j] s A[i, j] > A[i, j 1]
max(T[i 1, j], T[i, j 1]) +A[i, j] ha A[i, j] > A[i 1, j] s A[i, j] > A[i, j 1]
T[1, 1] = A[1, 1], tovbb az esetleges tlindexelseket rtelemszeren kezeljk. A megoldst T[n, n]
tartalmazza, ami , ha nem vezet oda szablyos t. A helyessg bizonytsa indukcival pont az,
amit a kitltsi szably mond.
Mivel minden egyes mez kitltse konstans mveletet vesz ignybe, gy a teljes lpsszm O(n
2
).
2. Vlasztunk tetszlegesen egy gykeret, gy tudunk szintekrl beszlni. szrevesszk, hogy egy tet-
szleges pont, mint gykr ltal meghatrozott rszfban a maximlis sly fggetlen ponthalmaz
ktflekppen llhat el: vagy bevesszk az aktulis cscsot, s a lehet legnagyobb sly fggetlen
ponthalmazt kivlasztjuk az unokibl indul rszfkban, vagy nem vesszk be, s a lehet legna-
gyobb sly fggetlen ponthalmazt kivlasztjuk a gyerekeibl indul rszfkban. gy lentrl felfele
haladva minden cscsra meg tudjuk mondani, hogy a belle indul rszfban mi a keresett rtk, s
a teljes fa gykerben pont az egsz fra vonatkoz rtk fog szerepelni.
20
A lpsszmot gy nehz lenne kiszmolni, ha azt nznnk, hogy az egyes cscsokban milyen m-
veleteket vgznk, hiszen a gyerekek s unokk szmrl nem tudunk semmit. Inkbb azt clszer
vizsglni, hogy egy cscsot hnyszor vesznk a keznkbe: amikor t vizsgljuk, vagy a szljt, vagy a
nagyszljt. Vagyis n cscs esetn legfeljebb O(3n) = O(n) lpst tesznk, a bejrs megszervezse
pedig szintn lineris.
3. Felvesznk egy n m mret A mtrixot, ahol A[i, j] jelentse a kvetkez: az x
i
-n s y
j
-n vgzd
leghosszabb kzs rszsorozat hossza. Kitlts:
A[i, j] =
_
0 ha x
i
,= y
j
A[i 1, j 1] + 1 ha x
i
= y
j
A spec esetek (szlek) rtelemszeren. Ekkor a tblzatban a max. szm megadja a legnagyobb kzs
rszsorozat hosszt, onnan tlsan visszalpkedve megkapjuk magt a sorozatot. Tblzat kitltse
O(n
2
), a megolds megkeresse is megvan ennyibl (persze ezt nem muszj utlag, nyilvn a kitlts
kzben is nyilvntarthatjuk).
4. szrevesszk, hogy egy tetszleges b karakter eltti sszes a karakter meghatroz egy-egy ilyen szt.
A szvegben haladva ha a-t tallunk, akkor az eddigi a-k szmt nveljk eggyel, ha b-t, akkor
pedig a vgeredmnyhez hozzadjuk az a-szmll aktulis rtkt. Az algoritmus egy vgigolvassbl
megvan, azaz O(n), valamint helyes (ezt nagyon preczek indukcival is bebizonythatjk).
5. Mivel a kt sarok kztti tvolsg n + m 2, ezrt tnylegesen csak jobbra vagy lefele lphetnk.
Szoksosan egy nm mret A mtrixot tltnk, ahol A[i, j] jelentse: az i-edik sor j-edik oszlopra
hnyflekppen tudunk szablyosan eljutni. Kitltse:
A[1, 1] = 1
A[i, j] =
_
0 ha (i, j) tiltott
A[i 1, j] +A[i, j 1] ha (i, j) nem tiltott
Ez azrt j gy, mert tiltott mezre 0-flekppen mehetnk, egy nem tiltott mezre pedig csak fent-
rl vagy balrl. A megolds A[n, m]-ben lesz tallhat. Helyessg indukcival knnyen belthat,
lpsszm O(nm), mert egy n m mret mtrixot tltnk ki egy menetben.
6. Nagy meglepetsre egy n k mret tblzatot tltnk, ahol A[i, j] jelentse, hogy a szablyok
szerint haladva az (i, j) mezre hny megjellt elemet tartalmaz a legjobb t. Nyilvn A[n, k] fogja
tartalmazni a megoldst. Kitlts (ha M[i, j] pontosan akkor igaz, ha (i, j) megjellt):
A[1, 1] = M[1, 1]
A[i, j] = M[i, j] + max(A[i 1, j], A[i, j 1])
A lpsszm nyilvn O(nk).
7. Vegyk fel az m-hez tartoz teljes maradkrendszert egy (mondjuk bool) A tmbbe! Kezdetben
minden hely false. Az a
i
szm kzbevtelekor j : A[j] = true helyre lltsuk A[(j +a
i
) (mod m)]-et
true-ra, majd A[a
i
(mod m)]-et is. Ha A[1] true lesz, akkor kivlaszthat, ha a vgre sem, akkor nem.
Ezt be is kell bizonytani! Azt lltom, hogy a
i
kzbevtele utn pontosan azok az A[j]-k vannak true-
ra lltva, amik valahogy elllnak a
1
. . . a
i
kzl nhny sszegeknt (mod m). Indukcival nyilvn
igaz, hiszen a
1
vlasztsval csak a
1
(mod m) ll el. Tfh k-ra igaz, ekkor nzzk k +1-re. a
1
. . . a
k+1
kzl nhnyat vlasztva vagy vlasztjuk a
k+1
-et, vagy nem. Ha nem, akkor pontosan azok llnak el,
amik a
1
. . . a
k
kzl, ha igen, akkor egyrszt elllhat maga a
k+1
, msrszt az eddig elll szmok
mindegyikhez hozzvehetjk a
k+1
-et is. Ezrt a felttel igaz maradt, hiszen az sszes lehetsges
esetet lefedtk. A lpsszm polinomilis, hiszen O(nm) mveletet vgznk (minden szmhoz a teljes
tbln vgigmegynk), ami ebben a spec. esetben azrt polinomilis, mert m = O(n
2
). (Ha m-re nem
lenne korlt, akkor ez akr exponencilis is lehetne.)
8. Szoksosan tetszlegesen vlaszthatunk egy gykeret, gy beszlhetnk szintekrl s egyebekrl. Min-
den cscshoz egy szmot fogunk rendelni (modjuk l(i)), lentrl felfele haladva. Ez a szm azt jelenti,
hogy a levelekbl melyik a leghosszabb t az adott cscsba. Egy v cscs vizsglatakor meg kell vizs-
glni a rajta thalad utak kzl a leghosszabbat, ez a kt legnagyobb szmmal rendelkez gyerekn
(mondjuk i s j) keresztl megy, a hossza pedig l(i) + l(j) + 1. Ha ez hosszabb, mint az eddigi leg-
hosszabb, akkor megjegyezzk, l(v) pedig (ha l(i) volt a maximlis) = l(i)+1. Bizonyts indukcival;
21
lpszm: minden cscsot csak akkor vesznk kzbe, amikor t vizsgljuk, s a szljnek vizsgla-
takor a kt max. keressben, gy O(3n) = O(n), ebbe a kezdeti gykerests s a bejrs szervezse is
belefr.
9. Felvesznk egy T tmbt n mrettel. T[i] = 1 azt jelenti, hogy y
1
y
i
elll j sorozatokbl. T[i]
kitltse: T[i] = A(1, i) (T[1] A(2, i)) (T[j] A(j +1, i)) (T[i 1] A(i, i)). Magyarul
megnzzk, hogy az eddigi helyes rszekhez hozz tudjuk-e illeszteni az jat. A vgeredmny T[m]-ben
tallhat. Ez O(n
2
) db meghvsa A-nak legfeljebb n mret inputtal, innen kijn a j lpsszm.
10. Elg csnyn hangzik, de nem az. Szoksosan valami olyasmire kell gondolni, hogy egy sor vizsglat-
nl mr rendelkezsnkre lljon az sszes megelz rdekes adat. Vegynk fel egy D tmbt, ahol D[i]
rtke legyen az 1 . . . i szavak legkisebb hibj trdelsnek rtke! D[0] = 0 jelentse azt, hogy 0 szt
0 sorba hiba nlkl be tudunk rakni. Amikor pp az i-edik szt vizsgljuk, akkor a kvetkez lehets-
geink vannak: i-t kln sorba vesszk, az i 1-ig bezrlag pedig a lehet legjobb trdelst adjuk (j,
ez pont D[i1]!); i1-et s i-t vesszk egy sorba, az elttk levket pedig a legjobban trdeljk (csak
nem D[i 2]?);. . . ; 1-tl i-ig csinlunk egy sort. Meg is van a kplet: D[i] = min
j=1...i
(t
2
j,i
+D[j 1]),
a helyessget a fenti gondolatmenet adja. D[n] fogja az optimlis trdels rtkt megadni. Ha meg
is akarjuk kapni a tnyleges trdelst, akkor egy T tmbben nyilvntarthatjuk, hogy adott i-hez
D[i]-nl hogyan kaptuk a minimumot, azaz hol van a sortrs. T[n]-tl visszafele lpkedve megkapjuk
a sortrsek helyt. Mivel az i-edik sznl 1-tl i-ig vgignzzk az eddigi tmbt (azaz 1, 2, . . . , n
mveletet vgznk), a lpsszm O(n
2
) lesz.
11. Lsd kvetkez feladat.
12. Lsd elz feladat.
13. Alaktsuk a hatridket a mai naptl indul szmozsra (ha szksges). Legyen A[i] a legfeljebb i
index feladatokat hasznl maximlis prot temezs: A[0] = 0. Ha i > 0, akkor A[i] gy kaphat,
hogy az i index feladatot megksreljk a hatridejtl visszafel betenni a naptrunkba. Ha van
res hely, akkor odatesszk s A[i] = A[i 1] +P
i
. Ha nincs res hely, de a legkisebb prot munka
protja (P
j
) kisebb, mint P
i
, akkor az M
j
munka helyre tesszk be a M
i
munkt. Ez O(n
2
).
4. Szlessgi bejrs, legrvidebb utak, prostsok
1.
Lesz egy F tmbnk, amit szmtgpen tmbknt kezelnk, papron tblzatba rjuk. Az s-tl aktu-
lisan ismert legrvidebb utak hossza szerepel benne. Kezdetben az s-bl egy len elrhet cscsokhoz
tartozik nem rtk.
A B C D t
2 5
Most vgig kell menni minden i cscson, s megnzni az sszes i-be befut lre, hogy ennek segtsgvel
lehet-e javtani. Pl. a D cscshoz tartoz rtk gy szmtdik: min(F[D], F[A] + 3, F[C] 2) =
min(, 2 + 3, 5 2) = 3. Ezt az sszes cscsra vgig kell jtszani minden lpsben, azaz a k-adik
lpsben a kvetkezt vgezzk el:
F
k
[A] = min(F
k1
[A], F
k1
[s] + 5)
F
k
[B] = min(F
k1
[B], F
k1
[A] + 1, F
k1
[D] 1)
F
k
[C] = min(F
k1
[C], F
k1
[s] + 5, F
k1
[A] + 4, F
k1
[B] + 4)
F
k
[D] = min(F
k1
[D], F
k1
[A] + 3, F
k1
[C] 2)
F
k
[t] = min(F
k1
[t], F
k1
[B] + 5, F
k1
[D] + 6)
A tblzat teht a msodik lps utn:
22
A B C D t
2 5
2 3 5 3
Fontos, hogy mindig az elz sorbl vesszk az rtkeket, gy lehetsges az, hogy F[t] vgtelen maradt
(ugyanis min(, F[B] + 5, F[D] + 6) = min(, , )). A kvetkez sor:
A B C D t
2 5
2 3 5 3
2 2 5 3 8
Itt is vegyk szre, hogy t-hez mg az elz sorban szerepl rtkeket hasznltuk fel! Tovbb:
A B C D t
2 5
2 3 5 3
2 2 5 3 8
2 2 5 3 7
2 2 5 3 7
Ktflekppen is szrevehetjk, hogy befejezhetjk. Egyrszt ha kt sor megegyezik, akkor biztos nem
lesz a tovbbiakban vltozs, msrszt n cscs (itt 6) esetn n 1 sor (itt 5) kitltse biztos elg.
2.
A B C D E KSZ
0 3 5 A
0 3 6 5 A,B
0 3 6 5 5+x A,B,D
Ha 0 < x 1:
0 3 6 5 5+x A,B,D,E
0 3 6 5 5+x A,B,C,D,E
Ha 1 < x:
0 3 6 5 min(8, 5 +x) A,B,C,D
0 3 6 5 min(8, 5 +x) A,B,C,D,E
3. Egy csillag (1 db n 1 fok pont krl n 1 db elsfok pont).
4. A problmt egy pros gral fogjuk modellezni, az A cscsosztly a lehetsges ajnlk, a B cscs-
osztly pedig az ajnllevelek (minden plyzott helyre kt darab). Egy ajnl s egy ajnllevl
kztt pontosan akkkor menjen l, ha az adott ajnl megrhatja az adott ajnllevelet.
Ebben a grfban minden (rsz)megoldsnak megfelel egy prosts, ugyanis ha van egy helyes
(rsz)megoldsunk, akkor a megfelel ajnlk s ajnllevelek ltal kivlasztott lek fggetlenek lesz-
nek (ha nem lennnek, az azt jelenten, hogy vagy egy ajnl tbb levelet is rt, vagy egy ajnllevelet
tbben is rtak). Hasonlan lthat, hogy egy prostshoz mindig tartozik egy helyes rszmegolds.
A feladat teht az, hogy keressnk egy, az ajnllevelek cscshalmazt lefed prostst. Ezt a magyar
mdszerrel megtehetjk.
A lpsszm O([V [[E[) = O((m + 2n) m 2n) = O((n + m)nm), mert [V [ = m + 2n, tovbb
[E[ m 2n hiszen minden ajnllevl-osztlybeli cscs fokszma legfeljebb m lehet.
5. A 2 hossz leket helyettestsk 2, a 3 hosszakat 3 lellel. Az utak hossza gy az lszm lesz (minden
t annyi lbl ll gy, amilyen hossz az eredeti grfban lenne), gy a szlessgi bejrs hasznlhat
legrvidebb t keressre. A lpsszm O(3n + 3e) = O(n +e).
6. Vegynk egy n hossz irnytott utat! Ha a szlessgi bejrst az utols pontbl indtjuk, akkor
elakad, utna az utols elttibl, ott is elakad stb., gy pont n komponenst fog csinlni. Ennl tbbet
23
nem is lehet n pontbl.
7. Attl, hogy rakunk bele negatv lslyt, mg akr mkdhetne! gy kell negatv lslyt belerakni,
hogy romoljon el, pl:
A bal oldali cscsbl futtatva az als cscsra az alogritmus 1-et mond, pedig a legrvidebb t oda 0
lenne.
8. A tblzat alapjn vizsgljuk az algoritmus futst. Mivel a legkisebb lszm grf kell, ezrt csak
oda hzunk be let, ahol az egyes lpsekben javtottunk (ide pedig ktelez). Ltszik, hogy v
1
-bl
indulunk. Az els sor miatt innen v
2
-be, v
3
-ba s v
6
-ba vezet l, a megfelel slyokkal. A KSZ-be
v
2
-t vlasztjuk, s a javtsok miatt rjvnk, hogy kell lennie egy v
2
v
3
, v
2
v
4
s egy v
2
v
6
lnek, 3, 7
s 4 slyokkal. A tovbbiakban minden ugyangy (a grfot nem rajzolom fel). Csak az utols eltti
lpsben lesz vlasztsi lehetsg, hogy v
4
-et vagy v
6
-ot vegyk be a KSZ-be. Ettl fggen lesz
egy 2 sly v
4
v
5
s egy 1 sly v
6
v
5
lnk, vagy pont fordtva. A P tmb vltozsai (csak az els
esetben):
v
1
v
2
v
3
v
4
v
5
v
6
v
1
v
1
v
1
v
1
v
1
v
1
v
2
v
2
v
1
v
2
v
1
v
2
v
3
v
3
v
2
v
1
v
2
v
3
v
4
v
2
v
1
v
2
v
3
v
6
v
2
9. A grfbl kihagyjuk a nehezek kzti leket (4 pont). Szlessgi bejrssal megkeressk, hogy mely
cscsok vannak az otthonnal egy komponensben, ezek lesznek elrhetk (2 pont). Ez j, mert pon-
tosan azokat az leket hagytuk el, amiken nem mehetnk t, minden ms benne maradt (ezt lehet
preczebben is) (2 pont). Lpsszm: ltrlsek O(e), bejrs O(n + e), ami sszesen O(n + e) (2
pont).
10. Egy legrvidebb t ktfle lehet: vagy hasznlja a negatv let, vagy nem. Elszr futtassunk egy
Dijsktrt (a szpsg kedvrt hagyjuk ki a negatv let), az i cscsba vezet legrvidebb t hosszt
jellje d
+
i
. Jellje u azt a cscsot, amibl a negatv l indul. Vilgos, hogy d
+
u
helyes, hiszen a
negatv len nem mehetnk t az elrshez az eredeti grfban. Belle is indthatunk egy Dijsktrt
(az eredeti grfon), hiszen ekkor elszr a negatv l msik vgpontjt veszi be a KSZ halmazba,
ami a dencinak megfelel. Ezeket a legrvidebb rtkeket jellje d

i
. A legrvidebb utak teht
min(d
+
i
, d
+
u
+d

i
) kplettel szmolhatk. Lpsszm egy keress s kt Dijsktra, azaz O(e+n
2
+n
2
) =
O(n
2
) (az ugye mindenkinek vilgos, hogy egy egyszer grfban e = O(n
2
)).
11. Ez csak annyiban trkks, hogy a vrakozsokkal ellenttben ez nem legrvidebb t, hanem prosts.
Ugyanis minden gazda-ponthoz prostani akarunk egy ft. Egyik pontosztly teht a gazda pontjai,
msik a fk, akkor megy l, ha adott pontbl elrhet a fa gy, hogy utna a kutya vissza tud rni. Itt
kell max. prosts, ami mehet magyar mdszerrel, ami O([V [[E[) = O((n+f)(nf)) = O(n
2
f +nf
2
),
a felpts pedig megy O(nf)-ben, ami nyilvn belefr (a tvolsgszmts egy pont s fa s pont
kztt konstans id).
12. A Bellmann-Ford algoritmus sorn a tblzat i-edik sorban a kezdpontbl a legfeljebb i lszm
legrvidebb utak hosszai szerepelnek (ezt nem kell kln bizonytani!). Mivel tudjuk, hogy G-ben
minden t legfeljebb 25 lbl ll, a tblzatot elg a 25. sorig kitlteni. A lpsszm gy O(25n
2
) =
O(n
2
) lesz.
13. Az sszefggsg s irnytatlansg miatt a szlessgi bejrs egy szlessgi fesztft fog adni. A
pratlan szinteken lv pontok szma legyen x, rtelemszeren a prosok ekkor nx. Ha x < nx,
akkor vlasszuk kzponti halmaznak a pratlan szinten lv pontokat, egybknt a prosakat. Knnyen
ltszik, hogy minden pontra igaz, hogy vagy benne van a kivlasztott halmazban, vagy elrhet belle
egy lpsben (elg csak a szomszd szintre menni). A kivlasztott halmaz a skatulya-elv miatt biztos
legfeljebb n/2 mret lesz. A lpsszm O(n +e), ami az sszefggsg miatt O(e).
24
5. Kupacok
1.
2
4
8
16
10
6
12 14
BESZR(3):
2
4
8
16 3
10
6
12 14
2
4
3
16 8
10
6
12 14
2
3
4
16 8
10
6
12 14
BESZR(1):
2
3
4
16 8
10
1
6
12 14
. . .
1
2
4
16 8
3
10
6
12 14
MINTR:
10
2
4
16 8
3
6
12 14
2
10
4
16 8
3
6
12 14
2
3
4
16 8
10
6
12 14
25
2. 3 max-kupacot fogunk nyilvntartani, az egyikbe mennek A betegei, a msikba B betegei, a harma-
dikba A B betegei. Beszrs: a beteg tpustl fgg kupacba (ahol jelenleg m n beteg van),
O(log m) = O(log n). Ha A orvos vgez, akkor a max(max
A
, max
AB
) sorszm beteget hvja be
(mivel a keresett elemek a kupacok gykerben vannak, ezrt ez konstans lps), majd a kivlasztott
beteg kupacban csinlni kell egy MAXTR-t, ami, ha m < n eleme van, akkor O(log m) = O(log n)
lps. A helyessg trivilisan lthat.
3. Pontosan akkor, ha az eddig trolt elemeknl kisebb x. Ez a felttel szksges, hiszen a MINTR
a legkisebbet fogja visszaadni, s ha az j nem az lenne, akkor mindenkppen bennemaradni. Az
elgsgessg kicsit macerbb. Amit tudunk: x a gykrig felment, s legalulrl indult. MINTRNL
a legals kerl x helybe (nevezzk y-nak), az fog lefele menni. Azt akarjuk bizonytani, hogy pont
az eredeti helyre kerl vissza (s mindenki ms is, aki az ton volt). Indukcival az aktulis szintre:
a gykrben most y van, egyik gyereke az eddigi legkisebb, s pont azon az oldalon van, ahonnan
x eredetileg feljtt. Mindenkppen fog a gykrbe kerlni, ezrt y vele fog helyet cserlni, azaz
ugyanazon az ton indul lefele, ahonnan x jtt. Ez az rvels pontosan ugyangy megy tetszleges
kzbens szinten is, ha y aktulis pozcijt vesszk a gykrnek.
4. Konstans (azaz O(1)), hiszen az i-edik legkisebb elem a gykrtl legfeljebb i tvolsgra van, gy 2
10
elem kzl kell a tizedik legkisebbet megtallni, ami konstans lps (a legbutbb mdon is).
5. Lnyegben egy bejrs, elindulunk a gykrbl, s amg k-nl kisebb elemet tallunk, addig kirjuk,
ha k-t, akkor az adott gat hanyagoljuk, hiszen a kupac-tulajdonsg miatt arrafele csak mg
nagyobbak lehetnek. Legfeljebb a neknk j elemek mindkt gyerekt vizsgljuk meg feleslegesen,
vagyis O(2m) = O(m) vizsglatot vgznk.
6. O(n) lpsbl ki lehet tallni, hogy melyik 5 szm hinyzik. Ezeknek 5! sorrendje lehet, gy mindegyi-
ket vgig tudjuk prblni. Minden egyes elemnek csak a szljt s kt gyerekt kell megvizsglni,
hogy j-e velk a kupactulajdonsg (permutcinknt 15 vizsglat). Ha az adott permutci j, akkor
van egy lehetsges kitltsnk. Minden lehetsget megvizsgltunk, gy az algoritmus biztos helyes.
Lpsszm: O(n + 5! 15) = O(n). Ez azrt optimlis, mert pusztn az 5 srlt elem megtallsa is
(n) lps.
7. Hasznljunk egy min-kupacot s egy max-kupacot, valamint a trolt elemeket a kt kupacban kssk
ssz pointerekkel (hogy az egyik kupacban lv, a keznkben lv elemrl keress nlkl tudhassuk,
hogy hol tallhat a msik kupacban).
Felpt: pointerek inicializlsa + kt kupac ptse: O(n +n +n) = O(n).
Beszr: pointer inicializlsa + beszrs egyikbe s msikba: O(1 + log n + log n) = O(log n).
Mintr: min-kupacbl mintr, max-kupacban pedig a megfelel hely trlse (annyi klnbsggel az
eredeti algoritmushoz kpest, hogy nem a gykrbl, hanem valahonnan kzprl indtjuk a trlst,
de az algoritmus ugyangy fog mkdni). O(log n + log n) = O(log n).
Maxtr: ugyanaz mint elbb, csak szerepcservel.
8. Fejet asztalbaveren egyszer bizonyts: mivel a gykrben a legkisebb elem van, ezrt nem lehet
hamarabb felpteni, mint a legkisebb elemet megtallni, ami pedig nmagban is (n).
6. Keress, rendezs
1. n 10 elg, mert kidobhatunk tetszleges 9 elemet, utna kzttk a minimlis (amit n 9 1
lpsben megtallhatunk) biztos benne lesz az eredeti legkisebb 10-ben. De ennyi kell is, hiszen tfh
van olyan algoritmus, ami legfeljebb n 11 sszehasonltssal tall egy megfelel elemet. Ekkor az
sszehasonltottsgi grfnak legalbb 11 komponense lesz. gy, amennyiben a felttelezett algoritmus
mutat neknk egy elemet megoldsknt, ennek az elemnek a komponensn kvl az sszes tbbi elemet
egy elg nagy szmmal cskkentve az sszehasonltott elemek viszonya nem vltozik, de a kivlasztott
elem biztos nem lesz benne a legkisebb 10-ben, vagyis a felttelezett algoritmus rossz vlaszt ad.
2. Egy ilyen tmbben biztosan ltezik megfelel elempr, hiszen a nem ltezse azt jelenten, hogy
brmely kt szomszdos elem megegyezik, gy A[1] = A[2] = = A[n], ami ellentmond a felttelnek.
gy viszont a binris keress hasznlhat, ugyanis ha megfelezzk a tmbt, akkor a felezsnl lv
elem az els s utols kzl legalbb az egyikkel nem egyenl, gy a megfelel irnyban folytatva
az eljrst az eredeti tulajdonsggal rendelkez, de feleakkora tmbt kapunk. Vagyis az algoritmus
O(log n) lps alatt vgez.
3. A tmbt tudjuk rendezni O(nlog n) lpsben pl sszefslses rendezssel. gy biztos, hogy a tbb-
szr elfordul elemek pldnyai szomszdosak lesznek. Mr csak annyi a dolgunk, hogy vgigolvas-
26
suk a tmbt, s minden lpsben a kvetkez dolgokat tartjuk nyilvn: az elz elem, a legutols
tbbszrsknt krt elem, s az aktulis elem. Ha az aktulis nem egyezik az utolsval, akkor tovbb-
lpnk s az utolst aktualizljuk, ha egyezik, s az utols kirt ugyanez volt, akkor tovbblpnk,
ha nem ugyanez volt, akkor kirjuk s az utols kirtat aktualizljuk. A vgigolvass sorn min-
den cellban konstans sok mveletet vgznk, gy O(n) lpsben ksz vagyunk. A teljes lpsszm
O(nlog n) +O(n) = O(nlog n).
4. szrevesszk, hogy x s y koordinta fggetlen. Egy dimenziban: ha csak kt pont van, akkor kt
pont kztt brhol lehet, rajtuk kvl viszont rosszabb. Teht a kt szls pont kztt kell lennie, de
rajtuk kvl a kt szls kztt is stb, teht pratlan pont esetn a kzpsn, pros esetn a kzps
kett kzl valamelyiken vagy kzttk (indokls: ha nem gy lenne, akkor biztos, hogy tudnnk
jobbat csinlni). Teht koordintnknt egy rendezs, s kzps vlasztsa, teht O(nlog n)-ben
bent vagyunk.
5. (a) Ldarendezs, 3n ldval, O(n + 3n) = O(n).
(b) n-es szmrendszerben felrjuk a szmokat (ez darabonknt 7 oszts, vagyis konstans), utna
szmjegyenknt radix (az n alap szmrendszer miatt legfeljebb 7 jegyek lettek a szmok), azaz
O(7n + 7n) = O(n).
6. Elszr meg kell keresni a trspontot, ami O(n)-ben megvan. Az eltte lv sorozatban a pozitvok
sorozata n, a negatvok cskken, az utna lvben pont fordtva. gy a kt pozitv rszt (a htst
termszetesen megfordtva) O(n)-ben ssze tudjuk fslni, hasonlan a kt negatvot is. A vgn
egyszeren ssze kell ket ragasztani. Kltsg: pesszimistn is 4O(n), ami O(n).
7. Egy 5 hossz ablakot tolunk vgig a sorozaton. Az els elem biztos, hogy az els 5 elem kztt van, gy
kzttk minimumot keresnk, gy visszavezettk a feladatot egy n1 mret ugyanilyen feladatra.
5 elem kzl 4 sszehasonltssal tudunk minimumot keresni, ezt n-szer kell megtenni (a vge miatt
kicsit kevesebbszer, de ez mindegy), gy a lpsszm O(4n) = O(n).
8. A felttelekbl kvetkezik, hogy biztos van loklis minimum. Binris keresst hasznlunk, ha az adott
krben A[i] egy loklis minimum, akkor ksz vagyunk, ha A[i1] < A[i], akkor a jobb oldalt dobjuk el,
egybknt a balt. Teht egy lpsben vagy megtalltuk a krdses elemet, vagy kaptunk egy feleakkora
tmbt, ami ugyanolyan tulajdonsg, mint az eredeti. Ez gy O(log n) a binris keress elve miatt.
9. Menjnk vgig a tmbn, s a hibs prokat (amik rosszul llnak) szedjk kln. Ez azrt kell, mert
a rossz szomszdok kzl legalbb az egyiket biztos megvltoztattuk (hiba csak vltoztatsnl lehet),
viszont nem tudjuk, melyiket. gy legfeljebb 2k elemet vettnk ki, ezeket O(2k log 2k) = O(k log k)
idben tudjuk rendezni, utna O(n + k) idben sszefsls. A kezdeti vgigolvass O(n), vagyis
sszessgben tnyleg O(n +k log k) lpsben vgznk.
10. A tmbt O(nlog n)-ben tudjuk rendezni. Trivilis megoldsknt tehetjk azt, hogy i-re megkeres-
sk binris keresssel, hogy szerepel-e a tmbben b A[i] rtk. Ha igen, ksz vagyunk, ha egyszer
sem talltunk ilyet, akkor pedig nem. Ez legfeljebb n db binris keress, azaz ez a rsze is megvan
O(nlog n) lpsbl. (Persze egy egyszer dinamikus programmal a msodik rszt lineris idben is
megoldhatjuk.)
11. Rendezzk az intervallumokat nvekv sorrendbe az a
i
koordinta szerint! A kvetkez dolgokat
tartjuk nyilvn: min
a
, max
b
, sum. Kezdetben min
a
= a
1
, max
b
= b
1
.
Ha a sorban [a
i
, b
i
] intervallum kvetkezik: ha a
i
< max
b
, akkor mg a vizsglt intervallumban
vagyunk, gy max
b
= max(max
b
, b
i
). Ha a
i
> max
b
, akkor a kvetkez intervallumig biztos van
sznet. Ekkor ezt tesszk: sum+ = max
b
min
a
, min
a
= a
i
, max
b
= b
i
. A legutols intervallum
feldolgozsa utn (az utols nyitott intervallum-jellt lezrsa miatt) sum+ = max
b
min
a
.
Bizonyts pl. indukcival (lnyegben ez egy dinamikus programozsos feladat is egyben). Lpsszm:
a tnyleges szmols O(2n)-ben megvan, gy a renezssel egytt a lpsszm O(nlog n).
12. Minimlis y kooridntj pont lesz az egyik, ami meghatrozza, a msik pedig az y
min
-es pontbl
abszoltrtkben legnagyobb meredeksg. Ha ezeken kvl esne egy pont, akkor annak a meredek-
sge abszoltrtkben nagyobb lenne. Meredeksget szmolni kt pont ismeretben konstans, gy a
lpsszm kt minimumkeress, azaz O(n + n) = O(n). (Persze ugyanezt lehet x koordinta szerint
is, valamint minimum helyett maximummal is.)
13. szrevtel: ha van ilyen k, akkor ezeket kicserlhetjk a k legkisebbre, hiszen az sszegk gy csak
cskkenhet, ami tovbbra is j. Teht elg mindig a k legkisebbel foglalkozni. Rendezzk a tmbt,
s induljunk el az elejtl. Folyamatosan sszegezzk, s az els k-ra ahol igaz, ksz is vagyunk, ha
pedig vgigrtnk, s nem volt ilyen, akkor biztos nincs. Ez gy rendezs s egy vgigolvass, azaz
27
O(nlog n +n) = O(nlog n).
14. Mivel egy hinyzik, egy helyen elromlik a parits (aminek ellenrzshez elg az utols szmjegyre
rkrdezni). Ezt a helyet keressk meg binris keresssel, ami O(log(2
k
1)) = O(k).
15. A gyorsrendezs pontosan ilyen mveleteket vgez, az pont j lesz itt is, a lpsszm bizonytsval
egytt.
16. Csinljunk egy hisztogramot y-bl, vagyis egy 4 elem tmbbe rjuk be, hogy melyik karakterbl
hnyat tartalmaz (magyarul ldarendezs). Ez O(k) = O(n). Ezutn csinljunk egy hasonl tmbt x
els k elemre (T
x
), ami szintn ugyanennyi id. Ha a kt tmb megegyezik (ezt a 4 elem miatt O(4) =
O(1)-ben tudjuk ellenrizni), akkor talltunk egy anagrammt. Ha az ablakot (ami ltalnosan az
x
i
-nl kezddik) eggyel jobbra mozgatjuk, akkor --T
x
[x
i
] s ++T
x
[x
i
+ k + 1] (azaz az elhagyott
karaktert kivesszk, a kvetkezt betesszk). A helyessg knnyen lthat, lpsszm: mind az n
pozcira (igazbl kicsit kevesebbre) kt tmbmvelet s egy 4 hossz egyenlsgvizsglat (azaz
sszessgben konstans), teht O(n)-ben ez a rsze is megvan.
17. Tfh van olyan algoritmus, ami legfeljebb 2n 2 h-t hasznl. Ekkor adjunk neki 2n elemet, s
mi lesznk az ellensg. Jelljk meg magunknak az sszes elemet, mert az eddigi 0 krds alapjn
brmelyik lehet a maximlis. Tartsuk tovbb azt is nyilvn, hogy melyik halmazban mennyi elem
lehet globlisan maximlis (kezdetben n s n). Ha a felttelezett algoritmus rkrdez kt elemre,
akkor a kvetkezkppen mondjuk meg a viszonyukat:
a
i
?b
j
, az eddigi vlaszainkbl mr kiderlt a viszonyuk: megmondjuk az igazsgot (a lehetsges
maximlis elemek halmaza ilyenkor nem vltozik)
a
i
?a
j
: ha mr kiderlt a viszonyuk, akkor megmondjuk, ha nem, akkor tetszleges viszonyt
mondunk rjuk (ezt feljegyezzk), s kihzzuk a kisebbet a jelltek kzl, meg a szmllt is
megfelelen vltoztatjuk
b
i
?b
j
: mint elbb
a
i
?b
j
, az eddigi vlaszainkbl mg nem derl ki a viszonyuk: eldnthetjk, hogy melyik legyen
a kisebb. Ebben az esetben pontosan 1 elem maximalitsa lesz kizrva. gy vlasztjuk meg a
relcijukat, hogy abbl a halmazbl zrjuk ki valakinek a maximalitst, amelyikben a tbb
jellt van. Ezutn megcsinljuk a szksges adminisztrcit (kihzunk egy jelltet s a szmot
aktualizljuk).
Meg kell gondolni, hogy az gy denilt relcikhoz mindig tudunk szmokat kitallni (a ksbbi
anyagban lesz errl rszletesebben sz, lsd topologikus rendezs). Ezen tl mivel egy krdssel leg-
feljebb 1 elem maximalitsa zrhat ki, gy 2n 2 krds utn mg legalbb 2 olyan elem van, ami
lehet maximlis ( megvlaszthat maximlisnak gy, hogy az eddigi vlaszainkkal konzisztens le-
gyen). Viszont a stratgink miatt biztos, hogy mindkt halmaz tartalmaz ilyet, gy ennyi krds
biztos nem elg a feladat megoldshoz.
18. (nlog
2
n): ugyangy kell bizonytani, mint az h. alap rendezsek als korltjt, csak itt kett
helyett hrom lehetsgnk van, gy (log
3
n!) fog kijnni. Ez viszont nem baj, mert (log
3
n!) =
(log
2
n!) (nlog
2
n).
O(nlog
2
n) (vzlatosan): O(n) lpsbl tudunk szlsrtket keresni: vesznk 3 elemet vletlensze-
ren, a kzpst kidobjuk. Ezt megcsinljuk addig, amg csak 2 marad, ez lesz a minimlis s maxi-
mlis (nem tudjuk, melyik melyik). Az egyiket vlasszuk ki, ha ez x, akkor a kozepso(x, a, b, ) vagy
az a < b krdsre vlaszol, vagy az a > b krdsre (attl fgg, hogy a minimlisat vagy maximlisat
vlasztottuk, s egy adott x-re ez konzisztens). Azaz az gy implementlt < fggvny tnyleg egy
rendezst (vagy nvekv, vagy cskken; nem tudjuk) denil a szmainkon:
< (a, b)return kozepso(x, a, b) == a
Ez konstans idben szmolhat, teht brmely < opertort hasznl rendezs hasznlhat lesz ezzel
a trkkel, abbl pedig van O(nlog
2
n) lpsszm.
7. Keresfk, p-f fk, 2-3 fk
1. Tudjuk, hogy az inorder bejrs egy m cscs keresfbl O(m) lpsben rendezetten olvassa ki az
elemeket, valamint azt is, hogy kt rendezett, a s b hossz listt az sszefsls egy rendezett listba
tud rakni O(a +b) lpsben. gy inorder kiolvassuk az elemeket a kt p-f fbl, kzben sszefsljk
ket, ami O(n) +O(k) +O(n +k) = O(n +k) lps.
28
2. Lehet, hiszen az x < 20, x < 18, x > 3, x < 15, x > 8, x ,= 9-et kielgt szm lehet, vagyis 9 < x < 15
kzl brmi j, valamint a keresfa tulajdonsg sem srl sehol.
3. 2=gykr (postorder miatt), 7,6,8,5 a jobb rszfban van, tbbi a balban (inorder miatt) (3 pont).
Kt lehetsgnk van, x = 6, y = 8 s x = 8, y = 6. Ezeket kiprblva (az akutlis rszfa gykert
meghatrozva, mint elszr) kijn, hogy elbbi lehet (3 pont), utbbi nem (4 pont) (ezeket vgig kell
szmolni!).
4. A minimlis elemszm trivilis: mivel a gykrnek van 3 gyereke, gy van legalbb 3 levl, de ennyi
elg is.
A maximlis elemszmhoz meghatrozshoz elszr vizsgljuk meg, hogy egyltaln hny levl lehet
az egyes rszfkban. A lehetsges intervallumok a feladat szerint [1, . . . , 39], [40, . . . , 49] s [50, . . . , ],
vagyis (mivel a 2-3 fa tulajdonsgai miatt mindhrom rszfa azonos magassg), a legfeljebb 10 elem
kzps rszfa fog fels korltot jelenteni a magassgra. Mivel n elem trolsa esetn a szintszm
legfeljebb log n + 1|, gy ez a korlt 4. Vagyis a msik kt rszfban legfeljebb 3
41
= 27 elemet
trolhatunk (ami nem mond ellent az intervallumoknak), gy sszesen legfeljebb 27 + 10 + 27 = 64
elemnk lehet.
5. Tbbfle adatszerkezetet is felhasznlunk. FP-t troljuk egy megfelel keresfban (pl. egy 2-3 fban)
annyi mdostssal, hogy az egyes rtkekhez egy szmllt is rendelnk, amit pontazonos beszrs
esetn hasznlunk rtelemszeren. Innen az FP-re vonatkoz mveletek egyrtelmek, a lpsszmok
is jk.
P
i
nyilvntartsra a ldarendezshez hasonlan tartsunk nyilvn egy P
i
[1, . . . , 30] tmbt kezdetben
0-ra inicializlva. Ekkor egy P
i
pontos dolgozat beszrsakor a megfelel szmllt megnveljk eggyel
(O(1) lps). KORLT(i, q) ekkor gy szmolhat:

q
j=1
P
i
[j], s mivel q 30, ez tnyleg O(1) lps.
A ktfle adatszerkezt lpsszmait sszevetve lthatjuk, hogy az elrt mveletek az elrt lpssz-
mokba belefrnek.
6. Ekkor a bal rszfban legfeljebb 16 elemet trolhatunk, teht legfeljebb 5 szintje lehet. Mivel minden
levl egy szinten helyezkedik el, ezrt a kzps s jobb oldali rszfa is legfeljebb 5 szint lehet. Ebben
az esetben itt 81 s 81 elemet trolhatunk legfeljebb. Ezeket sszeadva kiderl, hogy ennyit muszj is,
hiszen csak gy lehet 178 elemet trolni. Ekkor viszont a msodik kulcs a gykrben 16 +81 +1 = 98
lesz.
7. (a) Kt cscs esetn pl. nem lehet, hiszen a gyereknek muszj pirosnak lennie, mg a testvre (aki
levl), fekete.
(b) Mi az hogy, nagyon is! Mondjuk az elz pldban szerepl.
8. (a) Van olyan fa, amiben ez igaz (pl. legalbb 3 elemet tartalmaz teljes fekete fa), de van olyan is,
ahol nem (pl. 2 db rtket trol fa). s mivel a krds gy rtelmezend, hogy tetszlegesre igaz-e,
ezrt az ellenplda bizonytja a nemleges vlaszt.
(b) Biztos, hogy nem, hiszen a gykeret nem pirosthatjuk be, ms helyen viszont ez aszimmetrikusan
megvltoztatn a fekete magassgot. (Termszetesen ide is elg lenne egy ellenplda.)
9. Legyenek a magassgok m
1
s m
2
! Az ltalnossg megsrtse nlkl legyen m
1
m
2
. Ekkor (mi-
vel minden kulcs az egyikben kisebb, mint a msikban) a levelek nem fognak tlapoldni. Ezrt
egyszeren az m
2
m
1
-edik szinten beszrjuk a szoksos algoritmussal a kisebbik fa gykert, ami
O(m
2
m
1
) lpsben menni is fog. Azrt knny eldnteni, hogy melyik a kisebb, mert a magass-
gokat ki tudjuk olvasni a gykrben. E felttel nlkl meg kne hatrozni a magassgokat is.
10. Ha nem kell cscsvgs, akkor a levltl a gykrig vgig megnveljk eggyel a trolt rtket (ez
belefr az O(log n)-be). Ha kell, akkor a vgott cscsokra jra kell lltani az rtket (a levelek fltt
ez trivilis, feljebb pedig a gyerekekbl konstans idben kiolvashat s sszeadhat), egybknt a +1
ugyangy terjed felfel. Ez az eset is belefr O(log n)-be.
11. Lnyegben ugyanaz, mint a kvetkez feladat.
12. A levelekben nem csak a konkrt rtket troljuk, hanem egy szmllt is, hogy az adott elembl
hnyat trolunk (gy kicsit mdosul a trls s beszrs). Azt is nyilvntartjuk tovbb minden
cscsra, hogy a belle kiindul rszfban hny elem van (ez ugyanaz, mint a kettvel ezeltti feladat,
csak a tbbszrs elemkre is kell egy kicsit gyelni). A K-adik elem egy keress, ahol (a rszfamretek
alapjn) mindig arra megynk, ahol mg pp nem lpjk tl K-t (rtelemszeren kzben folyamatosan
sszegezzk a kihagyott rszfk elemszmt). A fnak m levele lesz, a szoksos mveletek nem
vltoznak, gy a mveletek O(log m)-ben menni fognak. (Termszetesen clszer szpen lerni az
egyes mveleteket, ez csak egy vzlat. Tovbb p-f fval is meg lehetne oldani a feladatot, br azzal
29
kicsit macerbb.)
13. 2
k
1 szmot tudunk egy pontosan k szint teljes binris keresfban trolni, gy ilyet fogunk csinlni.
Mivel a fa alakja adott, csak azt kell kitallni, hogy melyik szm melyik cscsba kerljn. Viszont azt is
tudjuk, hogy egy binris keresft inorder bejrva a benne trolt elemeket nvekv sorrendben kapjuk
meg. gy meg tudjuk tenni, hogy felptnk egy biank k szint teljes binris ft, futtatunk r egy
inorder bejrst, s a nvekven rendezett elemeinkbl egy cscs megltogatsakor mindig odarakjuk
a kvetkezt. A szmok klnbzsge miatt 2
k
1 n, gy a fa felptse O(2
k
1) = O(n), a
szmok ldarendezse (minden felttel adott az alkalmazhatsghoz) O(2
k
1 +n) = O(n), majd a
bejrs O(2
k
1) = O(n). Ezeket sszegezve a lpsszm O(n).
14. Keresft deniljuk (1 pont). Minden egyes pontban a bal rszfk mrete kell (1 pont). Algoritmus
(dinprog): a cscsokban (v) kt szmot tartunk nyilvn: a bal rszfa mrett (b
v
), valamint a teljes
rszfa mrett (f
v
). Levelekben b
v
= 0, f
v
= 1 (ez nyilvn helyes). Lentrl felfele tltjk az rtkeket,
ha v gyerekei i s j, akkor b
v
= f
i
, f
v
= f
i
+f
j
+1 (ha a lentebbi rtkek helyesek, akkor induktvan
ez is helyes lesz). (algo: 4 pont, indokls: 2 pont). Minden cscsot legfeljebb 2-szer vizsglunk (amikor
t, s amikor a szljt tltjk), valamint a cscsokon megfelelen vgigmenni egy bejrssal lineris
id, gy a lpsszm O(n + 2n) = O(n) (2 pont).
15. Fekete magassg dencija (1 pont). x s y azonos szn, mert ha nem lenne az, akkor a gykrben
a fekete magassg a kt gon klnbz lenne (3 pont). x gyerekei klnbz sznek, mert ha
egyformk lennnek, akkor a kt gon srlne x-ben a fekete magassg (1 pont). x-nek teht van
piros gyereke, gy ktelezen fekete (4 pont). Ezekbl kvetkezik, hogy y is fekete (1 pont).
16. Ha nem volt cscsvgs, akkor mind az 1000 elemet egy 2 gyerek cscsba kellett beszrni. Ilyen (a
trivilis, 1 elemet trols esetet leszmtva) csak vgs sorn keletkezhet, gy mind az 1000 elemet
egy eredetileg is ltez 2 gyerek cscsba kellett beszrni, vagyis sszesen legalbb 2000 elem biztos,
hogy mr a fban volt.
17. Nem, ellenpldt lehet r adni egyszeren: a gykrben mondjuk legyen 1, ennek (egyetlen) a 3,
ennek pedig kt a, 2 s 4. Az t: 1, 3, 4, ettl balra van 2, ami nem kisebb, mint 1.
18. A gykr mindenkpp y szerint a legkisebb lesz, a kupac tulajdonsg miatt. A keresfa tulajdonsg
miatt egyrtelm, hogy kik lesznek a bal-, s kik a jobb rszfban, de itt megint egyrtelm a kupac
tulajdonsg miatt, hogy ki lesz az els, s gy tovbb rekurzvan.
19. Ezt gy elg macera lenne bizonytani, ezrt egy ennl ersebb dolgot fogunk. llts: az ilyen besz-
rsok sorn kizrlag a legjobboldali t mentn vannak harmadfok cscsok. Indukcival n = 1 . . .
kevs esetre knnyen ltszik. Tfh n-re igaz, most beszrjuk n + 1-et. Ez nyilvn a legjobboldalra
megy, ha ott ppen egy msodfok cscs van, akkor a felttelnek megfelelen csak ott hoz ltre egy
harmadfokt, ms nem vltozik. Ha cscsot vgunk, akkor msodfokak keletkeznek, ami nem za-
var minket, valamint a feljebbi szinten ugyangy a legjobboldalon keletkezik egy beszrsi igny. Ez
felfele rekurzvan pedig pont ugyangy mkdik, ahogy azt lttuk.
Mivel az O(log n) magassg fban csak egy gykr-levl ton lehetnek harmadfok cscsok, ezrt a
szmuk is legfeljebb O(log n).
20. A gykr bal s jobb rszfjban pontosan 2
k1
1 elem van, a bal oldaliak nagysg szerint a gykr
elttiek, a jobb oldaliak a gykr utniak. Ha a bal oldalrl hinyzik valaki, akkor a gykr 2
k1
+1,
ha a jobb oldalrl, akkor 2
k1
. Ezzel visszavezttk a feladatot egy eggyel kisebb magassgra, amit
rekurzvan ugyangy tudunk tovbb kezelni, teht a lpsszm a szintszmmal arnyos, azaz O(log n).
21. Indukcival szintszm szerint. l = 1 szintre biztos igaz. Tfh igaz valamilyen l1-ig, beltjuk l-re is. Az
indukcis felttel szerint a bal s jobb rszfja is teljes binris fa, a bennk trolt elemek szma 2
l
b
1
s 2
l
j
1, ha a bal- s jobb rszfa szintszma l
b
s l
j
. Tfh l
b
> l
j
, ekkor
2
l
b
1
2
l
j
1
>
22
l
j
1
2
l
j
1
>
22
l
j
2
2
l
j
1
= 2
(az els egyenltlensg azrt igaz, mert a bal rszfa legalbb 1 szinttel magasabb, mint a jobb, a
msodik pedig azrt, mert a nevezbl egy nagyobb szmot vonunk ki, gy a trt rtke cskken),
ami ellentmond a felttelnek. Hasonlan l
j
> l
b
is lehetetlen, gy l
b
= l
j
, pont, amit bizonytani
akartunk.
8. Hash
30
1. (a)
0 1 2 3 4 5 6 7 8 9 10
10
22 10
22 31 10
22 4 31 10
22 15 4 31 10
22 15 4 28 31 10
22 15 4 17 28 31 10
22 15 4 17 28 88 31 10
22 59 15 4 17 28 88 31 10
(b)
0 1 2 3 4 5 6 7 8 9 10
10
22 10
22 31 10
22 4 31 10
22 4 15 31 10
22 4 15 28 31 10
22 4 15 28 17 31 10
22 88 4 15 28 17 31 10
22 88 59 4 15 28 17 31 10
2.
0 1 2 3 4 5 6 7 8 9 10
26
3 26
48 3 26
14 48 3 26 15
14 48 3 26 7 15
3. Vegyk szre, hogy mivel az eredeti tblban a mretkorlt miatt legfeljebb M elemet troltunk,
valamint az j hash-fggvny minden eredeti hash-rtket M tvolsgra helyez egymstl, gy az
j tblban a klnbz hash-rtk elemek nem tkzhetnek lineris prba esetn (ehhez legalbb
M+1 eddigi tkzs kellett volna). gy tkzs csak azrt addhat a msodik esetben, mert az tkz
elemek hash-rtke megegyezik. Ezekben az esetekben viszont ugyanezek az tkzsek megtrtntek
az eredeti tblban is (a prbasorozatok rtkfggetlensge miatt). Teht legalbb annyi tkzs volt
az els, mint a msodik esetben.
4. Kiszmoljuk a hash-rtkeket, hogy tudjuk, ki van a helyn s ki nincs.
x 5 19 3 33 23
h(x) 5 7 9 9 9
Ltszik, hogy 5 s 23 a helyn van, mg senki ms nincs. Mivel tkzs esetn a lineris prba miatt
mindig eggyel balra lpnk, ezrt 23 hamarabb jtt, mint 33, az pedig hasonl okokbl hamarabb,
mint 3, az pedig hamarabb, mint 19 (indokls: ha nem gy lett volna, akkor az adott hely szabad
lett volna, s nem a jelenleg lthat pozciban lenne valaki). Az is ltszik, hogy 5 nem zavar senkit,
vagyis a beszrsi sorrend: 23 33 3 19, s 5 pedig tetszleges.
5. (a) Nem, pl egy elem volt a tblban, s azt trltk.
(b) Akkor okozhat ez problmt, ha az utols res hely mondjuk i, de egy i-nl kisebb pozcij
x elemre h(x) i. Ha ilyen helyzet nincs, akkor j a tbla. Arra kell gondolni, hogy a tbln
vgighaladva mindig az utols res hely rdekel minket. Induljunk el a vgrl, s minden elemre
szmoljuk ki h(x)-et, s nzzk meg, hogy a nyilvntartott utols resrl vagy arrl tlrl szrmazik-
e. Ha igen, akkor mshol nem lehetett hibs trls, hiszen ha mgsem ott lett volna, akkor a trls
eltt is rossz lett volna a tbla. Bkjk be az utols resen a trls-bitet! A tbla j lesz, hiszen helyes
trls utn is gy nzne ki a tbla. Egy vgigolvassbl megvoltunk, teht lineris az algoritmus.
31
6. (a) Mindkt esetben legfeljebb n, ugyanis 2 hossz csomink vannak, s minden csomban legfeljebb
1 tkzs trtnhetett (mindkt esetben tbb tkzs esetn legalbb 3 hossz lenne a csom). n
pedig lehetett is, pl lineris prba esetn minden 3i +2 helyre kt elemet beszrva, kvadratikus prba
esetn minden 3i + 1 helyre kt elemet beszrva.
(b) Lsd az elzt.
7. Nyilvn akkor trtnik a legtbb tkzs, ha a (ciklikus rtelemben) leghosszabb folytonosan kitlttt
rsz legvgre prbljuk beszrni az j elemet. gy elindulunk a tmb elejrl, az els res sorozat
vgig elmegynk (a ciklikussg miatt clszer gy), ez O(n), utna amg kitlttt sorozatot tallunk,
egy szmll rtkt nveljk. Ha res jn, akkor a szmll rtkt eltroljuk (feltve, hogy nagyobb
az eddig eltroltnl), majd nullzzuk. Ha krbertnk, akkor vge. Ez mg egy vgigolvass, teht
O(n) +O(n) = O(n) lpsbl megvan az egsz.
8. Nem az sszes lehetsges rtket veszi fel. Ki kell szmolni mind a 7 lehetsget, s ltszik.
9. Konstruktvan: legyen h(x
1
) = h(x
2
), ezutn h(x
i
) = h(x
i1
) 1. gy csak x
1
-hez s x
2
-hz tartoz
rtk egyezik meg, mgis lthat, hogy tetszleges nagy n-re n hossz csomnk lesz (s minden
beszrs tkzses volt).
10. M = 35 esetn a 3 . . . 33 szmok a sajt helykre kerlnek, 0 (mod 3) helyekre, 36 . . . 69 szmok 1
(mod 3) helyekre, 72 . . . 90 szmok pedig 2 (mod 3) helyekre, s mindegyik elfr, teht nincs tkzs.
M = 36-nl csak 3 . . . 33 fr be tkzs nlkl, 36 . . . 69 pont ugyanezekre a helyekre menne, 72 . . . 90
szintn. Innen mr ki lehet szmolni.
11. (a) Tfh t
2
> t
1
. Ekkor vegynk egy t
2
hossz sorozatot a 2M mret tblban, s nzzk meg,
hogy ezek hogyan helyezkednnek el az eredeti tblban (a beszrsok sorrendje megegyezik!). Ve-
gyk szre, hogy az eredetibe beszrskor, ha egyb tkzs nem volt, ugyanezt a sorozatot kapjuk
(ciklikus rtelemben, modulo aritmetika miatt), vagy esetleg hosszabbat is (lineris prba miatt). Ez
ellentmond a felttelnek, teht t
2
t
1
.
(b) Ellenplda: [0[4[2[ (mod 3), de [0[ [2[ [4[ [ (mod 6), t
1
= 3, t
2
= 1, s 3 2 1.
9. Mlysgi bejrs, DAG, valamint alkalmazsaik
1. A mlysgi szmok jelentik a sorrendet, ami szerint megltogattuk a cscsokat. Teht x volt az
els, ebbl megy l y-ba, y-bl u-ba, majd u-bl v-be. v befejezsi szma miatt tudjuk, hogy v-
bl nem tudtunk tovbblpni, ezrt visszalptnk u-ba. Viszont u mg nincs befejezve, gy van egy
u w lnk is, ahonnan megint visszalptnk. Most visszalpnk u-bl, majd y-bl is, s ltjuk,
hogy x-bl mentnk z-be (x z l). Ezek utn visszalpdeltnk, s elkszltnk. (Ha egy hasonl
vizsgafeladatban valaki felrajzolja indokls nlkl a ft, az legjobb esetben is legfeljebb 4 pontot r a
10-bl.)
Termszetesen G nem rekonstrulhat, mert csak az adott bejrs szerinti faleket tudjuk vissza-
lltani, az elre-, vissza- s keresztlekrl nincs informcink (pontosabban nhny l ltezst ki
tudnnk zrni, de ez nem elg a grf rekonstrulshoz).
2. Felvesznk egy grfot: cscsai a tblzat mezi, lei a mezk kztti megengedett lpsek (a nve-
kedsi felttelt is gyelembe vve), az lslyok a mezk rtkei. Knny ltni, hogy egy, a bal als
saroknak megfelel cscsbl a jobb felsig tart t pont egy megengedett lpegets, gy ebben a
grfban egy leghosszabb utat kell keresni a bal als cscsbl indulva. A lpsi szablyok miatt a grf
DAG, gy O([V [ + [E[) lpsben ez megtehet, ami jelen esetben O(n
2
+ 2n
2
) = O(n
2
), hiszen n
2
cscsunk van, s minden cscsbl legfeljebb kt l indul.
3. ptnk egy grfot, melynek cscsai a bortkok, s i cscsbl pontosan akkor megy l j-be, ha a
j bortk belerakhat i-be. Ekkor egy irnytott t a grfban megfelel egy helyes bortklncnak,
tovbb egy helyes bortklnc mindig felrhat egy irnytott tknt a grfban. Ez a grf DAG,
hiszen ha lenne benne irnytott kr, akkor ez azt jelenten, hogy valamely bortk belefr sajt
magba.
Innen mr ltszik, hogy ebben a grfban leghosszabb utat kell keresni, s ha ez legalbb L hossz,
akkor van ilyen lnc (s meg is talltuk), egybknt nincs. Mivel egy DAG-unk van b csccsal s O(b
2
)
llel, gy a leghosszabb t megkeresse O(b +b
2
) = O(b
2
) lps lesz.
4. Minden cscsbl egy mlysgi bejrssal ellenrizzk, hogy ilyen-e. Ha tallunk, akkor megllunk, ha
nem, akkor pedig nem is lehet (klnben valamelyik bejrs megadta volna). Ez sszesen O(n(n +
e)) = O(ne +n
2
).
5. A tbla mezit vesszk egy grf cscsainak, az lek a megengedett lpseket jellik, slyuk a mez
32
slya, ahonnan indulnak. Legyen egy forrs, ami az sszes els oszlopbelihez hozz van ktve 0 sllyal,
s egy nyel, amibe az utols oszlopbl vezetnek lek. gy egy megengedett lpkeds pont egy tnak
fog megfelelni a grfban a forrstl a nyelig. A grf DAG, a lpsek dencija miatt. [V [ = O(n
2
),
[E[ = O(n
2
) (minden cscsbl legfeljebb 3 l indul, a forrsbl pedig n db), gy a legkisebb sszeg
lpkeds pont egy legrvidebb t a forrsbl a nyelbe, ami O([V [ +[E[) = O(n
2
) lpsben megvan.
6. Vegynk fel egy 2n cscs grfot, ahol az egyes cscsok adott szemly szletsnek s hallnak
felelnek meg (S
i
-re v
i,sz
s v
i,h
). A grf lei jelentik az idbeli megelzst, azaz v
k
-bl v
l
-be fut l azt
jelenti, hogy v
k
esemny v
l
eltt trtnt. A szletsi s hall cscsokat szemlyenknt rtelemszeren
sszektjk. A tbbi l az informcikbl jn, pl. S
i
szemly lete sorn szletett S
j
esetn egy
(v
i,sz
, v
j,sz
) s (v
j,sz
, v
i,h
) let hzunk be (a tbbi is rtelemszeren). Az informcikban pontosan
akkor nincs ellentmonds, ha a grf DAG (egyik irny: ha lenne ellentmonds, akkor az krt jelentene
a grfban; msik irny: ha kr van a grfban, az egy esemny sajt maga eltti bekvetkeztt jelenti,
azaz ellentmonds). [V [ = n, [E[ = O(n+2k) (let lek s lltsonknt legfeljebb kt l), DAG-sg
eldntse mlysgi bejrssal O([V [ +[E[) = O(n +k).
7. Felvesznk egy irnytott grfot, ahol a cscsok az akrobatk, kt akrobata kztt akkor fut
l (rtelemszer irnytssal), ha az egyik rllhat a msikra. Egy irnytott t a grfban pont
egy helyes egymsrallsnak felel meg. A grf DAG, ha nem lenne az, akkor valaki sajt mag-
nl nehezebb s magasabb lenne. A leghosszabb utat keressk, ami mlysgi bejrs segtsgvel
O([V [ +[E[) = O(n +n
2
) = O(n
2
) ebben az esetben.
8. n, ilyen pldul egy irnytott t, ahol pont az irnnyal ellenttesen vesszk a cscsokat. Tbb nem
lehet, hiszen n cscsa van a grfnak.
9. Ha egy irnytatlan grfban n 1 lnl tbb van, akkor biztos van benne kr (de ha ennl keve-
sebb, attl mg lehet benne kr!). gy indtunk egy mlysgi bejrst, amit n l vizsglata utn
automatikusan lelltunk, egybknt meg magtl is a megadott lpskorltban megll.
10. Vegynk fel egy grfot, cscsai a szmtgpek minden idpillanatban t
0
s t
1
kztt, lei (irny-
tottak) az zenetek. Vegynk fel mg leket az ugyanahhoz a gphez tartoz szomszdos idpontok
kztt is elrefele! Ebben a grfban az x gpbl pontosan azok rhetk el irnytott ton, akik le-
hetnek vrusosak (ezt kicsit indokolni kell). gy x-bl egy bejrst indtva megtalljuk a krdses
gpeket. [V [ = O(n(t
1
t
0
)), [E[ = O(n(t
1
t
0
) + m) (sajt lek s legfeljebb m zenet), gy a
bejrs lpsszma O((t
1
t
0
)n +m).
11. ptnk egy grfot, ami mind az n kzbees benzinkthoz (+ a kezd- s vgponthoz) tartalmaz L cs-
csot; v
i,l
jelentse: az i-edik kthoz l liternyi benzinnel rkeztnk. Az lek egyrtelmen behzhatk a
fogyaszts alapjn (vagy tankolunk s gy megynk tovbb, vagy nem tankolunk), gy minden cscs-
bl legfeljebb 2 l indul ki; a felttelek alapjn tiltottakat (elfogy benzin, kevs benzinnel clbars)
eleve nem hzzuk be. Az lek slya 0, ha nem tankolunk, s a tankols kltsge (a tankoland mennyi-
sg s az r ismeretben konstans idben meghatrozhat), ha tankolunk. Ebben a grfban egy leg-
rvidebb t pont a legolcsbb utazst fogja jelenteni. A grf DAG (csak benzinkutak kztt, elrefele
mennek lek), gy a legrvidebb t megkeressnek lpsszma O([V [ +[E[) = O(Ln+2Ln) = O(Ln),
ami pont j is. (Ha nem csak a szomszdos kutakat nznnk, hanem minden ktbl behznnk az
sszes let, ahova eljuthatunk, akkor kutanknt s literenknt 2 helyett O(n) l indulhatna ki, gy
addna ki O(Ln
2
) termszetesen O(Ln) = O(Ln
2
), gy a lert megolds is helyes).
12. Adott i szmra meg tudjuk nzni, hogy x s y cscs kztt van-e legfeljebb i sly t, azaz az
i-nl nem nagyobb sly lek kihagysval x-bl van-e t y-ba. A legkisebb olyan i szm, amire
van megfelel t, pont a minimlis sly t slya. Mivel csak 1, . . . , k kztti lslyaink vannak,
binris keresssel meg tudjuk keresni a megfelel i-t. A szksges t ltezsnek eldntse mehet pl
mlysgi bejrssal, ami O([E[ +[V [), viszont itt az sszefggsg miatt [V [ = O([E[). sszesen teht
a lpsszm O([E[ log k).
13. Ha adott egy permutci, akkor egy bejrssal O(e + n) lpsben el tudom dnteni, hogy van-e
megfelel, k hossz t (csak a szerinti aktulisan kvetkez cmkj leket vesszk lteznek a
bejrs lpsei sorn). sszesen k! permutci lehet, gy mindet vgig tudjuk nzni O(k!(e + n))
lpsben.
14. Indukcival a pontszmra. n = 1-re trivilisan igaz. Tfh n-re igaz, krds, hogy igaz-e n + 1 pontra?
Ha van egy n+1 pont irnytott grfunk, akkor vletlenszeren vlasszuk ki egy pontjt. A maradk
n az indukcis feltevs szerint felbonthat megfelen kt DAG-ra (persze simn lehet, hogy az egyik,
msik, vagy mindkett akr 0 let tartalmaz, de ez minket nem zavar), ezeknek van egy topologikus
33
sorrendje. Az n + 1-edik pont bejv leit rendeljk az egyik DAG-hoz, ettl az DAG marad (a
topologikus sorrendben az aktulis lesz az utols pont, a tbbit nem zavarja), a kimen leket pedig
a msik DAG-hoz (hasonlan az is DAG marad). gy az lltst igazoltuk (s mellesleg a bizonytsunk
konstruktv is, azaz ez alapjn tnyleg tudunk csinlni egy ilyen felbontst).
10. Minimlis kltsg fesztfk
1. A Prim algoritmust fogjuk pldakpp futtatni.
Kezdjnk mondjuk A-val. Kezdeti kitlts:
A B C D E F G H
KZEL A A A A A A A
MINSLY 1 1 3
Furcsnak tnhet, hogy mondjuk F-hez is A van kzel, de a kztk lev sly gyis vgtelen, ezrt ez
nem problma. Elszr mondjuk B-t vlasztjuk, hozz A van kzel, teht AB let vesszk be. B gy
bekerl az U halmazba, az dolgait kitakartjuk, s a belle kiindul lekkel frisstjk a tblzatot,
pl. C-hez B-bl 4-gyel jutunk, ez kzelebb van, mint A-bl -nel.
A B C D E F G H
KZEL B A B A A A
MINSLY 4 1 4 3
Most csak D-t vehetjk be, mghozzs az AD llel:
A B C D E F G H
KZEL B D A A A
MINSLY 4 2 3
rdemes meggyelni, hogy AD l nem jtszott, hiszen mr A U, valamint E-hez kzelebb van D,
mint B-hez, teht az frissl. Most E jn, a DE llel:
A B C D E F G H
KZEL B E E E
MINSLY 4 6 2 2
Most G, EG llel:
A B C D E F G H
KZEL B E E
MINSLY 4 6 2
aztn H, EH-val:
34
A B C D E F G H
KZEL B E
MINSLY 4 6
majd C, BC-vel:
A B C D E F G H
KZEL C
MINSLY 5
vgl F, a CF l felhasznlsval:
A B C D E F G H
KZEL
MINSLY
Ksz vagyunk.
2. A Kruskal algoritmus biztosan mininlis fesztft ad, ezrt megnzhetjk, hogy mit csinlna. Elszr
az 1 sly lek kzl fog vlasztani, bellk tud pteni egy k 1 el ft. Tbbet nem, hiszen akkor
biztos krt csinlna. Utna a 2 slyak kvetkeznek, bellk l 1-et lehet vlasztani hasonl okok
miatt. A vgn az x
i
s y
j
pontokon lesz kt fesztfa, ezeket muszj egy 3 sly llel sszektni. Teht
(k 1) 1 + (l 1) 2 + 3 = k + 2l. (Fontos szrevenni, hogy az indokls azrt ilyen egyszer, mert
a vlasztsok helyessgt nem kell kln bizonytani, hiszen azt tudjuk, hogy az algoritmus helyesen
mkdik.)
3. Gyakorlatilag az UNI-HOLVAN adatszerkezet hasznlhat vltoztats nlkl, mivel elg a grf
komponenseit nyilvntartani. Van t kt cscs kztt, ha egy komponensben vannak, s nincs ha
nincsenek. Egy cscs felvtele ltrehoz egy j komponenst (halmazt). Egy j l vagy sszekt kt
komponenst (kpezi az unijukat), vagy nem vltoztat semmin (attl fggen, hogy komponensen
bell vagy kvl megy). A lpsszmok megfelelsge kvetkezik az UNI-HOLVAN adatszerkezet
mveleteinek lpsszmaibl (termszetesen felsoroland).
4. Elszr beltjuk, hogy amennyiben minden l slya klnbz, akkor pontosan 1 minimlis sly
fesztfa van. Tfh ez nem gy van, azaz F
1
, F
2
fesztfa, mindkett slya minimlis, s e l gy,
hogy e F
1
, e , F
2
. Ekkor e behzsval egy kr keletkezik F
2
-ben, ez a kr legyen C. Ha e slya
kisebb, mint C valamely lnek slya, akkor C-nek ezt az lt e-re cserlve F
2
slyt cskkenthetnnk,
vagyis F
2
nem lehetett minimlis. Ha e slya nagyobb C brmely lnek slynl, akkor viszont a
piros szably alkalmazhat (st, alkalmazand!) r, vagyis nem lehetett volna F
1
rsze.
Teht a minimlis sly feszfa egyrtelmsge miatt elg azt ellenrizni, hogy f rsze-e ennek a
feszfnak. Sajnos magt a feszft tl drga lenne megkeresni, de nem is kell: nzzk meg, hogy
alkalmazhat-e f-re a piros szably. Azaz keressnk f-et tartalmaz krt G-ben (pl bejrssal) gy,
hogy f-en kvl csak a nla kisebb sly leket hasznlhatjuk. Ha van ilyen kr, akkor f-re alkalmaz-
hat a piros szably, vagyis nem rsze a minfeszfnak, ha pedig nincs, akkor f-re nem alkalmazhat a
piros szably, teht rsze a minfeszfnak. Mivel csak egy bejrst csinltunk (pl mlysgi), a lpsszm
O([V [ +[E[).
5. A keresett rszgrfba minden 1 sly let be kell vlogatni (ha nem tennnk, akkor egy ilyen l
bevtelvel jobbat kapnnk). Mostmr csak az sszefggsget kell biztostani. Bejrssal hatroz-
zuk meg a 1 sly lek ltal fesztett rszgrf komponenseinek szmt, ez legyen k. Ekkor a sly

s(e)=1
1+k1, hiszen a komponenseket k1 darab 1 sly llel kell s elg sszektni (ennyi elg
s lehetsges G f miatt; ha kevesebb, akkor meg marad kln komponens). A lpszm a bejrs:
O([V [ +[E[).
6. Elszr megmaradt jrdkat hasznlva f kompnensek keresse (grf cscsai: pontok; lei: megmaradt
35
jrdk), majd a komponensek kztt min ktg feszfa (grf cscsai: elz grf f komponensei; lei:
lerakhat pallk a megfelel sllyal).
Helyessg: Egy, a jrdk ltal meghatrozott komponensen bell biztos, hogy mindenhonnan min-
denhova el tudunk jutni pall nlkl. Kt komponens kztt pall nlkl lehetetlen tjrni, hiszen ha
lehetne, egy komponensbe tartoznnak. Komponensen bell felesleges pallt pteni, hiszen a klt-
sge pozitv, s elhagysval nem rontjuk el a mindenhova eljuthatsgot. Ezek alapjn tnyleg egy
minktg feszfa kell a komponensek kztt.
Lpsszm: Grfpts O(n
2
), bejrs s a komponensek megjellse O(n
2
) (mx-os megads!; persze
llistval is csinlhatjuk, ugyanennyi lesz), msodik grf cscsai legfeljebb O(n), lei legfeljebb O(n
2
),
teht felptse O(n
2
), minktg feszfakeress mx-os megads esetn O(n
2
). sszesen teht O(n
2
)
7. f elhagysval F kt komponensre esik, ezeket egy bejrssal meg tudjuk keresni (s minden cscsnl
megjegyezzk, hogy melyik komponensbe tartozik). f-et pontosan a kt komponens kztt fut lek
tudjk helyettesteni, gy kzlk a minimlis sly slyig tudjuk f-et nvelni. Teht G (F-en
kvli) sszes ln vgigmegynk, s a kt komponens kztt futk slynak minimumt megkeressk.
Lpsszm: bejrs s leken vgigmens: O(n
2
+n
2
) = O(n
2
).
8. Vzlatosan: a legkisebb sly fesztftl a klnbz lslyok miatt pontosan egy lben fog eltrni
(biz. vzlat: tfh legalbb kettben, gy az egyiket a minfeszfa megfelel lre cserlve kapnnk egy
kisebb slyt ami mg nem min, teht a jelltnk nem lehetett a msodik legkisebb). gy keresnk egy
fesztft, s abbl egyenknt az sszes (n1) let kk helyett pirosra sznezzk, s keresnk helyette
egy msik kk let. A kapott n1 rtk kzl a legkisebbet vesszk. Lpsszm: O([E[ log [E[ +[V [
[E[) = O([V [ [E[), feszfakeress s utna n 1 kk szably.
9. A piros-kk algoritmus a G

-ben pirosra sznezett leket G-ben is pirosra sznezn (a kkeket nem


biztos, hogy kkre! szorgalmi feladatknt mutassunk egy pldt, ahol egy G

-beli kk l G-ben
piros lesz!). Ezrt elg, ha G

fesztfjhoz vesszk hozz v


1
-et, s ebben a grfban keresnk minktg
feszft. Ez Prim vagy Kruskal algoritmussal llists megadsban O([E[ log [E[), s ebben az esetben
legfeljebb n 1 +n lnk van (fesztfa s j lek), gy a kltsg O(nlog n) lesz.
10. Legalbb n, hiszen n 1 esetn fa lenne, gy ekkor csak egy fesztfja lehetne. Ha van benne egy k
hossz kr, akkor a kr brmely lt elhagyva a maradk kiegszthet fesztfv, gy ekkor legalbb
k darab van neki. Vagyis csak 3 hoszz kr(k) lehet(nek) a grfban. Ha tbb 3 hossz kr is van,
akkor bellk fggetlenl el lehet hagyni leket, gy a fesztfk szma 3 egsz szm tbbszrse lesz.
Vagyis a grfban pontosan egy darab, 3 hossz kr van (azaz egy hromszg, aminek a cscsairl fk
lghatnak le), gy egy ilyen grfnak legfeljebb n le lehet. Fentieket sszerakva (legalbb s legfeljebb
n) pontosan n le van.
11. Borvka algoritmusnak els kt menett futtatjuk (els menet utn legalbb
_
n
2
_
l van meg, msodik
utn legalbb
_
3n
4
_
).
12. A piros-kk algoritmus helyessgnek bizonytsban csak kt helyen foglalkozunk a clfggvnnyel,
s mindkt helyen ilyen rtelemben: ha kt l kzl a nem nagyobb slyt veszem be a feszfba, akkor
nem lehet rosszabb a clfggvny rtke, mintha a nem kisebb slyt vennm be. Ez az llts nyilvn
igaz a mostani kltsgdencinkra is, a bizonyts tbbi rsze pedig termszetesen vltozatlanul igaz
marad.
11. Bonyolultsgelmlet
1. (a) Tan: megfelel sznezs. Mret: kn, ami polinomilis az input mretben. Ellenrzs: pronknt
a pontokat, O(n
2
), ami polinomilis. P-belisgrl vagy coNP-belisgrl nem tudunk mit mondani.
(b) Tan: egy ilyen kr, ez j mert blabla. Amgy P-beli. coNP-belisgre szemlletes tan egy ptlan
fokszm pont (+f ellenrzse) (de termszetesen a P-belisg minden tovbbi nlkl bizonytja a
coNP-belisget).
(c) Tan: k fggetlen pont, ez j mert blabla. P-belisgrl vagy coNP-belisgrl nem tudunk mit
mondani.
2. A piros s kk szneket legfeljebb n
_
n1
2
_
= O(n
3
) fle mdon oszthatjuk ki, ami polinomilis. Minden
kiosztshoz a maradk grfot kt sznnel kell sznezni, ami P-beli feladat (pros grfsg eldntse).
gy polinomszor kell egy polinom kltsg algoritmust futtatni, ami polinom idben megy.
3. (a) Van-e benne 1 ftln pont? Ha igen, van-e benne 2? Ha igen, van-e benne 3? Az els NEM vlasznl
(mondjuk k)-nl tudjuk, hogy (G) = k 1. Lpsszm O(n) a felttelezs miatt. Lehet binris
keresssel is, gy a lpsszm O(log n).
36
(b) Meghatrozzuk (G)-t mondjuk O(log n) idben. Vlasztunk egy pontot, kitrljk a grfbl,
s megkrdezzk a maradkrl, hogy van-e benne (G) fggetlen pont. Ha igen, akkor az adott pont
nem lehetett egy max. ftln ponthalmaz rsze, hiszen ekkor ltezne a grfban (G) +1 fggetlen pont.
Ha nem, akkor pedig biztos egy max. ftln halmazbeli pontot trltnk. Ugyanezt megcsinljuk az
sszes tbbi pontra is gy, hogy a trlt pontokat nem lltjuk vissza. Ha megvan (G) pont, akkor
ksz vagyunk, s legfeljebb O(n) lpsszmunk van (a felttelezs gyelembevtelvel).
4. Adott G grf, amirl el kell dnteni, hogy sznezhet-e 3 sznnel. Ezt kell visszavezetni 4 sznnel
sznezsre. Vegynk fel egy j pontot (v), ezt kssk hozz az sszes G-beli ponthoz. Legyen ez a
grf G

. llts: G 3SZIN G

4SZIN. G 3SZIN G

4SZIN: vegyk G egy 3 sznnel


sznezst, s adjuk v-nek a negyedik sznt G

-ben. Ez a sznezs j lesz. G 4SZIN G

3SZIN:
vegyk G

egy 4 sznnel sznezst. Ekkor v szne klnbzik az sszes cscs szntl, gy a tbbi cscs
pont G egy j 3 sznnel sznezse szerint van sznezve. Az talakts polinomilis.
5. A nyelv:
L = (G, k) [ G irnytatlan cscsslyozott teljes grf, amiben van legfeljebb k levlsly fesztfa
Ez NP-teljes. NP-beli, mert egy j tan egy ilyen fesztfa (ellenrzs polinom idben megy, a mrete
is polinom). Adunk egy H-t L Karp-redukcit. Ha egy G grfban Hamilton-utat keresnk, akkor
minden cscshoz rendeljnk 1 slyt, s az gy keletkezett G

grfban keressnk legfeljebb 2 levlsly


fesztft! llts: G H-t (G

, 2) L. G H-t (G

, 2) L: G egy Hamilton-tja pont


egy kt level, 2 sly fesztfa G

-ben. (G

, 2) L G H-t: egy ilyen fesztfnak pontosan 2


levele kell, hogy legyen (ha tbb lenne, nagyobb lenne a slya, egy fban pedig mindig van legalbb
2 levl). Ez pedig pont egy olyan utat jelent, ami tartalmazza a grf sszes cscst, teht G egy
Hamilton-tjt. A cscsoknak slyt adni lehet polinom idben.
6. P-beli, mert polinom idben ellenrizhetjk, hogy teljes-e a grf. Ha nem, akkor a vlasz nem, ha
pedig igen, akkor mindenkpp van benne Hamilton-kr, gy a vlasz igen.
7. (a) Ez nem mond semmit X-rl, hiszen P NP, s minden NP-beli visszavezethet tetszleges
NP-teljesre.
(b) Ekkor X NP-nehz, ami X P esetn P = NP-t jelente, amit feltettnk hogy nem gy van. gy
X nem P-beli.
(c) Ettl mg lehet P-ben is, hiszen P NP.
8. (a) Tan: ilyen prosts. Mret: O(n), ellenrzs O(n), teht j. (Egybknt pl magyar mdsze poli-
nom idej, ezrt ez P-ben van, gy rtelemszeren coNP-ben is. A Hall-ttel segtsgvel szemlletesen
lehet coNP-belisget bizonytani: tan egy olyan X A lesz, hogy [X[ < [N(X)[).
(b) Tan: ilyen prosts. Mret: O(n), ellenrzs O(n), teht j. (Egybknt pl magyar mdsze
polinom idej, ezrt ez P-ben van, gy rtelemszeren coNP-ben is.)
(c) Tan: egy ilyen kr, ez j mert blabla. Egybknt P-beli, mert a kr legfeljebb O(
n!
(n100)!
) flekp-
pen llhat el, ami O(n
100
) (ha minden lehetsges pontsorrendet megvizsglunk). Ebbl kvetkezen
coNP-beli is.
(d) Tan: egy ilyen kr, ez j mert blabla. P-belisgrl vagy coNP-belisgrl nem tudunk mit mon-
dani. (n
k
nem polinomilis, ha k az input rsze!)
(e) Ez a rszhalmazsszeg problma, szpen megfogalmazva. Tan: egy j indexhalmaz, azaz egy
megfelel rszhalmaz, ez j mert blabla. P-belisgrl vagy coNP-belisgrl nem tudunk mit mondani.
9. A problma:
L = (G, k) [ G irnytatlan cscsslyozott teljes grf, amiben van legfeljebb k levlsly fesztfa
NP-beli, mert egy j tan egy ilyen fesztfa (ellenrzs polinom idben megy, a mrete is polinom).
10. Legegyszerbben gy, hogy megkrdezzk: kisznezhet-e 1 sznnel? 2-vel? 3-mal?. . . Az els igen v-
lasznl megvan (G) rtke. Legfeljebb n-szer polinom id, ami sszessgben polinom. (gyesebbek
csinlhatjk binris keresssel is.)
11. Vegynk fel G mell egy K
(G)
-t, azaz (G) pont teljes grfot. Az egyes pontjai jelentsk a szneket,
amikkel G-t ki akarjuk sznezni. Ha egy darab pont (k) kivtelvel K
(G)
minden pontjt sszektjk
G egy v pontjval, az azt jelenti, hogy v-t k sznre szneztk (knny beltni, hogy ms sznt nem
kaphat). Vegyk sorra G pontjait, s kezdjk el prblgatni a szneket. Ha v pontra k sznt elrunk,
akkor megkrdezzk, hogy az aktulis G K
(G)
grfunk sznezhet-e (G) sznnel. Ha igen, akkor
37
talltunk v-nek egy j sznt s folytathatjuk v + 1-gyel, ha nem, akkor trljk a v k-ra sznezshez
szksges leket s prblkozunk a k + 1 sznnel.
A vgn minden cscsnak lesz egy j szne. Legfeljebb n cscsra n sznt prblunk ki, egy prba pedig
egy 2n cscs grfrl krdez sznezhetsget, vagyis a felttelezs gyelembevtelvel sszessgben
polinomilis lesz az algoritmus.
12. Ha tudjuk, hogy a skbarajzolhatsg eldntse P-beli, akkor ez minden tovbbi nlkl bizonytja az
lltst. Ha esetleg ezt nem tudnnk:
NP: tan: egy konkrt lerajzols (pl a pontok koordintival). Mret: 2n, azaz polinomilis.
Ellenrzs: lpronknt metszspont-szmts, egyenknt polinomilis, sszessgben O(e
2
) darabot
kell, ami mg mindig polinomilis.
coNP: tan: egy Kuratowski-gral topologikusan izomorf rszgrf. Mret: mivel rszgrf, nem
lehet nagyobb G mretnl, azaz biztos polinomilis. Ellenrzs: rszgrfsg ellenrzse (polinomilis),
valamint a msodfok pontok kezelse utn (polinomilis) Kuratowski-grfsg ellenrzse (konstans).
13. (a) P-beli, az sszes lehetsges 15 pont rszgrf szma
_
n
15
_
= O(n
15
), gy mindegyiket meg tudjuk
vizsglni.
(b) NP-teljes. NP-beli: tan egy ilyen kr (poli ell, poli mret). NP-nehz: H-krrl Karp-redukci:
G

legyen G kiegsztve 99n izollt ponttal, teht n

= 100n. Ha G-ben van H-kr, akkor G

-ben ez
G-ben pont egy n = n

/100 hossz kr. Ha G

-ben van egy n

/100 = n hossz kr, ez (a 99n izollt


pont miatt) csak gy lehet, hogy a kr kizrlag a G-ben is meglv pontokat tartalmazza. Ez viszont
pont egy H-kr G-ben. Az talakts polinomilis.
(c) Ez a H-t problma szinonmja, amirl tudjuk, hogy NP-teljes.
(d) NP-teljes. NP-beli: tan egy ilyen feszfa, ez j, mert . . . . NP-nehz: az elz problmt vezetjk
vissza r. G

legyen olyan, hogy G minden pontjhoz hozzktnk egy elsfok pontot. Ha G-ben van
olyan feszfa, amiben a maxfok legfeljebb 2, akkor G

-ben ehhez hozzvve az j elsfok pontokat


pont egy j feszft kapunk. Ha G

-ben van olyan feszfa, amiben a maxfok legfeljebb 3, akkor az


j elsfok pontokhoz vezet lek ebben biztos benne vannak. Ha ezeket elhagyjuk, akkor a feszfa
minden egyes pontjnak a fokt pontosan eggyel cskkentjk, de az eredeti grfban ez mg mindig
feszfa marad, vagyis pont G egy megfelel feszfjt kapjuk. Az talakts polinomilis, hiszen n j
cscsot s n j let vettnk fel.
14. NP-belisg: tan egy ilyen t, mret O(n), ellenrzs O(n), teht polinomilis. NP-nehzsg: a H-t
problmt fogjuk r visszavezetni (H-t L). A G grfbl, amiben H-utat kell keresni, csinlunk
egy slyozott grfot, minden lslyt 1-re lltunk, s legalbb n 1 sly t ltezst krdezzk (ez
a grf legyen G

). Egyik irny: ha van G-ben H-t, akkor G

-ben van legalbb n 1 sly t, mert


a G-beli H-t pont ilyen G

-ben. Msik irny: ha van G

-ben legalbb n 1 sly t, akkor ez az 1


slyok miatt legalbb n 1 lbl ll, teht minden cscson keresztlmegy, vagyis ez pont egy H-t
G-ben. Az talakts trivilisan polinomilis.
15. P-beli. Elszr ellenrizzk a skgrfsgot polinom lpsben (errl akkor is illik tudni, hogy P-beli,
ha nem rja a feladat). Ha nem, akkor a vlasz NEM. Ha igen, s k > 4, akkor a vlasz szintn NEM,
hiszen K
5
biztos nincs benne, ha skgrf (lsd Kuratowski-ttel). Egybknt legfeljebb O(
_
n
4
_
) = O(n
4
)
lehetsget kell vgignzni.
16. NP-teljes. NP-belisg: tan egy ilyen kr, mrete O(n), ellenrzs szintn polinomilis. NP-nehzsg:
H L visszavezetst csinlunk. G grfrl krds, hogy van-e benne H-kr. Csinlunk egy G

grfot
gy, hogy G minden cscshoz felvesznk egy j cscsot, ami kizrlag a sajt prjval van sszektve,
s G

-rl krdezzk meg, hogy van-e benne ilyen C kr. Helyessg: egyik irny: ha G-ben van H-kr,
akkor ez egy j C kr G

-ben, hiszen az extra pontok kzl mindegyik kapcsoldik hozz, az sszes


tbbi pedig a krben van. Msik irny: ha van ilyen C kr G

-ben, akkor az sszes extra elsfok


pontnak kapcsoldnia kell hozz, tovbb ezek a pontok nyilvn nem lehetnek benne. Vagyis a kr
pont az sszes G-beli ponton megy t, azaz ez G-nek egy H-kre. Az talakts n l s cscs felvtele,
ami nyilvn polinomilis.
17.
= h
1
, . . . , h
n
, k
1
, . . . , k
n
, Z, K[h
i
, k
i
> 0; Z Z
+
; zskkioszts, hogy a megelztt kr K
rdemes szrevenni, hogy nem a kr minimalizlsa fell kzeltjk meg a problmt, hanem a meg-
elztt kr maximalizlsa fell. Ez a problma NP-teljes. NP-beli, mert j tan egy zskkioszts,
mrete, ellenrzse polinomilis. NP-nehz, HTIZSK visszavezetst tudunk trivilisan csi-
38
nlni: ha adott egy htizsk feladat, akkor s
i
sly legyen az rvizes problmban h
i
, c
i
rtk legyen
k
i
, az S slykorlt legyen a Z zskkorlt, a legalbb elrend C rtk pedig a legalbb megelzend
K kr. A helyessg s a visszavezets polinomilissga trivilis.
18. X P, hiszen a binris felrsban a 2-hatvnysgot trivilis ellenrzni (pontosan 1 darab 1-es r-
tk lehet). Y problma a 3SZN komplementere, gy coNP-teljes. X Y biztosan van, hiszen egy
coNP-teljes problmra brmely coNP-beli, gy brmely P-beli visszavezethet (P = coP coNP).
Ha ltezne Y X visszavezets, akkor P = coNP lenne, amibl kvetkezne P = NP, ez pedig
ellentmond a feltevsnek, teht ilyen nem lehet.
19. X P, hiszen mint tudjuk, DAG-ban a leghosszabb t keresse polinomilis. 3SZN ismerten NP-
teljes. Az NP-teljessg dencija miatt X 3SZN biztos ltezik (brmely NP-beli visszavezethet
brmely NP-teljesre, valamint P NP). Ha ltezne 3SZN X, akkor minden NP-beli problma
polinom lpsben megoldhat lenne, gy P = NP lenne. Teht egy ilyen visszavezets ltezsrl nem
tudunk mit mondani (persze ha valaki mgis bizonytja vagy a ltezst, vagy a nemltezst, akkor
sok j dolgot kap).
20. A Karp-redukci helyessge nem fgg az igen vagy nem vlasztl (acsa felttel van benne). Elszr
tfh egy problma NP-beli. Igazolni szeretnnk, hogy amennyiben egy konkrt krdsre a vlasz
nem, akkor ltezik erre megfelel tan. Mivel 3SZN-re vissza tudjuk vezetni, az pedig a felttel
szerint coNP, gy a visszavezets utni feladatra NEM vlasz esetn ltezik megfelel tan, de a
visszavezets tulajdonsgai miatt ez j tan a krdses feladatra is. Ez azt jelenti, hogy tetszleges
NP-beli problma nem vlaszra ltezik megfelel tan, vagyis NP coNP.
Ugyanezzel a gondolatmenettel a msik irnyba belthatjuk, hogy coNP NP. A kettbl pedig
kvetkezeik, hogy NP = coNP.
12. Egszrtk programozs
1. Minden (v
i
, v
j
) lhez felvesznk egy x
i,j
(binris) vltozt (binrissgot biztost korltok: (3,4,5)),
ami 1, ha (v
i
, v
j
) a keresett prostsban van, egybknt 0. A kivlasztott lek szmt akarjuk maxi-
malizlni, ami megfelel a vltozk sszegnek maximalizlsnak (1). Brmely pontra legfeljebb 1, a
prostsban szerepl l illeszkedhet (2).
max
n

i=1
x
i,j
(1)
feltve, hogy

(v
i
,v
j
)E
x
i,j
1 i = 1 . . . n (2)
x
i,j
1 (v
i
, v
j
) E (3)
x
i,j
0 (v
i
, v
j
) E (4)
x
i,j
Z (v
i
, v
j
) E (5)
2. Minden ponthoz felvesznk egy x
i
(binris) vltozt (binrissgot biztost korltok: (3,4,5)), ami 1,
ha a v
i
pont a keresett rszgrfban tallhat, egybknt 0. A bevett pontok szmt akarjuk maxi-
malizlni, ami megfelel a vltozk sszegnek maximalizlsnak (1). Kt pont nem lehet benne egy
teljes rszgrfban, gy ha sszektetlenek, egyszerre nem lehet ket kivlasztani (2).
max
n

i=1
x
i
(1)
feltve, hogy
x
i
+x
j
1 i, j : (v
i
, v
j
) , E (2)
x
i
1 i = 1 . . . n (3)
x
i
0 i = 1 . . . n (4)
x
i
Z i = 1 . . . n (5)
39
3. Minden ponthoz felvesznk egy x
i
(binris) vltozt (binrissgot biztost korltok: (3,4,5)), ami
1, ha a v
i
pont a keresett cscshalmazban tallhat, egybknt 0. A bevett pontok szmt akarjuk
maximalizlni, ami megfelel a vltozk sszegnek maximalizlsnak (1). Minden cscsra igaz, hogy
a szomszdai kzl legfeljebb kett lehet kivlasztva, azaz a szomszdoknak megfelel vltozk sszege
nem lehet 2-nl nagyobb (2).
max
n

i=1
x
i
(1)
feltve, hogy

j:(v
i
,v
j
)E
x
j
2 i = 1 . . . n (2)
x
i
1 i = 1 . . . n (3)
x
i
0 i = 1 . . . n (4)
x
i
Z i = 1 . . . n (5)
4. Minden ponthoz felvesznk egy x
i
(binris) vltozt (binrissgot biztost korltok: (3,4,5)), ami
1, ha a v
i
pont a keresett cscshalmazban tallhat, egybknt 0. A bevett pontok szmt akarjuk
maximalizlni, ami megfelel a vltozk sszegnek maximalizlsnak (1). Minden fggetlen lprra
igaz, hogy a hozzjuk tartoz 4 cscs kzl legfeljebb kett lehet kivlasztva, azaz minden ilyen 4
cscsnak megfelel vltozk sszege nem lehet 2-nl nagyobb (2).
max
n

i=1
x
i
(1)
feltve, hogy
x
i
+x
j
+x
k
+x
l
2 e
a
, e
b
: e
a
= (v
i
, v
j
), e
b
= (v
k
, v
l
), egymstl ftln lek (2)
x
i
1 i = 1 . . . n (3)
x
i
0 i = 1 . . . n (4)
x
i
Z i = 1 . . . n (5)
Megjegyzs: nem tartozik a feladathoz, de rdemes belegondolni, hogy a pronknt fggetlen lek
megkeresse nyilvn nem okoz gondot, hiszen vgigmegynk az sszes lehetsges lpron (O(e
2
)), s
a pronknt fggetlenekre felvesszk a korltot.
13. Kzelt algoritmusok
1. Elszr beltjuk az algoritmus helyessgt, vagyis azt, hogy tnyleg egy lefog ponthalmazt tall. Tfh
nem lefog ponthalmazt kapunk, vagyis maradt olyan e l, hogy egyik vgpontja sincs kivlasztva.
Ez viszont azt jelenti, hogy e-vel bvthetnnk a fggetlen lhalmazunkat, ami ellentmonds.
Ezutn be kell ltni, hogy tnyleg 2-kzelt az algoritmus. Jellje k a kivlasztott lek szmt, ekkor
a kivlasztott pontok szma: t = 2k. Tudjuk, hogy (G) (G), valamint nyilvnvalan legfeljebb
annyi let vlaszthattunk ki, mint a ftln lek maximlis szma. Ezeket sszerakva:
t = 2k 2(g) 2(G).
2. Algoritmus: ameddig lehet, prosval rakjuk az a s b mret elemeket ldba, a maradkot pedig a
FirstFit algoritmussal rendezzk el. Ez gyesen implementlva ebben a spec esetben trivilisan O(n).
Helyessg: az a mret elemek darabszma legyen A, a b mretek B. Ha B A, akkor az
algoritmus B ldt fog felhasznlni (OPT B), s mivel b > 1/2, mindegyik kln ldba kell, hogy
kerljn, gy legalbb B ldra szksg is van (OPT B). Ha A > B, akkor kt dolgot bizonytunk.
Az egyik, hogy mindig ltezik olyan optimlis elrendezs, hogy minden b mret elem mellett szerepel
egy a mret is. Tfh egy olyan optimlis elrendezsnk van, ahol legalbb az egyik b-nek nincs prja.
Ekkor egy csak a-t tartalmaz ldbl egy a-t t tudunk rakni ide gy, hogy a szksges ldk
40
szmt nem nveljk. Ezt addig csinlhatjuk, amg a kvnt elrendezshez nem jutunk, s kzben a
ldk szmt egyszer sem nveltk. Ez alapjn elg az olyan elrendezseket vizsglni, ahol minden
b prostva van egy a-val (azaz amilyen elrendezseket a mi algoritmusunk is ad), s csak az a-k
elrendezsre kell koncentrlni.
Tfh nem a FirstFit szerinti mdon vannak a maradk a-k bepakolva. Ekkor az ltalnossg megsrtse
nlkl felttelezhetjk, hogy a bepakolt elemek darabszma szerint nemnvekven vannak rendezve
a ldk. A felttelezs szerint az utols ldn kvl is van olyan, ahova mg befrne egy a mret
elem (klnben pont a FirstFit szerinti elrendezsnk lenne). A legutols ldbl ekkor egy a-t
tpakolhatunk ide anlkl, hogy a ldk szmt nvelnnk. Ezt egszen addig csinlhatjuk, amg
nem a kvnt formban van az elrendezs, s a ldk szma egyszer sem ntt. Azaz mindig ltezik
olyan optimlis megolds, mint amilyet a mi algoritmusunk ad.
Ezt a bizonytst termszetesen le lehetne rni sokkal rvidebben is, de a j rthetsg s a precizits
miatt vlasztottam ezt.
3. Ellenplda: dobozmret: 1, elemek: 0.6, 0.3, 0.7, 0.4. Optimlis megolds: [0.6, 0.4], [0.7, 0.3], OPT = 0
(mert 0 hely marad ki). A FirstFit ltal adott megolds: [0.6, 0.3], [0.7], [0.4], a kimarad hely 1. Ha
2-kzelt lenne az algoritmus, akkor 1 2OPT = 0 teljeslne, ami nyilvn nincs gy. Vagyis a vlasz
nem.
4. Az, hogy a moh algoritmus nem optimlis, egy ellenpldval knnyen bizonythat: a szalag mrete
legyen 2, az rkez fjlok mrete 1,1,2. Az optimlis megoldsban mind a 3 fjlt ki tudjuk rni (az
egyik szalagon 1,1, a msikon 2), a moh csak a kt 1-est rja ki, a kt szalagra. Nmi gondolkods
utn megsejtjk, hogy a moh algoritmus mindig csak legfeljebb 1-gyel kevesebb fjlt r ki, mint
amennyit az optimlis kirs szerint lehetne. Ezt bizonytjuk be. A szalagok mrete legyen S. Tfh van
egy olyan feladatunk, amiben legalbb 2 fjllal tbbet lehet kirni, mint amit a moh vltozat ad.
Ezek kzl az els kett hossza legyen h
i
s h
i+1
, a felttelbl tudjuk, hogy
h
i
h
i+1
(1)
Az egyik szalagon W
1
mret foglalt, a msikon W
2
. Ha a maradk SW
1
vagy SW
2
helyre befrne
h
i
, akkor azt a moh algoritmus berakta volna. Vagyis
S W
1
< h
i
(2)
S W
2
< h
i
(3)
Az optimlis megoldsban W
1
s W
2
mennyisg adat biztosan szerepel valamilyen elrendezsben,
s ezen kvl h
i
s h
i+1
is mg befr. Azaz az sszes elrhet s felhasznlt adatmennyisget felrva
ebben az esetben
2S W
1
+W
2
+h
i
+h
i+1
W
1
+W
2
+ 2h
i
(4)
ahol a msodik egyenltlensg (1)-bl kvetkezik. Ezt (2) s (3) segtsgvel tovbb rva (gyeljnk,
hogy hogy hol van , s hol van >!):
2S W
1
+W
2
+ 2h
i
> W
1
+W
2
+ (S W
1
) + (S W
2
) = 2S (5)
ami nyilvnvalan lehetetlen. gy nem lehet, hogy a moh algoritmus ltal kirt fjloknl legalbb
2-vel tbb kirhat lenne.
41

You might also like