Download as pdf or txt
Download as pdf or txt
You are on page 1of 172

HOC VIN CNG NGH BU CHINH VIN THNG

KHOA CNG NGH THNG TIN 1

IT
BI TP
K THUT LP TRNH
T
P

CH BIN: TS. NGUYN DUY PHNG

Ha Ni, 2013
BI TP K THUT LP TRNH Vesion 1.0

MUC LUC
I. Lp trnh vi cc cu trc d liu c bn .................................................................. 4
1.1. Cc bi tp vi d liu kiu s nguyn ........................................................... 4
1.2. Cc bi tp v mng v ma trn .................................................................... 15
1.3. Cc bi tp v xu k t ................................................................................ 28
1.4. Cc bi tp v file v cu trc ....................................................................... 30
II. Lp trnh da vo k thut duyt v qui ......................................................... 36
1.5. K thut vt cn............................................................................................. 36
1.6. K thut sinh k tip ..................................................................................... 46
1.7. K thut quay lui ........................................................................................... 54
1.8. K thut nhnh cn ........................................................................................ 65
1.9. K thut qui hoch ng ............................................................................... 67
IT
III. Lp trnh da vo ngn xp, hng i ................................................................. 72
1.10. K thut x l trn ngn xp ......................................................................... 72
1.11. K thut x l trn hng i ......................................................................... 81
T

1.12. K thut x l trn danh sch lin kt........................................................... 86


1.13. Kh qui da vo ngn xp v danh sach lin kt ..................................... 94
P

IV. Lp trnh trn cy nh phn .................................................................................. 98


4.1. Cy nh phn.................................................................................................. 98
4.2. Cy nh phn tm kim ................................................................................ 100
4.3. B-Cy (thuc tm kim b nh ngoi) ........................................................ 106
4.4. Cy cn bng ............................................................................................... 106
4.5. Cy en ................................................................................................... 107
4.6. Cy quyt nh ............................................................................................ 108
4.7. Cy m tin t ............................................................................................. 108
V. Lp trnh trn th .......................................................................................... 109
5.1. Biu din th ........................................................................................... 109
5.2. K thut DFS ............................................................................................... 111

2
BI TP K THUT LP TRNH Vesion 1.0

5.3. K thut BFS ............................................................................................... 115


5.4. th Euler ................................................................................................. 128
5.5. th Hamilton ........................................................................................... 137
5.6. Cy khung th ......................................................................................... 137
5.7. Bi toan tm ng i ngn nht ................................................................. 147
5.8. Bi ton lung cc i trn mng................................................................ 150
5.9. th hai pha ............................................................................................. 153
VI. Cc k thut sp xp v tm kim ...................................................................... 155
6.1. Cac phng phap sp xp c bn ................................................................ 155
6.2. Quicksort ..................................................................................................... 161
6.3. Heapsort ...................................................................................................... 163
6.4. Mergesort .................................................................................................... 164
6.5. Sp xp bng c s ...................................................................................... 165
IT
6.6. Cac phng phap tm kim c bn ............................................................. 166
6.7. Php bm ..................................................................................................... 169
6.8. Tm kim da vo c s .............................................................................. 170
T

TAI LIU THAM KHAO ........................................................................................... 172


P

3
BI TP K THUT LP TRNH Vesion 1.0

I. Lp trnh vi cc cu trc d liu c bn


1.1. Cc bi tp vi d liu kiu s nguyn
BAI 1.1.1: TNG CH S
Vit chng trnh tnh tng ch s ca mt s khng qu 9 ch s.
D liu vo:
Dng u tin ghi s b test.
Mi b test vit trn mt dng s nguyn tng ng
Kt qu: Ghi ra mn hnh
Mi b test vit ra trn mt dng gi tr tng ch s tng ng
V d:

Input Output
IT
2 10
1234 2
T

1000001
P

BAI 1.1.2: BT U V KT THC


Vit chng trnh kim tra mt s nguyn dng bt k (2 ch s tr ln, khng qu 9 ch
s) c ch s bt u v kt thc bng nhau hay khng.
D liu vo:
Dng u tin ghi s b test.
Mi b test vit trn mt dng s nguyn dng tng ng cn kim tra
Kt qu: Ghi ra mn hnh
Mi b test vit ra YES hoc NO, tng ng vi b d liu vo
V d:

4
BI TP K THUT LP TRNH Vesion 1.0

Input Output

2 YES
12451 NO
1000012

BAI 1.1.3: BI S CHUNG NH NHT


Vit chng trnh tnh bi s chung nh nht ca hai s nguyn dng khng qua 7 ch
s.
D liu vo:
Dng u tin ghi s b test.
Mi b test vit trn mt dng hai s nguyn dng tng ng, cch nhau mt
khong trng
IT
Kt qu: Ghi ra mn hnh
Mi b test vit ra trn mt dng gi tr bi s chung nh nht ca hai s
T

V d
P

Input Output

2 60
30 20 98754568
222222 8888888

BAI 1.1.4: S C TNG CH S CHIA HT CHO 10


Vit chng trnh kim tra mt s c tha mn tnh cht tng ch s ca n chia ht cho
10 hay khng.
D liu vo:
Dng u tin ghi s b test. Mi b test vit trn mt dng mt s nguyn dng,
t nht 2 ch s nhng khng qua 9 ch s.

5
BI TP K THUT LP TRNH Vesion 1.0

Kt qu:
Mi b test vit ra YES hoc NO ty thuc kt qu kim tra.
V d
Input Output
3 NO
3333 YES
555555 YES
123455

BAI 1.1.5: S P 1
Mt s c coi l p nu n l s thun nghch, tng ch s l s nguyn t v tt c cc
ch s u l. Bi toan t ra l m xem trong mt on gia hai s nguyn cho trc c
bao nhiu s p nh vy.
D liu vo:
IT
Dng u tin ghi s b test. Mi b test vit trn mt dng hai s nguyn dng
tng ng, cch nhau mt khong trng. Cc s u khng vt qu 9 ch s.
Kt qu:
T

Vi mi b test vit ra s lng cc s thun nguyn t tng ng.


V d
P

Input Output
3 4
23 199 0
2345 6789 311
222222 99999999

BAI 1.1.6: S P 2
Mt s c coi l p nu nu n c tnh cht thun nghch v tng ch s chia ht cho
10. Bi toan t ra l cho trc s ch s. Hy m xem c bao nhiu s p vi s ch
s nh vy.
D liu vo:
Dng u tin ghi s b test.

6
BI TP K THUT LP TRNH Vesion 1.0

Mi b test vit trn mt dng s ch s tng ng cn kim tra (ln hn 1 v nh


hn 10)
Kt qu: Ghi ra mn hnh
Mi b test vit ra s lng s p tng ng
V d

Input Output

2 1
2 90
5 IT
BAI 1.1.7: TR CHI ON S
Trong lc rnh ri, hai bn sinh vin quyt nh chi tr oan s ging hc sinh cp 1. Mi
T

bn ngh ra hai con s nguyn khng m sau vit ra tng v hiu ca chng (cng l cac
s nguyn khng m). Cng vic ca bn kia l xac nh hai con s ban u. mt s
P

lt chi, mt bn c th c tnh a ra mt cp gi tr khng th l tng v hiu ca hai


s nguyn no c.
Vit chng trnh gip tnh toan nhanh ra kt qu cho bi ton trn.
D liu vo:
Dng u l s b test, khng qu 200.
Mi dng sau cha hai s nguyn khng m s v d ln lt l gi tr tng v hiu
hai s. C hai s s v d u khng qu 104.
Kt qu: Ghi ra mn hnh
Vi mi b d liu, a ra hai s ban u, s ln vit trc, cch nhau mt khong
trng. Nu khng th c cp s nh vy th in ra impossible
V d

7
BI TP K THUT LP TRNH Vesion 1.0

Input Output

2 30 10
40 20 impossible
20 40

BAI 1.1.8: MY BN HNG T NG


Khi mua hng bng my bn hng t ng, ngi mua s tr bng mt s tin chn ln hn
hoc bng gi ca sn phm. My s tnh toan tr li s tin tha cho ngi mua. Gi
s trong my ch c ba mnh gi tin l 1 dollar, 5 dollar v 10 dollar vi quy c mi ln
tr ch c php dng t hn 5 t 1 dollar v t hn 2 t 5 dollar.
Hy vit chng trnh tnh s tin mi loi m my bn hng t ng phi tr li cho ngi
mua. IT
D liu vo:
Dng u tin l s b test, mi b test ghi trn mt dng hai s nguyn khng m
l gi ca sn phm v tng s tin ngi mua a vo. C hai gi tr ny u khng
T

vt qu 105.
Kt qu:
P

Vi mi b test, vit ra biu din s tin cn tr ca my bn hng t ng theo mu


trong b test v d di y. (Ch : gia cc s v cc du lun c ng mt khong
trng, c vi du =, du * hoc du +)
V d cho Input v Output:

Input Output

3 28 = 2 * 10 + 1 * 5 + 3 * 1
72 100 163 = 16 * 10 + 0 * 5 + 3 * 1
37 200 45 = 4 * 10 + 1 * 5 + 0 * 1
5 50

8
BI TP K THUT LP TRNH Vesion 1.0

BAI 1.1.9: (*) BIU DIN S BNG QUE DIM


Mt trong nhng cch biu din s kh ph bin trong cac ng h in t l s dng que
dim. Cc k t s s c biu din nh sau:

Vi mt s lng que dim cho trc, hy cac nh s nh nht v s ln nht m bn c


th biu din c.
Ch :
Bn khng c php tha que dim no khi xp.
Cc s biu din khng c bt u bng s 0
D liu vo:
Dng u tin ghi s b test, khng ln hn 100. Mi b test vit trn mt dng mt
IT
s nguyn duy nht khng ln hn 100 l s que dim bn c.
Kt qu:
Vi mi b test, output a ra hai s nguyn theo th t l s nh nht v s ln
T

nht c th biu din bi s que dim cho bi input (mi s cch nhau mt khong
trng).
P

V d cho Input v Output:

Input Output

4 77
3 6 111
6 8 711
7 108 7111111
15

9
BI TP K THUT LP TRNH Vesion 1.0

BAI 1.1.10: M S CHNH PHNG TRONG ON


Vit chng trnh m trong mt on gia hai s nguyn c bao nhiu s chnh phng.
D liu vo:
Dng u tin ghi s b test.
Mi b test vit trn mt dng hai s nguyn dng tng ng, cch nhau mt
khong trng. Cc s u khng qu 9 ch s.
Kt qu: Ghi ra mn hnh
Mi b test vit ra trn mt dng gi tr s cc s chnh phng m c.
V d:

Input Output

2 IT 10
23 199 34
2345 6789
T

BAI 1.1.11: S THUN NGUYN T


P

Mt s c coi l thun nguyn t nu n l s nguyn t, tt c cc ch s l nguyn t


v tng ch s ca n cng l mt s nguyn t. Bi toan t ra l m xem trong mt
on gia hai s nguyn cho trc c bao nhiu s thun nguyn t.
D liu vo:
Dng u tin ghi s b test.
Mi b test vit trn mt dng hai s nguyn dng tng ng, cch nhau mt
khong trng. Cc s u khng vt qu 9 ch s.
Kt qu: Ghi ra mn hnh
Mi b test vit ra s lng cc s thun nguyn t tng ng.
V d

Input Ouput

10
BI TP K THUT LP TRNH Vesion 1.0

2 1
23 199 15
2345 6789

BAI 1.1.12: S C TNG CH S CHIA HT CHO 10


Vit chng trnh kim tra mt s c tha mn tnh cht tng ch s ca n chia ht cho
10 hay khng.
D liu vo:
Dng u tin ghi s b test. Mi b test vit trn mt dng mt s nguyn dng,
t nht 2 ch s nhng khng qua 9 ch s.
Kt qu:
Mi b test vit ra YES hoc NO ty thuc kt qu kim tra.
IT
V d:
Input Output
3 NO
T

3333 YES
P

555555 YES
123455

BAI 1.1.13: S P 3
Mt s c coi l p nu n l s thun nghch, tng ch s l s nguyn t v tt c cc
ch s u l. Bi toan t ra l m xem trong mt on gia hai s nguyn cho trc c
bao nhiu s p nh vy.
D liu vo:
Dng u tin ghi s b test. Mi b test vit trn mt dng hai s nguyn dng
tng ng, cch nhau mt khong trng. Cc s u khng vt qu 9 ch s.
Kt qu:

11
BI TP K THUT LP TRNH Vesion 1.0

Vi mi b test vit ra s lng cc s thun nguyn t tng ng.


V d
Input Output
3 4
23 199 0
2345 6789 311
222222 99999999

BAI 1.1.14:
Hy vit chng trnh tm s cc s t nhin N tha mn ng thi nhng iu kin di
y (N231):
N l s c K ch s (K15).
N l s nguyn t.
IT
o ngc cc ch s ca N cng l mt s nguyn t.
Tng cc ch s ca N cng l mt s nguyn t.
Mi ch s ca N cng l cac s nguyn t ;
Thi gian thc hin chng trnh khng qua 1sec.
T

D liu vo (Input) cho bi file data.in theo khun dng:


Dng u tin ghi li s t nhin M l s lng cc test (M100).
M dng k tip ghi li mi dng mt test. Mi test bao gm mt s K. Hai s
P

c vit cch nhau mt vi khong trng.


Kt qu ra (Output): ghi li M dng trong file ketqua.out, mi dng ghi li b hai s
s N, X. Trong X l s cc s c N ch s tha mn yu cu ca bi ton. V d di
y minh ha cho file input v output ca bi ton.
Input.in Output.out
5 2 0
2 3 8
3 4 15
4 5 46
5 7 359
7

12
BI TP K THUT LP TRNH Vesion 1.0

BAI 1.1.15:
Trong ngy u tin pht hnh cc s in thoi di ng, cng ty vin thng d nh khuyn
mi cho N khach hng ng k trc nht cc s in thoi loi 1, M khch hng k tip
s in thoi loi 2 v K khch hng cui cng cc s in thoi loi 3. Cc s in thoi
loi 1, loi 2 v loi 3 c tnh cht sau:
S loi 3 (Loi 3): l cc s in thoi m su s cui cng ca n to thnh mt
s thun nghch c su ch s. V d s : 0913.104401.
S loi 2 (Loi 2): l cc s in thoi Loi 3 c tng su s cui cng ca n l
mt s chia ht cho 10. V d s : 0913.104401.
S loi 1 (Loi 1): l cc s in thoi Loi 2 c tng su s cui cng ca n khng
cha bt k s 0 no. V d s : 0913.686686.
Bi toan c t ra l cho trc mt phng an N, M, K, hy tr li YES nu cng
ty thc hin c, tr li NO nu cng ty khng thc hin c.
Input: Dng u tin ghi s b test, khng ln hn 100. Mi b test l mt b 3 s N,
M, K c ghi trn mt dng. Cc s c ghi cch nhau mt vi khong trng.
Output: Vi mi b test, vit ra trn mt dng gi tr YES hoc NO tng ng vi
IT
phng an thc hin c, hoc phng an khng thc hin c.
V d cho Input v Output:
T
INPUT OUTPUT
5 NO
P

100 100 200 NO


50 150 200 YES
100 50 300 120 YES
50 500 NO
140 50 700

BAI 1.1.16:
S N nguyn h c s ACM l nhng s nguyn thng thng s dng cc k hiu t 0,
1, ..,9 lm k hiu ca h m (V d s 719ACM). Nguyn tc chung i mt s A =(a1,
a2,..,aN) h c s ACM sang s h c s 10 c thc hin nh sau:
N
K10 ai * (i!) , trong ai ch s ti v tr th i ca h c s ACM .
i 1

V d:

13
BI TP K THUT LP TRNH Vesion 1.0

A = 719ACM = 9.(1!) + 1.(2!) + 7.(3!) = 5310 .


Nhim v ca bn l vit mt chng trnh c mt s nguyn h c s ACM ri
i s thnh s h c s 10 .
D liu vo:
D liu vo gm nhiu b d liu tng ng vi nhiu test. Dng u tin cha mt
s nguyn khng ln hn 100 l s lng cc b d liu. Nhng dng tip theo cha cc
b d liu. Mi b d liu c vit trn mt dng. Mi dng vit mt s nh hn 232 l
s h c s ACM .

D liu ra:
Vi mi b d liu, ghi ra trn mt dng mt s c chuyn i.

V d d liu vo V d d liu ra
6 53
719 1
1 7
15 8
110
IT 8
102 0
8
T
P

14
BI TP K THUT LP TRNH Vesion 1.0

1.2. Cc bi tp v mng v ma trn


BAI 1.2.1: S CP BNG NHAU TRONG DY
Vit chng trnh m cc cp s bng nhau lin tip trong dy s nguyn.
D liu vo:
Dng u tin ghi s b test.
Mi b test c hai dng:
Dng u ghi s phn t ca dy, khng qu 30
Dng tip theo ghi cc phn t ca dy, mi phn t cch nhau mt khong
trng. Cc phn t khng qu 100.
Kt qu: Ghi ra mn hnh
Mi b test vit ra trn mt dng gi tr tng ch s tng ng
IT
V d:

Input Output
T

2 1
4 6
P

1 3 3 4
12
1 2 3 3 3 3 4 4 5 5 5 1

BAI 1.2.2: M CC S LN HN S NG TRC TRONG DY


Cho mt dy s nguyn dng c n phn t (2<=n<=50). Hy lit k s cc phn t trong
dy khng nh hn cac s ng trc n (tnh c phn t u tin).
D liu vo:
Dng 1 ghi s b test

15
BI TP K THUT LP TRNH Vesion 1.0

Vi mi b test: dng u tin ghi s n. Dng tip theo ghi n s nguyn dng ca
dy (cc s khng vt qu 1000).
Kt qu:
Ghi ra mn hnh trn mt dng s cc phn t tha mn.
V d:

Input Output

2 5
7 3
3568429
15
9 8 123 7 11 14 18 21 399 10 5 4 1 2 3 IT
BAI 1.2.3: ON S TIP THEO
An v Bnh chi tr chi s hc n gin. Dy s m An a ra l A =
T

{1,1,3,4,5,9,7,16,9,}v Bnh tm ra s tip theo trong dy . Rt nhanh chng, Bnh


tm c s tip theo l s 25. Bnh li An, nu cho trc mt s k khng qu 100, hy
P

tnh s ng v tr trong dy cho (th t trn dy tnh t 1). Bn hy gip An tnh ra


kt qu trn.
D liu vo:
Dng u l s b test, khng qu 20. Mi b test ghi trn mt dng s nguyn
dng k.
Kt qu:
Vi mi b test, a ra trn mt dng gi tr v tr k ca dy.
V d:
C.IN Kt qu
3 1
1 4
4 25
10

16
BI TP K THUT LP TRNH Vesion 1.0

BAI 1.2.4: TNG HAI A THC


Cho hai a thc P(x) -bc n v Q(x) -bc m c cc h s nguyn, n v m khng qu 100.
Hy vit chng trnh tnh tng hai a thc trn.
D liu vo:
Dng u tin cha s nguyn N l s b d liu ( 1 N 10 ).
Mi b d liu gm 4 dng:
Dng 1 ghi s n l bc ca P. Dng 2 ghi n+1 s nguyn tng ng l h s
ca P t P0 n Pn
Dng 3 ghi s m l bc ca Q. Dng 4 ghi m+ 1 s nguyn tng ng l h s
ca Q, t Q0 n Qm
Kt qu: Ghi ra mn hnh
Vi mi b d liu vo, in ra kt qu trn hai dng: Dng 1 ghi bc ca a thc
IT
tng. Dng 2 ghi ln lt cc h s ca a thc tng, tnh t 0.
V d:
D.IN Kt qu
T

1 5
3 235233
1234
P

5
1 1 2 -2 3 3

BAI 1.2.5: TM CC V TR BNG NHAU CA HAI MA TRN


Cho hai ma trn vung A v B ch gm s nguyn dng cp n . Hy vit chng trnh tm
ra cc v tr bng nhau trong hai ma trn (v tr [i,j] c coi l bng nhau nu A[i,j]=B[i,j]).
D liu vo:
Dng u tin ghi s b test. Vi mi b test: Dng u tin ghi s n; n dng tip
theo ghi ma trn A; n dng tip theo ghi ma trn B
Kt qu (ghi ra mn hnh):

17
BI TP K THUT LP TRNH Vesion 1.0

Vi mi b test ghi ra mt s nguyn dng m l s v tr bng nhau. m dng tip


theo ghi hai gi tr ch s ca tng cp (cch nhau mt khong trng). (Ch : cc
ch s u tnh t 0 n n-1).
V d:

Input Output

1 2
2 0 1
1 1 1 1
1 2
9 1
4 2 IT
BAI 1.2.6: S FIBONACI TH N
Dy Fibonaci c nh ngha nh sau: F(0) = 0, F(1)=1, , F(n)=F(n-1)+F(n-2). Cho
T

trc s nguyn dng n (khng qua 45), hy tnh s Fibonaci th n.


D liu vo:
P

Dng 1 ghi s b test. Mi b test ghi trn mt dng s nguyn dng n.


Kt qu (ghi ra mn hnh):
Vi mi b test ghi ra gi tr s Fibonaci th n.
V d:
Input Output
3 1
1 13
7 55
10

18
BI TP K THUT LP TRNH Vesion 1.0

BAI 1.2.7: TCH MA TRN VI CHUYN V CA N


Cho ma trn A ch gm cc s nguyn dng cp n*m . Hy vit chng trnh tnh tch
ca A vi ma trn chuyn v ca A.
D liu vo:
Dng u tin ghi s b test. Vi mi b test: Dng u tin ghi hai s n v m l
bc ca ma trn a; n dng tip theo, mi dng ghi m s ca mt dng trong ma trn
A.
Kt qu (ghi ra mn hnh):
Vi mi b test ghi ra ma trn tch tng ng, mi s cach nhau ng mt khong
trng.
V d:
Input Output
1 5 11
2 2
IT 11 25
1 2
3 4
T

BAI 1.2.8: S XUT HIN NHIU LN NHT TRONG DY


P

Cho mt dy s nguyn dng khng qua 100 phn t, cc gi tr trong dy khng qu


30000. Hy xac nh xem s no l s xut hin nhiu ln nht trong dy. Ch : trong
trng hp nhiu s khc nhau cng xut hin s ln bng nhau v l ln nht th in ra tt
c cc s theo th t xut hin trong dy ban u.
D liu vo:
Dng u l s b test, khng qu 20.
Mi b test gm hai dng. Dng u ghi s phn t ca dy, dng tip theo ghi cc
phn t ca dy.
Kt qu: Ghi ra mn hnh
Vi mi b test, a ra s xut hin nhiu ln nht trong dy cho.
V d:

19
BI TP K THUT LP TRNH Vesion 1.0

Input Output

2 1
10 1234567890
1231231231
10
1234567890

BAI 1.2.9: MA TRN N V


Mt ma trn vung A cp n ch gm cc s nguyn dng. A c gi l ma trn n v
nu tt c cc phn t trong A u l 0 hoc 1. Vit chng trnh kim tra xem mt ma trn
c i xng hay khng. IT
D liu vo:
Dng u tin ghi s b test (khng qu 10). Vi mi b test: Dng u tin ghi s
n l bc ca ma trn A; n dng tip theo, mi dng ghi n s ca mt dng trong ma
trn A.
T

Cc gi tr u khng qu 100.
Kt qu (ghi ra mn hnh):
P

Vi mi b test ghi ra mn hnh ch YES nu ng l ma trn n v, NO nu


ngc li.
V d:
Input Output
2 NO
2 YES
1 1
1 2
4
1100
1001
0011
1010

20
BI TP K THUT LP TRNH Vesion 1.0

BAI 1.2.10: TNG TAM GIC


S tam gic th n l tng ca n s t nhin u tin, T(n) = 1 + + n. N cng chnh l
s lng im trong mt mng tam gic c cnh l n, v d nh vi T(4) th:
X
XX
XXX
XXXX
Hy vit chng trnh tnh tng c trng s ca s tam gic:

W(n) k 1 k . T(k 1)
n

D liu vo:
Dng u tin cha s nguyn N l s b d liu ( 1 N 1000 ).
Mi b d liu gm 1 dng cha duy nht 1 s nguyn n ( 1 n 300 ) l s im
trn cnh ca tam gic.
IT
Kt qu: Ghi ra mn hnh
Vi mi b d liu vo, in ra trn mt dng s th t ca b d liu (1 n N), mt
du cch, gi tr ca n trong b d liu, mt du cch v tng c trng s W(n) ca
T

nhng s tam giac tng ng vi n.


V d:
P

D.IN Kt qu

4 1 3 45
3 2 4 105
4 3 5 210
5 4 10 2145
10

21
BI TP K THUT LP TRNH Vesion 1.0

BAI 1.2.11: XE TI U
Khi mua sm trn khu Long Street, Michael thng xe ca mnh mt s v tr ngu
nhin v i b vo ca hng. Bn hy gip Michael chn mt ch xe khong cch
phi i b khi mua hng l nh nht.
Long Street c th coi nh l mt ng thng m tt c nhng im mua hng l cac im
c ta nguyn.
D liu vo:
Dng u tin cha mt s nguyn 1 t 100 l s lng b test. Mi b test gm
2 dng, dng u tin ghi s ca hng n m Michael mun qua mua hng, 1 n
20 v dng th hai ghi n s nguyn l ta cac im ny trn ph Long Street, 0
xi 99.
Kt qu:
Vi mi b test, in ra mn hnh trn mt dng khong cch nh nht phi i b vi
ch xe ti u.
V d cho Input v Output:
IT
Input Ouput
2 152
4 70
T

24 13 89 37
6
P

7 30 41 14 39 42

BAI 1.2.12:
Ta nh ngha mt t l dy cc k t khng cha khong trng (space), du tab, du xung
dng (\n), du v u dng (\r) v du kt thc dng (\0). Tn xut xut hin ca t W
trong tp vn bn D1 v D2, k hiu l P(W) c tnh theo cng thc:
N1 (W ) N 2 (W )
P(W ) ; trong Ni(W) l s ln xut hin t W trong Di, N(Di) l tng
N ( D1 ) N ( D2 )
s t ca tp vn bn Di (i=1, 2).

22
BI TP K THUT LP TRNH Vesion 1.0

Cho hai file vn bn data1.in v data2.in. S dng CTDL Mng, hy tm tp cc t v


tn xut xut hin ca mi t hoc xut hin trong data1.in hoc xut hin trong data2.in.
Tp cc t tm c ghi li trong file Ketqua.out theo khun dng:
Dng u tin ghi li s t nhin K l s t W tm c theo yu cu ca bi ton.
K dng k tip, mi dng ghi li mt t W v tn xut xut hin P(W) tha mn yu
cu ca bi ton. W v P(W) c vit cch nhau bi mt vi khong trng.
V d vi file data1.in v data2.in di y s cho ta file Ketqua.out ca bi ton.

data1.in data2.in Ketqua.out

AB AC AD AE AF AB AC AD AH AK 3
AB AC AD AE AF AB AC AD AH AK AB 0.2
AC 0.2
AD 0.2
IT
BAI 1.2.13:
Ta nh ngha mt t l dy cc k t khng cha khong trng (space), du tab, du xung
T

dng (\n), du v u dng (\r) v du kt thc dng (\0). Tn xut xut hin ca t W
trong tp vn bn D1 v D2, k hiu l P(W) c tnh theo cng thc:
P

N1 (W ) N 2 (W )
P(W ) ; trong Ni(W) l s ln xut hin t W trong Di, N(Di) l tng
N ( D1 ) N ( D2 )
s t ca tp vn bn Di (i=1, 2).
Cho hai file vn bn data1.in v data2.in. S dng CTDL Mng, hy tm tp cc t v
tn xut xut hin ca cc t xut hin trong file data1.in nhng khng xut hin trong file
data2.in. Tp cc t tm c ghi li trong file Ketqua.out theo khun dng:
Dng u tin ghi li s t nhin K l s t W tm c theo yu cu ca bi ton.
K dng k tip, mi dng ghi li mt t W v tn xut xut hin P(W) tha mn yu
cu ca bi ton. W v P(W) c vit cch nhau bi mt vi khong trng.
V d vi file data1.in v data2.in di y s cho ta file Ketqua.out ca bi ton.

23
BI TP K THUT LP TRNH Vesion 1.0

data1.in data2.in Ketqua.out

AB AC AD AE AF AB AC AD AH AK 7
AB AC AD AE AF AB AC AD AH AK AB 0.2
AC 0.2
AD 0.2
AE 0.1
AF 0.1
AH 0.1
AK 0.1

BAI 1.2.14:
Ta nh ngha mt t l dy cc k t khng cha khong trng (space), du tab, du xung
IT
dng (\n), du v u dng (\r) v du kt thc dng (\0). Tn xut xut hin ca t W
trong tp vn bn D1 v D2, k hiu l P(W) c tnh theo cng thc:
N1 (W ) N 2 (W )
P(W ) ; trong Ni(W) l s ln xut hin t W trong Di, N(Di) l tng
T
N ( D1 ) N ( D2 )
s t ca tp vn bn Di (i=1, 2).
P

Cho hai file vn bn data1.in v data2.in. S dng CTDL Mng, hy tm tp cc t v


tn xut xut hin ca mi t ng thi trong c hai tp data1.in v data2.in. Tp cc t tm
c ghi li trong file Ketqua.out theo khun dng:
Dng u tin ghi li s t nhin K l s t W tm c theo yu cu ca bi ton.
K dng k tip, mi dng ghi li mt t W v tn xut xut hin P(W) tha mn yu
cu ca bi ton. W v P(W) c vit cch nhau bi mt vi khong trng.
V d vi file data1.in v data2.in di y s cho ta file Ketqua.out ca bi ton.

data1.in data2.in Ketqua.out

AB AC AD AE AF AB AC AD AH AK 2
AB AC AD AE AF AB AC AD AH AK AE 0.1
AF 0.1

24
BI TP K THUT LP TRNH Vesion 1.0

BAI 1.2.15:
Cho tp cc s t nhin ghi li trong file data.in theo tng dng; mi dng ghi li nhiu
nht 10 s; hai s c vit cch nhau mt vi khong trng; mi s t nhin c th xut
hin nhiu ln nhng v tr khc nhau trong file. Ta gi tn xut xut hin s t nhin X
N(X )
trong file data.in l P( X ) ; trong N(X) l s ln xut hin s t nhin X trong
K
file data.in, K l s cc s t nhin trong file data.in. S dng CTDL mng, hy vit chng
trnh tm s va nguyn t va thun nghch X c P(X) ln nht u tin tm c trong
file data.in. V d vi file data.in c cho di y, ta tm c s X = 131 va l s
nguyn t, va l s thun nghch vi tn xut xut hin ln nht l P(X) = 3/30 = 0.1.
data.in
10 131 171 13 37 27 IT30 23 77 444
10 131 171 20 23 77 23 27 77 444
10 131 171 20 23 77 23 27 77 444

BAI 1.2.16:
T

Cho tp cc s t nhin trong file data.in c ghi theo tng dng, mi dng ghi nhiu nht
5 s, hai s c vit cch nhau mt vi khong trng. Bit rng, mi s t nhin trong file
P

data.in hoc l s nguyn t, hoc l s thun nghch v c th xut hin nhiu ln nhng
v tr khc nhau trong file. S dng cu trc d liu mng, hy vit chng trnh tach tp
cc s v m s ln xut hin ca mi s trong file data.in thnh 3 file ketqua1.out,
ketqua2.out, ketqua3.out tha mn nhng yu cu di y.
a) File ketqua1.out ghi li cc s nguyn t nhng khng l s thun nghch cng vi
s ln xut hin ca n trong file data.in;
b) File ketqua2.out ghi li cc s thun nghch nhng khng l nguyn t cng vi s
ln xut hin ca n trong file data.in;
c) File ketqua3.out ghi li cc s va l s nguyn t va l s thun nghch cng vi
s ln xut hin ca n trong file data.in;
d) Khun dng ca cc file kt qu c qui nh nh sau:
Dng u tin ca mi file ghi li s cc s ca mi file kt qu;

25
BI TP K THUT LP TRNH Vesion 1.0

Nhng dng k tip mi dng ghi li mt s cng vi s ln xut hin ca


n trong file data.in. Hai s c vit cch nhau mt vi khong trng.
V d di y minh ha cho cc file data.in, ketqua1.out, ketqua2.out v ketqua3.out.

Data.in Ketqua1.out Ketqua2.out Ketqua3.out


10007 10009 10801 10901 13831 2 2 2
10007 10009 10801 10901 34543 10007 4 10801 4 13831 2
10007 10009 10801 10901 13831 10009 4 10901 4 34543 2
10007 10009 10801 10901 34543

BAI 1.2.17:
Cho mt hnh vung gm 5 x 5 hnh vung n v nh hnh v sau:

3 5 1 1 1
5 0 0 3 3
1 0
IT
3 4 3
1 3 4 2 1
1 3 3 1 3
T

Hy in cc ch s t 0 n 9 vo mi hnh vung n v sao cho nhng iu kin


sau c tha mn:
P

(i) c t tri sang phi theo hng ta nhn c nm s nguyn t c nm ch s;


(ii) c t trn xung di theo ct ta nhn c nm s nguyn t c nm ch
s;
(iii) c theo hai ng cho chnh t tri sang phi ta nhn c hai s nguyn t
c nm ch s;
(iv) Tng cc ch s trong mi s nguyn t u bng S cho trc (trong v d trn
S=11).
Input: Dng u tin ghi s b test, khng ln hn 100. Mi b test vit trn mt
dng mt b i hai s S, T tng ng vi tng cc ch s trong mi s nguyn t v gi
tr vung trn cng gc tri.
Output: Vi mi b test, output a ra mt s duy nht l s cc li gii ca bi
ton. Mi li gii ca bi ton l mt hnh vung gm 55 hnh vung n v. Hai li gii
c xem l khc nhau nu tn ti mt vung n v cng mt v tr c gi tr khc
nhau.

26
BI TP K THUT LP TRNH Vesion 1.0

V d cho Input v Output ca bi ton:


INPUT OUTPUT
3 5
11 3 0
11 9 0
11 8

BAI 1.2.18:
Tr chi Rubik trn mt phng c th c m t bng dy cc s t 1 n 8 v c chia
thnh hai hng. Ta qui c trng thi khi u S ca Rubik l trng thai trong hnh 1. Ngi
ta chng minh c rng, t trng thi khi u S ta c th dch chuyn thnh trng thi
T bt k trn cc thao tac A, B, C di y:
A : i hng trn cho hng di (Hnh 2).
IT
B : To nn mt hon v vng trn mi hng (Hnh 3).
C : Quay 90 4 gia (Hnh 4)
Hnh 1. Trng thi khi u S
T

1 2 3 4
8 7 6 5
P

Hnh 2. Thao tc A Hnh 3. Thao tc B Hnh 4. Thao tc C


8 7 6 5 4 1 2 3 1 7 2 4
1 2 3 4 5 8 7 6 8 6 3 5

Yu cu: Cho trc mt trng thi kt thc T. Hy chuyn S thnh T sao cho s cc
php A, B, C thc hin l t nht.
Input: Dng u tin ghi s b test, khng ln hn 100. Mi b test c t chc trn
mt dng l gi tr trng thi kt thc T.
Output: Vi mi b test, vit ra trn mt dng s cac bc A, B, C t nht.

27
BI TP K THUT LP TRNH Vesion 1.0

INPUT OUTPUT
2 7
2 6 8 4 5 7 3 1 0
1 2 3 4 5 6 7 8

1.3. Cc bi tp v xu k t
BAI 1.3.1: PHP CNG S NGUYN
Vit chng trnh cng hai s nguyn dng bt k (khng qu 256 ch s).
D liu vo:
IT
Dng 1 ghi s b test. Mi b test gm 2 dng, mi dng ghi mt s nguyn dng
Kt qu (ghi ra mn hnh):
Vi mi b test ghi ra mt s nguyn dng l tng hai s cho (s ny cng
T

khng qu 256 ch s).


V d:
P

Input Output

3 112
12 10100
100 121212121257800190
1212
8888
121212121212121212
45678978

28
BI TP K THUT LP TRNH Vesion 1.0

BAI 1.3.2: DANH SCH IN THOI NHT QUN


Cho mt danh sch cc s in thoi, hy xac nh danh sch ny c s in thoi no l
phn trc ca s khc hay khng? Nu khng th danh sach ny c gi l nht qun.
Gi s mt danh sch c cha cc s in thoi sau:
- S khn cp: 911
- S ca alice: 97 625 999
- S ca Bob: 91 12 54 26
Trong trng hp ny, ta khng th gi cho Bob v tng i s kt ni bn vi ng dy
khn cp ngay khi bn quay 3 s u trong s ca Bob, v vy danh sch ny l khng nht
qun.

D liu vo:
Dng u tin cha mt s nguyn 1 t 40 l s lng b test. Mi b test s bt
u vi s lng s in thoi n c ghi trn mt dng, 1 n 10000. Sau l
n dng, mi dng ghi duy nht 1 s in thoi. Mt s in thoi l mt dy khng
qu 10 ch s.
IT
Kt qu:
Vi mi b d liu vo, in ra YES nu danh sch nht quan v NO trong trng
T
hp ngc li.
V d cho Input v Output:
P

Input Output
2 NO
3 YES
911
97625999
91125426
5
113
12340
123440
12345
98346

29
BI TP K THUT LP TRNH Vesion 1.0

BAI 1.3.3: CHUN HA XU H TN


Mt xu h tn c coi l vit chun nu ch cai u tin mi t c vit hoa, cc ch
ci khc vit thng. Cc t cach nhau ng mt du cch v khng c khong trng tha
u v cui xu. Hy vit chng trnh a cac xu h tn v dng chun.
D liu vo:
Dng 1 ghi s b test. Mi b test ghi trn mt dng xu k t h tn, khng qu 80
k t.
Kt qu (ghi ra mn hnh):
Vi mi b test ghi ra xu k t h tn chun ha.
V d:
Input Output
3 Nguyen Van Nam
nGuYEN vAN naM Tran Trung Hieu
tRan TRUNG
IT
hiEU Vo Le Hoa Binh
vO le hOA bINh
T

1.4. Cc bi tp v file v cu trc


BAI 1.4.1: M T KHC NHAU
P

Vit chng trnh m s t khc nhau ca mt file vn bn.


D liu vo: File: A.IN
Gm nhiu dng, ch bao gm cc ch ci.
Kt qu: Ghi ra mn hnh
Vit ra s t khc nhau trong file.
V d:

A.IN Kt qu

Xin chao cac ban 8


Xin moi cac ban tap trung hoc tap

30
BI TP K THUT LP TRNH Vesion 1.0

BAI 1.4.2: M S NGUYN T KHC NHAU


Cho mt file vn bn ch bao gm cc s nguyn khng qu 9 ch s. Vit chng trnh
m xem trong file c bao nhiu s nguyn t khc nhau.
D liu vo: File: B.IN
Gm nhiu dng, ch bao gm cc s nguyn, cch nhau mt hoc mt vi khong
trng.
Kt qu: Ghi ra mn hnh
Vit ra s cc s nguyn t khc nhau.
V d:

B.IN Kt qu

11 13 14 16 18 21 13 23 99 88 77 66
IT 4
13 13 13 13 23 23 23 13 24 25 26 27 28 97
T

BAI 1.4.3: TM T THUN NGHCH DI NHT TRONG FILE VN BN


Cho mt file vn bn bt k. Hy tm ra t tha mn tnh cht thun nghch c di ln
P

nht trong file v cho bit t xut hin bao nhiu ln. Nu c nhiu t cng c
di ln nht th in ra tt c cc t theo th t xut hin trong file ban u.
D liu vo: File C.IN
Gm mt on vn bn bt k. Khng qu 1000 t.
Kt qu (ghi ra mn hnh):
Ghi ra trn mt dng t thun nghch c di ln nht v s ln xut hin ca
n.
Nu c nhiu t cng c di ln nht th cc t c lit k theo th t xut
hin ban u.
V d:
C.IN KT QUA

31
BI TP K THUT LP TRNH Vesion 1.0

AAA BAABA HDHDH ACBSD SRGTDH DDDDS HDHDH 3


DUAHD AAA AD DA HDHDH AAA AAA AAA AAA
DDDAS HDHDH HDH AAA AAA AAA AAA AAA
AAA AAA AAA
DHKFKH DHDHDD HDHDHD DDDHHH HHHDDD
TDTD

BAI 1.4.4: TM T DI NHT TRONG FILE


Cho mt file vn bn bt k. Hy tm ra t c di ln nht trong file. Nu c nhiu t
khac nhau c di bng nhau v bng gi tr ln nht th in ra tt c cc t theo th t
xut hin trong file d liu vo (nhng mt t d xut hin nhiu ln cng ch c lit k
mt ln).
D liu vo: File D.IN
Gm mt on vn bn bt k. Khng qu 1000 t.
IT
Kt qu:
Ghi ra mn hnh t di nht v di ca n, cch nhau mt khong trng. Nu c
nhiu t nh vy th lit k ln lt cc t theo th t xut hin trong file ban u.
T
V d:

D.IN KT QUA
P

Tiet hoc cuoi cung da ket thuc. Mon hoc Tin hoc co so 2 thuc. 5
da ket thuc. Cac ban co gang on tap tot de thi dat ket qua nhieu 5
cao. Chuc cac ban ngay cang gat hai duoc nhieu thanh thanh 5
cong tren con duong da chon duong 5

BAI 1.4.5: TM T THUN NGHCH DI NHT TRONG FILE VN BN


Cho mt file vn bn bt k. Hy tm ra t tha mn tnh cht thun nghch c di ln
nht trong file v cho bit t xut hin bao nhiu ln. Nu c nhiu t cng c
di ln nht th in ra tt c cc t theo th t xut hin trong file ban u.
D liu vo: File E.IN

32
BI TP K THUT LP TRNH Vesion 1.0

Gm mt on vn bn bt k. Khng qu 1000 t.
Kt qu (ghi ra mn hnh):
Ghi ra trn mt dng t thun nghch c di ln nht v s ln xut hin ca
n.
Nu c nhiu t cng c di ln nht th cc t c lit k theo th t xut
hin ban u.
V d:
E.IN KT QUA
AAA BAABA HDHDH ACBSD SRGTDH DDDDS HDHDH 3
DUAHD AAA AD DA HDHDH AAA AAA AAA AAA
DDDAS HDHDH HDH AAA AAA AAA AAA AAA
AAA AAA AAA
DHKFKH DHDHDD HDHDHD DDDHHH HHHDDD
TDTD IT
BAI 1.4.6: SP XP TH SINH
Hy sp xp danh sach th sinh c trong file theo tng im gim dn.
Mi th sinh gm cc thng tin:
T

M th sinh: l mt s nguyn, t ng tng. Tnh t 1.


Tn th sinh, ngy sinh
P

im mn 1, im mn 2, im mn 3
D liu vo: File: F.IN
Dng u cha s th sinh. Mi th sinh vit trn 3 dng:
Dng 1: Tn th sinh
Dng 2: Ngy sinh
Dng 3,4,5: 3 im thi tng ng. Cac im thi u m bo hp l (t 0 n
10).
Kt qu: Ghi ra mn hnh
In ra danh sach th sinh sp xp theo tng im gim dn. Nu 2 th sinh bng
im nhau th th sinh no xut hin trc trong file s vit trc. Mi th sinh vit
trn mt dng gm: m, tn, ngy sinh v tng im. Cac thng tin cach nhau ng
1 khong trng. im tng c lm trn n 1 s sau du phy.

33
BI TP K THUT LP TRNH Vesion 1.0

V d
F.IN Kt qu
3 2 Nguyen Van B 1/9/1994 26.5
Nguyen Van A 1 Nguyen Van A 12/12/1994 16.0
12/12/1994 3 Nguyen Van C 6/7/1994 14.0
3.5
7.0
5.5
Nguyen Van B
1/9/1994
7.5
9.5
9.5
Nguyen Van C IT
6/7/1994
4.5
4.5
5.0
T
P

BAI 1.4.7: SP XP MT HNG


Hy sp xp danh sch cc mt hng c trong file theo li nhun gim dn.
Mi mt hng gm cc thng tin:
M mt hng: l mt s nguyn, t ng tng. Tnh t 1.
Tn mt hng, nhm hng: l cc xu k t
Gi mua, gi bn: l cc s thc (khng qu 9 ch s)
D liu vo: File: H.IN
Dng u cha s mt hng. Mi mt hng vit trn 4 dng:
Dng 1: Tn mt hng
Dng 2: Nhm hng
Dng 3: Gi mua.
Dng 4: Gi bn
Kt qu: Ghi ra mn hnh

34
BI TP K THUT LP TRNH Vesion 1.0

In ra danh sch mt hng sp xp theo li nhun gim dn (li nhun tnh bng gi bn
tr i gia mua). Nu 2 mt hng li nhun bng nhau th mt hng no xut hin trc
trong file s vit trc. Mi mt hng vit trn mt dng gm: m, tn, nhm hng v li
nhun. Cac thng tin cach nhau ng 1 khong trng.
V d
D.IN Kt qu
3 2 Tu lanh Side by Side Dien lanh 7699
May tinh SONY VAIO 1 May tinh SONY VAIO Dien tu 1299
Dien tu 3 Banh Chocopie Tieu dung 10.5
16400
17699
Tu lanh Side by Side
Dien lanh
18300
25999
Banh Chocopie IT
Tieu dung
27.5
37
T
P

35
BI TP K THUT LP TRNH Vesion 1.0

II. Lp trnh da vo k thut duyt va qui


1.5. K thut vt cn
BAI 2.1.1: BI TON C: VA G VA CH
Va g va ch, b li cho trn 36 con, mt trm chn chn. Hi s con mi loi. Hy s
dng phng phap vt cn gii bi ton.
D liu vo:

S con 36.
S chn 100.
Kt qu:
Ghi ra mn hnh s con g, s con ch. Mi loi mt dng.

BAI 2.1.2: TM CC I CHO HM S


IT
Vit chng trnh tm X = (x1, x2,..,xn ) v gia tr f(X) ca hm
(1 , 2 , , ) = =1 t gia tr ln nht. Trong ,
T

= (1 , 2 , , ) = {=1 ; {0,1}} , ci, ai, b l cac s nguyn


dng, n 100.
P

D liu vo:

D liu vo n, cj, aj, b c cho trong file data.in theo khun dng sau:
Dng u tin ghi li s t nhin n v b. Hai s c ghi cach nhau bi mt vi
k t trng;
Dng k tip ghi li n s c i (i=1, 2, .., n ). Hai s c ghi cach nhau bi mt
vi k t trng;
Dng cui cng ghi li n s a i ( i = 1, 2, ..,n). Hai s c ghi cach nhau bi
mt vi k t trng.
Kt qu:

Gia tr ti u f(x1,x2,..,xn) v phng an ti u X = (x1 , x2,..,xn) tm c ghi li


trong file ketqua.out theo khun dng sau:

36
BI TP K THUT LP TRNH Vesion 1.0

Dng u tin ghi li gia tr ti u f(x1,x2,..,xn );


Dng k tip ghi li phng an ti u X = (x1, x2,..,xn ). Hai phn t khac
nhau ca X c ghi cach nhau bi mt vi khong trng.
Vi d:

V d di y s minh ha cho file data.in v ketqua.out ca bi toan:

Data.in Ketqua.out

4 10 12
5 1 9 3 0 0 1 1
5 3 6 4

BAI 2.1.3: LIT K DY CON


IT
Cho dy A[] gm N s t nhin khac nhau v s t nhin K. Hy vi t chng trnh lit k
tt c cac dy con ca dy s A[] sao cho tng cac phn t trong dy con ng bng K.
D liu vao:
T

D liu vo cho bi file dayso.in theo khun dng sau:


P

Dng u tin ghi li s t nhin N l s cac s ca dy s A[] v s t nhin K, hai


s c vit cach nhau bi mt vi khong trng;
Dng k tip ghi li N s ca dy s A[], hai s c vit cach nhau mt vi khong
trng.
Kt qu:
Cac dy con tho mn iu kin tm c ghi li trong file ketqua.out theo khun dng
sau:
Dng u tin ghi li s cac dy con c tng cac phn t ng bng K tm c;
Nhng dng k tip mi dng ghi li mt dy con. Hai phn t khac nhau ca dy
con c vit cach nhau bi mt vi khong trng.
Vi d:

37
BI TP K THUT LP TRNH Vesion 1.0

V d di y s minh ho cho file dayso.in v ketqua.out ca bi toan.

Dayso.in ketqua.out

7 50 7
5 10 15 20 25 30 35 20 30
15 35
5 20 25
5 15 30
5 10 35
5 10 15 20
5 10 15 20

BAI 2.1.4: T HP
IT
Mt t hp chp k ca n l mt tp con k phn t ca tp n phn t.
Chng hn tp {1,2,3,4} c cac t hp chp 2 l: {1,2}, {1,3, {1,4, {2,3}, {2,4}, {3,4}. V
T

trong tp hp cac phn t khng phn bit th t nn tp {1,2} cng l tp {2,1} v do ,


ta coi chng ch l mt t hp.
P

Bi toan t ra cho chng ta l hy xac nh tt c cac t hp chp k ca tp n phn t.


n gin ta ch xt bi toan tm cac t hp ca tp cac s nguyn t 1 n n. i vi mt
tp hu hn bt k, bng cach anh s th t ca cac phn t, ta cng a c v bi toan
i vi tp cac s nguyn t 1 n n.
D liu vao:
File input gm: dng u ghi 2 s nguyn dng n, k cach nhau bi du cach.
Kt qu:
File output ghi mi dng mt t hp k ca n phn t.

38
BI TP K THUT LP TRNH Vesion 1.0

BAI 2.1.5: CHNH HP LP


Chnh hp lp chp k ca n l mt dy k thnh phn, mi thnh phn l mt phn t ca
tp n phn t, c xt n th t v khng yu cu cac thnh phn khac nhau.
Mt v d d thy nht ca chnh hp lp l cac dy nh phn. Mt dy nh phn di m
l mt chnh hp lp chp m ca tp 2 phn t {0,1}. Chng hn 101 l mt dy nh phn
di 3. Ngoi ra ta cn c 7 dy nh phn di 3 na l 000, 001, 010, 011, 100, 110,
111. V c xt th t nn dy 101 v dy 011 l 2 dy khac nhau.
D liu vao:
File input gm: dng u ghi 2 s nguyn dng n, k cach nhau bi du cach.
Kt qu:
File output ghi mi dng mt chnh hp lp chp k ca n phn t.

BAI 2.1.6: CHNH HP KHNG LP


IT
Khac vi chnh hp lp l cac thnh phn c php lp li, tc l c th ging nhau, chnh
hp khng lp chp k ca tp n phn t cng l mt dy k thnh phn ly t tp n phn t
c xt th t nhng cac thnh phn khng c php ging nhau.
T

Chng hn c n ngi, mt cach chn ra k ngi xp thnh mt hng l mt chnh hp


khng lp chp k ca n.
P

Mt trng hp c bit ca chnh hp khng lp l hoan v. Hoan v ca mt tp n phn


t l mt chnh hp khng lp chp n. Ni mt cach trc quan th hoan v ca tp n phn
t l php thay i v tr ca cac phn t (do mi gi l hoan v).
D liu vao:
File input gm: dng u ghi 2 s nguyn dng n, k cach nhau bi du cach.
Kt qu:
File output ghi mi dng mt chnh hp khng lp chp k ca n phn t.

BAI 2.1.7: TM 2 S NGUYN T


Tm 2 s nguyn t tha mn khi bit n: n = p*q.

39
BI TP K THUT LP TRNH Vesion 1.0

D liu vao (nhp t ban phim):


n l s nguyn dng.
Kt qu:
In ra mn hnh 2 s p, q cach nhau bi du cach.

BAI 2.1.8: TM NGHIM PHNG TRNH


Tm nghim nguyn ca phng trnh: ax+by = c, vi a,b,c l cac s nguyn.
D liu vao (nhp t ban phim):
Cac s nguyn a,b,c.
Kt qu:
In ra mn hnh cac nghim tha mn, mi dng 2 s x,y cach nhau bi du cach.

BAI 2.1.9:
IT
TM S LN NHT TRONG DY S CHO TRC
Cho mt dy s nguyn bt k, hy tm ra s ln nht.
D liu vao (nhp t ban phim):
T

Dy s nguyn, cac s cach nhau bi du cach, kt thc nhp bi Enter.


Kt qu:
P

In ra mn hnh s ln nht.

BAI 2.1.10: BI TON CI TI


Mt k trm t nhp vo mt ca hiu tm thy c n mt
hng c trng lng v gia tr khac nhau, nhng hn ch
mang theo mt cai ti c sc cha v trng lng ti a
l M. Vy k trm nn b vo ba l nhng mn no v s
lng bao nhiu t gia tr cao nht trong kh nng m
hn c th mang i c.

D liu vao:

40
BI TP K THUT LP TRNH Vesion 1.0

File input: dng u ghi n, M l s nguyn dng, dng th hai ghi trng lng
ca n mt hng wi , cach nhau bi du cach, dng th 3 ghi gia tr ca n mt hng
ci .
Kt qu:
File output ghi phng an ti u nht th t cac mt hng mang i c.

BAI 2.1.11: T DU NGOC


Cho s nguyn dng n (n<=10), lit k tt c cac cach khac nhau t n du ngoc m v
n du ngoc ng ng n?
VD:
n=3 -> c 5 cch:
1. ((( ))) 2. (( ) ( )) 3. (( ))() 4. ()(( )) 5. ()()()
IT
BAI 2.1.12: TM S NGUYN DNG NH NHT
Cho n (n<=10) s nguyn dng a1,a2,...,an (ai<=10^9). Tm s nguyn dng m nh nht
sao cho m khng phn tch c di dng tng ca mt s cac s (mi s s dng khng
T

qua 1 ln) thuc n s trn.


VD: n=4, A= (1,2,3,4) kt qu ra s l 13.
P

BAI 2.1.13: BAI TON 36 S QUAN


Bi toan 36 s quan l bi toan t hp ni ting do nh toan hc Thy S le a ra vo th
k XVIII. Ni dung bi toan nh sau: C 36 s quan thuc 6 loi qun hm, t 6 n v
khc nhau. Hy tm cach xp thnh i hnh 6 hng ngang, 6 hng dc th no cho trn
mi hng ngang, hng dc ch c cac s quan khng cng qun hm v cng n v.

BAI 2.1.14: O CH CI
Bn phi vit chng trnh a ra tt c cac t c th c phat sinh t mt tp cac ch cai.
V d: Cho t abc, chng tr nh ca bn phi a ra c cac t "abc", "acb", "bac",

41
BI TP K THUT LP TRNH Vesion 1.0

"bca", "cab" v "cba" (bng cach kho sat tt c cac trng hp khac nhau ca t hp ba
ch cai cho).
D liu vao:
D liu vo c cho trong tp input.txt cha mt s t. Dng u tin l mt s t
nhin cho bit s t c cho di. Mi dng tip theo cha mt t. Trong , mt
t c th cha c ch cai thng hoc hoa t A n Z. Cac ch thng v hoa c
coi nh l khac nhau. Mt ch cai no c th xut hin nhiu hn mt ln.
Kt qu:
Vi mi t cho trong file Input.txt, kt qu nhn c ra file Output.txt phi cha
tt c cac t khac nhau c sinh t cac ch cai ca t . Cac t c sinh ra t mt
t cho phi c a ra theo th t tng dn ca bng ch cai.
Vi d:

Input.txt
IT Output.txt

2 abc
abc acb
acba bac
T

bca
cab
P

cba
aabc
aacb
abac
abca
acab
acba
baac
baca
bcaa
caab
caba
cbaa

42
BI TP K THUT LP TRNH Vesion 1.0

BAI 2.1.15: TO MA TRN S


Cho trc s nguyn dng N bt k. H y vit thut toan v chng trnh to lp bng
NxN phn t nguyn dng theo quy lut c cho trong v d sau:
123456
2 4 6 8 10 12
3 6 9 12 2 4
4 8 12 2 4 6
5 10 2 4 6 8
6 12 4 6 8 10
Thc hin chng trnh trn may vi N=12, a ra mn hnh ma trn kt qu (c dng
nh trong v d).

BAI 2.1.16: DY S NGUYN


IT
Dy cac s t nhin c vit ra thnh mt dy v hn trn ng thng:
1234567891011121314..... (1)
T

Hi s v tr th 1000 trong dy trn l s no?


P

Bn hy vit chng trnh tnh toan.


Tng quat bi toan trn: Chng trnh yu cu nhp s K t bn phm v in ra trn mn
hnh kt qu l s nm v tr th K trong dy (1) trn. Yu cu chng trnh chy cng
nhanh cng tt.

BAI 2.1.17: M NH PHN GRAY


Trong gi hc mn in t s v m Gray, M cht ny sinh ra mt bi toan code. Bi
ton rt n gin nh sau: In ra ln lt bng m gray n-bit.
M Gray l m nh phn m hai m lin k trong bng m ch khac nhau mt bit. Cac gia
tr na sau ca bng m c s i xng vi na u ca bng m theo th t ngc li,
ngoi tr bit cao nht b o gia tr (bit cao nht l bit ngoi cng bn trai). Tnh cht i
xng ny vn ng cho cac bit thp hn trong mi na, mi phn t,... ca bng m.

43
BI TP K THUT LP TRNH Vesion 1.0

D liu vao:
Mt s nguyn duy nht n (1<=n<=16).
Kt qu:
Bng m gray n-bit theo th t, mi m trn mt dng.
Vi d:

INPUT OUTPUT INPUT OUTPUT INPUT OUTPUT


2 00 3 000 4 0000
01 001 0001
11 011 0011
10 010 0010
110 0110
111 0111
101 0101
100 0100
1100
IT 1101
1111
1110
1010
1011
T

1001
1000
P

BAI 2.1.18: LIT K HON V


Lit k hon v ca n phn t ca mt tp gm cc s t 1->n.
D liu vao:
Dng duy nht cha s n (1<=n<=8)
Kt qu:
Cc hon v sp xp theo th t t in tng dn.
Vi d:

Input.txt Output.txt

44
BI TP K THUT LP TRNH Vesion 1.0

3 123
132
213
231
312
321

BAI 2.1.19:
Cho mt chui gm n bt X = (x1, x2, .., xn). Ta gi K l tng cc bt lin k ca chui X (
k hiu l AdjBC(X)) c tnh toan nh sau:
n 1
K xi xi 1 ;
i 1

V d :
IT
AdjBC(011101101) = 3
AdjBC(111101101) = 4
AdjBC(010101010) = 0
T

Vit chng trnh tm s cc chui bt c di N c tng cc bt lin k ng bng K. V


d vi N = 5, ta c 6 chui c tng cc bt lin k l 2 nh sau:
P

11100, 01110, 00111, 10111, 11101, 11011.


Input:
Dng u tin ghi li s t nhin T l s test ca bi ton;
T dng k tip, mi dng ghi li mt test. Mi test ghi li cp ba s i, N, K.
Trong , i l s th t ca test, N l di chui bt, K l tng cc bt lin
k. Cc s c ghi cch nhau mt vi khong trng.
Output:
Ghi li s hiu test v s cc bt lin k tha mn yu cu bi ton trn mt
dng. Hai s c vit cch nhau mt vo khong trng.
InputB: OutputB:
10 1 6
1 5 2 2 63426
2 20 8 3 1861225
3 30 17 4 1682122501
4 40 24 5 44874764
5 50 37 6 160916

45
BI TP K THUT LP TRNH Vesion 1.0

6 60 52 7 22937308
7 70 59 8 99167
8 80 73 9 15476
9 90 84 10 23076518
10 100 90

1.6. K thut sinh k tip


BAI 2.2.1: LIT K DY NH PHN C DAI CHO TRC
Sinh cc dy nh phn c di n.
D liu vao:
S nguyn duy nht n (1<=n<=9)
Kt qu:
Mi dng mt dy nh phn. Cc dy nh phn phi c lit k theo th t t in.
IT
V d:

Input.txt Output.txt
T

2 00
P

01
10
11

Gi y:
Ta d dng xc nh c cu hnh u tin l 0000.0 ( di n) v dy cui cng l
11111. xc nh c dy nh phn ng sau ta ly dy nh phn hin ti + 1 (bit 1).
V d: dy nh phn hin ti 000 > dy k tip 000+1=001.
Xy dng thut ton sinh k tip:
- Khi to dy nh phn ban u l 0000

46
BI TP K THUT LP TRNH Vesion 1.0

- Duyt dy nh phn t cui, nu phn t cui l bit 0 th thay n bng bit 1.Cn cc bit
khc c duyt qua c gn =1. (sinh k tip)
while (cha v u dy nh phn) do
i=n;
while(s[i]==1) do
begin
s[i]=0;
i
end
s[i]=1;
end;

BAI 2.2.2: LIT K CHNH HP LP CHP K CA N PHN T


Cho n phn t t 1,..,n. Hy lit k cac chnh hp lp chp k ca n phn t trn.
IT
D liu vao:
S nguyn k, n (1<=k, n<=9)
Kt qu:
T

Mi dng mt dy cac chnh hp lp chp k ca n phn t 1,,n.


P

BAI 2.2.3: HON V CA N PHN T


Xem bi 2.1.18.

BAI 2.2.4: T HP CHP K CA N PHN T


Xem bi 2.1.4.

BAI 2.2.5: LIT K DY NH PHN KHNG C HAI S 0 LIN TIP


Hy lit k cc dy nh phn c di n sao cho dy to ra khng c 2 s 0 lin tip nhau.
D liu vao:
S nguyn duy nht n (1<=n<=9)

47
BI TP K THUT LP TRNH Vesion 1.0

Kt qu:
Mi dng mt dy nh phn. Cc dy nh phn phi c lit k theo th t t in.
V d:

Input.txt Output.txt

2 01
10
11

BAI 2.2.6: SINH TNG CON K TIP


Cho n l s nguyn dng. Mt cach phn chia s n l biu din n thnh tng cac s t
nhin khng ln hn n. Lit k tt c cac tng con c th c ca n, th t n gin nht l
IT
th t t in (s dng phng phap sinh t hp sinh ra cu hnh tip theo khng dng
quay lui).
D liu vao:
T

S nguyn duy nht n (1<=n<=9)


Kt qu:
P

Mi dng mt dy tha mn yu cu. Cc dy nh phn phi c lit k theo th


t t in.
V d:

Input.txt Output.txt

7 7
61
52
511
43
421
4111
331

48
BI TP K THUT LP TRNH Vesion 1.0

322
3211
31111
2221
22111
211111
1111111

BAI 2.2.7:
Cho dy A[] gm N s t nhin khc nhau v s t nhin K. Hy s dng thut ton sinh
vit chng trnh lit k tt c cc dy con ca dy s A[] sao cho tng cc phn t trong
dy con ng bng K. D liu vo cho bi file dayso.in theo khun dng sau:
Dng u tin ghi li s t nhin N l s cc s ca dy s A[] v s t nhin K,
hai s c vit cch nhau bi mt vi khong trng;
Dng k tip ghi li N s ca dy s A[], hai s c vit cch nhau mt vi
khong trng.
IT
Cc dy con tho mn iu kin tm c ghi li trong file ketqua.out theo khun dng sau:
Dng u tin ghi li s cc dy con c tng cc phn t ng bng K tm c;
Nhng dng k tip mi dng ghi li mt dy con. Hai phn t khc nhau ca dy
con c vit cch nhau bi mt vi khong trng.
T

V d di y s minh ho cho file dayso.in v ketqua.out ca bi ton.


P

Dayso.in Ketqua.out

5 50 3
10 15 25
5 10 15 20 25 5 20 25
5 10 15 20

BAI 2.2.8:
Cho dy gm N s nguyn phn bit A[] = {a1, a2, .., aN } v s t nhin K ( KN100).
Hy s dng thut ton sinh vit chng trnh lit k tt c cc dy con K phn t tng dn
t nhin ca dy s A[]. D liu vo cho bi file dayso.in theo khun dng sau:

49
BI TP K THUT LP TRNH Vesion 1.0

Dng u tin ghi li hai s t nhin N, K. Hai s c vit cch nhau mt vi khong
trng;
Nhng dng k tip ghi li N s nguyn ca dy s A[], hai s khac nhau c vit
cch nhau mt vi khong trng.
Cc dy con K phn t tng dn ca dy s A[] tm c ghi li trong file ketqua.out
theo khun dng:
Dng u tin ghi li s t nhin M l s cc dy con K phn t tng dn ca dy
s A[] tm c;
M dng k tip, mi dng ghi li mt dy con. Hai phn t khc nhau ca dy con
c vit cch nhau bi mt vi khong trng.
V d vi file dayso.in di y s cho ta file ketqua.out tng ng.

dayso.in ketqua.out
5 3 7
2 5 15 10 20 2 5 15
2 5 10
2 5 20
2 15 20
IT
2 10 20
5 15 20
5 10 20
T

BAI 2.2.9:
P

Cho dy gm N s nguyn phn bit A[] = {a1, a2, .., aN } v s t nhin K ( KN100).
Hy s dng thut ton sinh vit chng trnh lit k tt c cc dy con K phn t tng dn
t nhin ca dy s A[]. D liu vo cho bi file dayso.in theo khun dng sau:
Dng u tin ghi li hai s t nhin N, K. Hai s c vit cch nhau mt vi khong
trng;
Nhng dng k tip ghi li N s nguyn ca dy s A[], hai s khac nhau c vit
cch nhau mt vi khong trng.
Cc dy con K phn t tng dn ca dy s A[] tm c ghi li trong file ketqua.out
theo khun dng:
Dng u tin ghi li s t nhin M l s cc dy con K phn t tng dn ca dy
s A[] tm c;
M dng k tip, mi dng ghi li mt dy con. Hai phn t khc nhau ca dy con
c vit cch nhau bi mt vi khong trng.
V d vi file dayso.in di y s cho ta file ketqua.out tng ng.

50
BI TP K THUT LP TRNH Vesion 1.0

dayso.in ketqua.out
5 3 7
2 5 15 10 20 2 5 15
2 5 10
2 5 20
2 15 20
2 10 20
5 15 20
5 10 20

BAI 2.2.10:
Cho ma trn vung C = (cij) cp N (1 i, j N100) gm N2 s t nhin (cc s khng nht
thit phi khc nhau) ghi li trong file matran.in theo khun dng sau :
Dng u tin ghi li s t nhin N l cp ca ma trn vung C;
N dng k tip ghi li ma trn vung C = (cij). Hai phn t khc nhau ca ma trn
c ghi cch nhau bi mt vi khong trng.
Hy s dng thut ton sinh thch hp vit chng trnh ly trn mi hng, mi ct
IT
duy nht mt phn t ca ma trn C sao cho tng cc phn t ny l nh nht. Kt qu
tm c ghi li trong file ketqua.out theo khun dng:
Dng u tin ghi li tng gi tr nh nht ca N phn t tm c;
N dng k tip, mi dng ghi li ba s i, j, cij tng ng vi ch s hng, ch s ct
T

v gi tr phn t tng ng ca ma trn. Ba s c vit cch nhau mt vi khong


trng.
P

V d v file matran.in v ketqua.out:

matran.in ketqua.out
6 82
10 64 57 29 18 15 1 1 10
34 20 19 30 16 12 2 6 12
57 49 40 16 11 19 3 4 16
29 21 46 26 21 18 4 5 21
28 16 11 21 21 37 5 3 11
15 12 15 48 37 30 6 2 12

51
BI TP K THUT LP TRNH Vesion 1.0

BAI 2.2.11:
Cho dy gm N s nguyn phn bit A[] = {a1, a2, .., aN } v s t nhin K ( KN100).
Hy s dng thut ton sinh vit chng trnh lit k tt c cc dy con K phn t gim
dn t nhin ca dy s A[]. D liu vo cho bi file dayso.in theo khun dng sau:
Dng u tin ghi li hai s t nhin N, K. Hai s c vit cch nhau mt vi khong
trng;
Nhng dng k tip ghi li N s nguyn ca dy s A[], hai s khac nhau c vit
cch nhau mt vi khong trng.
Cc dy con K phn t tng dn ca dy s A[] tm c ghi li trong file ketqua.out
theo khun dng:
Dng u tin ghi li s t nhin M l s cc dy con K phn t tng dn ca dy
s A[] tm c;
M dng k tip, mi dng ghi li mt dy con. Hai phn t khc nhau ca dy con
c vit cch nhau bi mt vi khong trng.
V d vi file dayso.in di y s cho ta file ketqua.out tng ng.

dayso.in
5 3
IT
ketqua.out
7
2 5 15 10 20 2 5 15
2 5 10
2 5 20
T

2 15 20
2 10 20
5 15 20
P

5 10 20

BAI 2.2.12:
Hy s dng thut ton sinh (quay lui, nhnh cn, qui hoch ng) vit chng trnh Vit
n
chng trnh tm X = (x1, x2,..,xn) v gi tr f ( x1 , x2 ,.., xn ) ci xi t gi tr ln nht. Trong
i 1

n

, X x1 , x2 ,.., xn D ai xi b; xi 0,1 , ci, ai, b l cc s nguyn dng, n 100
i 1
D liu vo n, cj, aj, b c cho trong file data.in theo khun dng sau:
Dng u tin ghi li s t nhin n v b. Hai s c ghi cch nhau bi mt vi k
t trng;
n dng k tip ghi li trn mi dng mt cp s ci , ai (i=1, 2, .., n). Hai s c ghi
cch nhau bi mt vi k t trng;

52
BI TP K THUT LP TRNH Vesion 1.0

Gi tr ti u f(x1,x2,..,xn) v phng an ti u X = (x1, x2,..,xn) tm c ghi li trong


file ketqua.out theo khun dng sau:
Dng u tin ghi li gi tr ti u f(x1,x2,..,xn);
Dng k tip ghi li phng an ti u X = (x1, x2,..,xn). Hai phn t khc nhau ca
X c ghi cch nhau bi mt vi khong trng.
V d di y s minh ha cho file data.in v ketqua.out ca bi ton:

Data.in Ketqua.out
4 10 12
5 5 0 0 1 1
1 3
9 6
3 4

BAI 2.2.13: IT
Cho dy gm n s t nhin phn bit a1, a2, .., an v s t nhin B. Hy s dng thut ton
sinh (quay lui, nhnh cn, qui hoch ng) lit k tt c cc phn t ca tp
n

D x1 , x2 ,, xn : ai xi B, xi 0,1, i 1,2,..., n ;
i 1
T

D liu vo cho bi file data.in theo khun dng nh sau:


Dng u tin ghi li hai s t nhin n v B. Hai s c vit cch nhau bi mt
vi khong trng.
P

Dng k tip ghi li n s nguyn dng a1, a2,..,an. Hai s khac nhau c vit cch
nhau bi mt vi k t trng.
Kt qu ra ghi li trong file ketqua.out theo khun dng sau:
Dng u tin ghi li s t nhin k l s phn t ca tp D.
k dng tip theo mi dng ghi li mt vector nh phn x = (x1, x2 ,.., xn) l phn t
ca D. Hai thnh phn khc nhau ca vector x c vit cch nhau bi mt vi
khong trng.
V d vi n =7, B = 25, { a1, a2, a3, a4, a5, a6, a7} = {5, 10, 15, 20, 25, 30, 35} trong file
data.in s cho ta 3 phn t ca tp D tng ng vi 3 vector nh phn di n trong file
ketqua.out di y:
Data.in Ketqua.Out
7 25 3
5 10 15 20 25 0 0 0 0 1 0 0
30 35 1 0 0 1 0 0 0
0 1 1 0 0 0 0

53
BI TP K THUT LP TRNH Vesion 1.0

BAI 2.2.14:
Mt ngi qun l c n cng vic cn thc hin cng mt lc. Bit rng c n cng nhn,
mi cng nhn u c th thc hin c tt c cc cng vic nhng vi thi gian khc
nhau. Thi gian cng nhn th i thc hin cng vic j l Ci,j (tnh theo gi). Hy s dng
thut ton sinh (quay lui, nhnh cn, qui hoch ng) vit chng trnh tm cach b tr n
cng vic cho n cng nhn sao cho tng thi gian thc hin l nh nht.
D liu vo c cho bi file: VIEC.INP trong :
- Dng th nht ghi s N ;
- N dng tip theo ghi cc gi tr ca ma trn thi gian C. Hai phn t khac nhau c
vit cch nhau mt vi khong trng.
Kt qu tm c lu vo file KETQUA.OUT trong :
- Dng th nht ghi gi tr tng thi gian nh nht c th t c
IT
- Dng th hai ghi cch b tr vic cho tng ng th.
V d: File VIEC.INP v KETQUA.OUT
T

VIEC.INP KETQUA.OUT
6 82
10 64 57 29 18 15 1 6 5 3 4 2
P

34 20 19 71 16 12
57 49 40 16 11 19
29 21 46 26 21 18
28 16 11 21 21 37
15 12 15 48 37 30

1.7. K thut quay lui

54
BI TP K THUT LP TRNH Vesion 1.0

BAI 2.3.1: BI TON XP HU (THAM KHAO)


C mt bn c kch thc n x n (n 4). Yu cu: tm tt c cac cach t n con hu trn
bn c sao cho khng c con no khng ch ln nhau. Bit rng, mt con hu c th khng
ch tt c cac qun c trn hng ngay, ct dc v hai ng cho i qua v tr ca n. Chng
hn ta c mt cach t sau i vi cac con hu:

IT
D liu vao:
File input gm: s nguyn dng n.
T
Kt qu:
File output: dng u tin ghi s phng an tha mn m. Cac dng tip theo ghi m
P

ma trn nxn gm cac s 0 hoc 1 vi 1 l v tr t ca qun hu, cac ma trn lin


nhau cach nhau mt dng trng.
Gi y:
Ta c c nhn xt: mi con hu phi trn mt hng v mt ct. Do ta coi con hu th
i hng i v nu bit x[i] l ct t con hu th i th ta suy ra c li gii. Vy nghim
ca bi ton c th coi l mt vector x gm n thnh phn vi ngha:
1. Con hu th i c t hng i v ct x[i].
2. x[i] ly gi tr trong tp {1,2...n}
3. Rng buc: cc gi tr x[i] khc nhau tng i mt v khng c 2 con hu trn cng
mt ng cho.

55
BI TP K THUT LP TRNH Vesion 1.0

BAI 2.3.2: BAI TON M I TUN (THAM KHAO)


Cho bn c vua c n x n . Mt con m c php i theo lut c vua, u tin c t
vo c ta (x0,y0). Yu cu : Hy ch ra cac hnh trnh nu c ca con m sao cho con
m i qua tt c ca ca bn c,mi i qua ng 1 ln.
D liu vao:
File input gm: s nguyn dng n.
Kt qu:
File output: cac cp ta (x,y) cach nhau bi du cach ch ra hnh trnh ca con
m, bt u vi (x0,y0).

BAI 2.3.3: TM NG I TRONG M CUNG


M cung l mt khu vc hnh ch nht c chia l M*N phng. Ti mi phng c th
IT
nht mt quai vt. T mt phng ta c th i n 4 phng xung quang nu chng khng c
quai vt. Gi s bn ang lc trong m cung ti (x0,y0). Hy tm ng i thoat khi m
cung ra mt phng trn cnh ca m cung mt cach nhanh nht (i qua t nh nht).
D liu vao:
T

Dng u l 2 s M,N.M dng tip theo m t ma trn A trong A[x,y]=1 nu ti


phng (x,y) c quai vt, ngc li th A[x,y]=0.
P

Hn ch: 4<=M,N<=100.
Kt qu:
Dng u tin l s K m t s cac phng i qua. Nu khng tm c ng ra th
K=0. Cac dng tip theo l to cac phng i qua.

BAI 2.3.4: BAI TON NGI BN HNG


C mt ngi giao hng cn i giao hng ti n thnh ph. Anh ta xut pht t mt thnh
ph no , i qua cac thnh ph khac giao hng v tr v thnh ph ban u. Mi thnh
ph ch n mt ln, v khong cch t mt thnh ph n cc thnh ph khac c bit
trc. Hy tm mt chu trnh (mt ng i khp kn tha mn iu kin trn) sao cho tng
di cc cnh l nh nht.

56
BI TP K THUT LP TRNH Vesion 1.0

Gi :
Bi ton ngi bn hng c th c m hnh ho nh mt th v hng c trng s,
trong mi thnh ph l mt nh ca th cn ng i gia cc thnh ph l mi
cch. Khong cch gia hai thnh ph l di cnh. y l vn cc tiu ho vi im
u v im cui l cng mt nh sau khi thm ht cc nh cn li ng mt ln. M
hnh ny thng l mt th y (gia mi cp nh u c cnh). Nu khng c ng
gia hai thnh ph th c th thm mt cnh vi di ln vo th m khng nh
hng n kt qu ti u sau cng.

BAI 2.3.5: LIT K DY NH PHN KHNG C HAI S 0 LIN TIP


Xem bi 2.2.4.

BAI 2.3.6: TAM GIC S


Hnh sau m t mt tam giac s c s hng N=5: IT
7

3 8
T

8 1 0
P

2 7 4 4

4 5 2 6 5

i t nh (s 7) n ay tam giac bng mt ng gp khc, mi bc ch c i t s


hng trn xung mt trong hai s ng k bn phi hay bn trai hng di, v cng cac
s trn ng i li ta c mt tng.
V d: ng i 7 8 1 4 6 c tng l S=26, ng i 7 3 1 7 5 c tng l S=23
Trong hnh trn, tng Smax=30 theo ng i 7 3 8 7 5 l tng ln nht trong tt c cac
tng.

57
BI TP K THUT LP TRNH Vesion 1.0

Nhim v ca bn v vit chng trnh nhn d liu vo l mt tam giac s cha trong text
file INPUT.TXT v a ra kt qu l gia tr ca tng Smax trn mn hnh.
File INPUT.TXT c dng nh sau:
Dng th 1: c duy nht 1 s N l s hng ca tam giac s (0<N<100).
N dng tip theo, t dng th 2 n dng th N+1: dng th i c (i-1) s cach nhau bi
du trng (space).
V d: vi ni dung ca file INPUT.TXT l
5
7
38
810
2744 IT
45265
th kt qu chy chng trnh s l: Smax=30.
T

BAI 2.3.7: CH
P

Tr chi ch thng dng 30 nm trc ca tr em gm mt khung ch kch thc 5x5


cha 24 hnh vng nh kch thc nh nhau. Trn mt mi hnh vung nh c in mt ch
cai trong bng ch cai. V ch c 24 hnh vung trong ch nn trong ch cn tha ra
mt trng, c kch thc ng bng kch thc cac hnh vung. Mt hnh vung c
th y trt vo trng nu n nm ngay sat bn trai, bn phi, bn trn hay bn di
trng. Mc tiu ca tr chi l trt cac h nh vung vo trng sao cho cui cng cac
ch cai trong ch c xp theo ng th t ca chng trong bng ch cai. Hnh sau y
minh ho mt ch vi cu hnh ban u v cu hnh ca n sau 6 nc i sau:
1.Trt hnh vung pha trn trng.
2.Trt hnh vung bn phi trng.
3.Trt hnh vung bn phi trng.
4.Trt hnh vung pha di trng.

58
BI TP K THUT LP TRNH Vesion 1.0

5.Trt hnh vung pha di trng.


6.Trt hnh vung bn trai trng.

TT RR GG SS JJ

XX OO KK LL II

MM DD VV BB NN

WW PP AA EE

UU QQ HH CC FF

Cu hnh ca ch sau 6 nc.


IT
T

T R G S J
P

X D O K I

M V L N

W P A B E

U Q H C F

Cu hnh ban u ca ch
Bn hy vit mt chng trnh ca bn cha cu hnh ban u ca ch cng cac nc i
v ra ch kt qu.

59
BI TP K THUT LP TRNH Vesion 1.0

Input
u vo ca chng trnh ca bn cha cu hnh ban u ca mt ch v mt dy
cac nc i trong ch .
Nm dng u tin m t cu hnh ban u ca ch, mi dng tng ng vi mt
hng ca ch v cha ng 5 k t tng ng vi 5 hnh vung ca ch trn
hng . trng c din t bng mt du cach.
Cac dng tip theo sau l dy cac nc i. Dy cac nc i c ghi bng dy cac
ch A,B,R v L th hin hnh vung no c trt vo trng. A th hin hnh
vung pha trn trng c trt vo trng, tng ng: B-pha di, R-bn phi,
L-bn trai. C th c nhng nc i khng hp cach, ngay c khi n c biu th
bng nhng ch cai trn. Nu xut hin mt nc i khng hp cach th ch coi
nh khng c cu hnh kt qu. Dy cac nc i c th chim mt s dng, nhng
n s c xem l kt thc ngay khi gp mt s 0.
Out put
IT
Nu ch khng c cu hnh kt qu th thng bao 'This puzzle has no final
configuration.'; ngc li th hin th cu hnh ch kt qu. nh dng mi dng kt
qu bng cach t mt du cach vo gia hai k t k tip nhau. trng cng c x
T

l nh vy. V d nu trng nm bn trong hng th n c xut hin di dng 3


du cach: mt ngn cach n vi k t bn trai, mt th hin chnh trng , cn
P

mt ngn cach n vi k t bn phi.


Ch : Input mu u tin tng ng vi ch c minh ho trong v d trn.
Sample Input 1
TRGSJ
XDOKI
M VLN
WPABE
UQHCF
ARRBBL0
Sample Output 1
T R GSJ

60
BI TP K THUT LP TRNH Vesion 1.0

X OKLI
MDVBN
WP AE
UQHC F
Sample Input 2
AB C DE
FGHIJ
KLMNO
PQRS
TUVWX
AAA
LLLL0
IT
Sample Output 2
ABCD
T

FGHIE
KLMNJ
P

PQRSO
TUVWX
Sample Input 3
ABCDE
FGHIJ
KLMNO
PQRS
TUVWX
AAAAABBRRRLL0
Sample Output 3

61
BI TP K THUT LP TRNH Vesion 1.0

This puzzle has no final configuration.

BAI 2.3.8: DI CHUYN TRI PHAI


Mt robot ch c th di chuyn sang phi hoc sang trai. Dy di chuyn ca n c k hiu l
mt chui, nhng do s sut ca ngi ghi chp, nn mt s bc i khng ghi li c. Nhim
v ca bn l xac nh xem robot c th i cach xa nht v tr ban u l ban nhiu?

Input
Mt dng duy nht cha chui di chuyn, mi k t c th l:
- L nu di chuyn sang tri
- R nu di chuyn sang phi
- ? nu khng xac nh.
Output IT
Khong cch xa nht n v tr ban u.
V d:
Input:
T

LLLRLRRR
Output:
P

3
Input:
R???L
Output:
4

BAI 2.3.9: LIT K DY NH PHN C DAI CHO TRC


Tham kho bi 2.3.1

62
BI TP K THUT LP TRNH Vesion 1.0

BAI 2.3.10:
Cho dy A[] gm N s t nhin khc nhau v s t nhin K. Hy s dng thut ton quay
lui vit chng trnh lit k tt c cc dy con ca dy s A[] sao cho tng cc phn t
trong dy con ng bng K. D liu vo cho bi file dayso.in theo khun dng sau:
Dng u tin ghi li s t nhin N l s cc s ca dy s A[] v s t nhin K,
hai s c vit cch nhau bi mt vi khong trng;
Dng k tip ghi li N s ca dy s A[], hai s c vit cch nhau mt vi
khong trng.
Cc dy con tho mn iu kin tm c ghi li trong file ketqua.out theo khun dng sau:
Dng u tin ghi li s cc dy con c tng cc phn t ng bng K tm c;
Nhng dng k tip mi dng ghi li mt dy con. Hai phn t khc nhau ca dy
con c vit cch nhau bi mt vi khong trng.

Dayso.in Ketqua.out

5 50
IT 3
10 15 25
5 10 15 20 25 5 20 25
T

5 10 15 20
P

BAI 2.3.11:
Cho ma trn vung C = (cij) cp N (1 i, j N100) gm N2 s t nhin (cc s khng nht
thit phi khc nhau) ghi li trong file matran.in theo khun dng sau :
Dng u tin ghi li s t nhin N l cp ca ma trn vung C;
N dng k tip ghi li ma trn vung C = (cij). Hai phn t khc nhau ca ma trn
c ghi cch nhau bi mt vi khong trng.
Hy s dng thut ton quay lui vit chng trnh ly trn mi hng, mi ct duy nht
mt phn t ca ma trn C sao cho tng cc phn t ny l nh nht. Kt qu tm c
ghi li trong file ketqua.out theo khun dng:
Dng u tin ghi li tng gi tr nh nht ca N phn t tm c;
N dng k tip, mi dng ghi li ba s i, j, cij tng ng vi ch s hng, ch s ct
v gi tr phn t tng ng ca ma trn. Ba s c vit cch nhau mt vi khong
trng.

63
BI TP K THUT LP TRNH Vesion 1.0

V d v file matran.in v ketqua.out:

matran.in ketqua.out
6 82
10 64 57 29 18 15 1 1 10
34 20 19 30 16 12 2 6 12
57 49 40 16 11 19 3 4 16
29 21 46 26 21 18 4 5 21
28 16 11 21 21 37 5 3 11
15 12 15 48 37 30 6 2 12

BAI 2.3.12:
Cho dy gm N s nguyn phn bit A[] = {a1, a2, .., aN } v s t nhin K ( KN100).
Hy s dng thut ton quay lui vit chng trnh lit k tt c cc dy con K phn t gim
dn t nhin ca dy s A[]. D liu vo cho bi file dayso.in theo khun dng sau:
Dng u tin ghi li hai s t nhin N, K. Hai s c vit cch nhau mt vi khong
trng;
IT
Nhng dng k tip ghi li N s nguyn ca dy s A[], hai s khac nhau c vit
cch nhau mt vi khong trng.
Cc dy con K phn t tng dn ca dy s A[] tm c ghi li trong file ketqua.out
T
theo khun dng:
Dng u tin ghi li s t nhin M l s cc dy con K phn t tng dn ca dy
s A[] tm c;
P

M dng k tip, mi dng ghi li mt dy con. Hai phn t khc nhau ca dy con
c vit cch nhau bi mt vi khong trng.
V d vi file dayso.in di y s cho ta file ketqua.out tng ng.

dayso.in ketqua.out
5 3 7
2 5 15 10 20 2 5 15
2 5 10
2 5 20
2 15 20
2 10 20
5 15 20
5 10 20

64
BI TP K THUT LP TRNH Vesion 1.0

1.8. K thut nhnh cn


BAI 2.4.1: DY ABC
Cho trc mt s nguyn dng N (N 100), hy tm mt xu ch gm cc k t A, B, C
tho mn 3 iu kin:
- C di N
- Hai on con bt k lin nhau u khac nhau (on con l mt dy k t lin tip ca
xu)
- C t k t C nht.
Cch gii:
Nu dy X[1..n] tho mn 2 on con bt k lin nhau u khc nhau, th trong 4 k t lin
tip bt k bao gi cng phi c 1 k t C. Nh vy vi mt dy con gm k k t lin
tip ca dy X th s k t C trong dy con bt buc phi k div 4.
IT
Ti bc th chn X[i], nu ta c T[i] k t C trong on chn t X[1] n X[i],
th cho d cac bc quy tip sau lm tt nh th no chng na, s k t C s phi
chn thm bao gi cng (n - i) div 4. Tc l nu theo phng an chn X[i] nh th ny
th s k t C trong dy kt qu (khi chn n X[n]) cho d c lm tt n u cng
T

T[i] + (n - i) div 4. Ta dng con s ny anh gia nhanh cn, nu n nhiu hn


s k t C trong BestConfig th chc chn c lm tip cng ch c mt cu hnh ti
P

t hn, ta b qua ngay cch chn ny v th phng an khac.


Input: file vn bn ABC.INP cha s nguyn dng n 100
Output: file vn bn ABC.OUT ghi xu tm c
Vi d:

ABC.INP ABC.OUT

10 ABACABCBAB
C Letter Count : 2

65
BI TP K THUT LP TRNH Vesion 1.0

BAI 2.4.2: BAI TON NGI BN HNG


Xem bi 2.3.4.

BAI 2.4.3: BAI TON TM NG TRONG M CUNG


Xem bi 2.3.3.

BAI 2.4.4: BI TON CI TI


Xem bi 2.1.10.

BAI 2.4.5: BI TON M I TUN


Xem bi 2.3.2.

BAI 2.4.6: BI TON XP HU


IT
Xem bi 2.3.1.

BAI 2.4.7:
T

Cho dy A[] gm N s t nhin khc nhau v s t nhin K. Hy s dng thut ton quay
lui nhnh cn vit chng trnh lit k tt c cc dy con ca dy s A[] sao cho tng cc
P

phn t trong dy con ng bng K. D liu vo cho bi file dayso.in theo khun dng
sau:
Dng u tin ghi li s t nhin N l s cc s ca dy s A[] v s t nhin K,
hai s c vit cch nhau bi mt vi khong trng;
Dng k tip ghi li N s ca dy s A[], hai s c vit cch nhau mt vi
khong trng.
Cc dy con tho mn iu kin tm c ghi li trong file ketqua.out theo khun dng sau:
Dng u tin ghi li s cc dy con c tng cc phn t ng bng K tm c;
Nhng dng k tip mi dng ghi li mt dy con. Hai phn t khc nhau ca dy
con c vit cch nhau bi mt vi khong trng.

Dayso.in Ketqua.out

66
BI TP K THUT LP TRNH Vesion 1.0

5 50 3
10 15 25
5 10 15 20 25 5 20 25
5 10 15 20

BAI 2.4.8:
Cho ma trn vung C = (cij) cp N (1 i, j N100) gm N2 s t nhin (cc s khng nht
thit phi khc nhau) ghi li trong file matran.in theo khun dng sau :
Dng u tin ghi li s t nhin N l cp ca ma trn vung C;
N dng k tip ghi li ma trn vung C = (cij). Hai phn t khc nhau ca ma trn
c ghi cch nhau bi mt vi khong trng.
Hy s dng thut ton quay lui nhnh cn vit chng trnh ly trn mi hng, mi
ct duy nht mt phn t ca ma trn C sao cho tng cc phn t ny l nh nht. Kt qu
tm c ghi li trong file ketqua.out theo khun dng:
IT
Dng u tin ghi li tng gi tr nh nht ca N phn t tm c;
N dng k tip, mi dng ghi li ba s i, j, cij tng ng vi ch s hng, ch s ct
v gi tr phn t tng ng ca ma trn. Ba s c vit cch nhau mt vi khong
trng.
T

V d v file matran.in v ketqua.out:


P

matran.in ketqua.out
6 82
10 64 57 29 18 15 1 1 10
34 20 19 30 16 12 2 6 12
57 49 40 16 11 19 3 4 16
29 21 46 26 21 18 4 5 21
28 16 11 21 21 37 5 3 11
15 12 15 48 37 30 6 2 12

1.9. K thut qui hoch ng

67
BI TP K THUT LP TRNH Vesion 1.0

BAI 2.5.1: XP HNG


Hng ngy khi ly sa, N con b ca bac John (1 N 50000) lun xp hng theo th t
khng i. Mt hm bc John quyt nh t chc mt tr chi cho mt s con b. n
gin, bc John s chn ra mt on lin tip cac con b tham d tr chi. Tuy nhin
tr chi din ra vui v, cc con b phi khng qu chnh lch v chiu cao.
Bac John chun b mt danh sch gm Q (1 Q 200000) on cc con b v chiu
cao ca chng (trong phm vi [1, 1000000]). Vi mi on, bc John mun xac nh chnh
lch chiu cao gia con b thp nht v cao nht. Bn hy gip bc John thc hin cng
vic ny.
D liu
Dng u tin cha 2 s nguyn N v Q.
Dng th i trong s N dng sau cha 1 s nguyn duy nht, l cao ca con b
th i. IT
Dng th i trong s Q trong tip theo cha 2 s nguyn A, B (1 A B N), cho
bit on cc con b t A n B.
Kt qu
T

Gm Q dng, mi dng cha 1 s nguyn, l chnh lch chiu cao gia con b thp
nht v cao nht thuc on tng ng.
P

Vi d:

Input.txt Output.txt

63 6
1 3
7 0
3
4
2
5
15
46
22

68
BI TP K THUT LP TRNH Vesion 1.0

BAI 2.5.2: OAN TNG


Cho dy s nguyn A = (a1, a2, , an). Hy tm mt on di nht gm cc phn t lin
tip trong dy A c th t khng gim.
Quy c: on ch gm ng 1 phn t trong A cng c coi l c th t khng gim.
D liu:
Dng 1 cha s nguyn dng n 105
Dng 2 cha n s nguyn a1, a2, ..., an ("i: |ai| 109) cach nhau t nht mt du cach
Kt qu:mt s nguyn duy nht l s phn t trong on tm c
Vi d:

INPUT OUTPUT

11 IT 4
88 99 11 22 22 33 11 66 33 44 77

BAI 2.5.3: O
T

Hai xu k t c gi l o ca nhau nu ta c th hoan v cac k t ca mt xu


c xu cn li. V d: xu occurs l o ca xu succor, tuy nhin xu dear khng
P

phi l o ca xu dared (v ch d xut hin 2 ln trong dared nhng ch xut hin


dear trong 1 ln).
o gia hai xu k t l s k t t nht cn phi xa (trn c hai xu) hai xu cn
li o ca nhau. V d o gia hai xu sleep v leap l 3, o gia hai xu dog
v cat l 6.
Yu cu:
Hy tnh o gia hai xu cho trc.
D liu:
Gm hai dng, mi dng cha mt xu k t ch gm cac ch cai ting Anh thng,
mi dng c khng qua 1 triu k t.
Kt qu: mt s nguyn duy nht l o gia hai xu trong file d liu.

69
BI TP K THUT LP TRNH Vesion 1.0

Vi d

INPUT OUTPUT

Begin 4
end

BAI 2.5.4: DY CON TNG DN T NHIN BC K


Cho dy gm N s phn bit AN = {a1, a2, .., aN } v s t nhin K (K<=N<=100). Ta gi
mt dy con tng dn bc K ca dy s AN l mt dy cac s gm K phn t trong dy
tha mn tnh cht tng dn. Bi toan c t ra l hy tm s cac dy con tng dn bc
K ca dy s AN.
Input: IT
Dng u tin ghi s b test, khng ln hn 100. Mi b test c xy dng theo khun
dng sau:
Dng u tin ghi li hai s N v K tng ng vi s phn t ca dy s v bc
ca dy con.
T

Dng k tip ghi li N s ca dy s AN, cac s trong dy khng ln hn 100.


P

Output:
Vi mi b test, in ra mn hnh s cac dy con tng dn t nhin bc K ca dy
s AN.
Vi d:

Input: Output:
2 7
53
1
2 5 15 10 20
53
2 20 10 15 5

70
BI TP K THUT LP TRNH Vesion 1.0

IT
T
P

71
BI TP K THUT LP TRNH Vesion 1.0

III. Lp trnh da vo ngn xp, hang i


1.10.K thut x l trn ngn xp
BAI 3.1.1: THP H NI (THAM KHAO)
Bi toan Thap H Ni c m t nh sau: cho 3 ct c anh s ln lt l 1, 2 v 3. C
n a c sp theo th t a nh bn trn a ln. Hy lit k cac bc thc hin
chuyn tt c cac a t ct 1 sang ct 2. Quy lut di chuyn nh sau:
1. Mi bc ch di chuyn 1 a t ct ny sang ct khac.
2. a c ban knh nh lun sp trn a c ban knh ln.

1 2 3 1 2 3

Yu cu:
IT
Vit chng trnh nhp vo s a n, thc hin cac bc di chuyn cac a, mi bc di
chuyn cho bit ct ngun (ct ly a) v ct ch (ct t a). Gii thut di chuyn khng
quy, dng stack cha thng tin tm thi trong qua trnh di chuyn.
Sinh vin ci t stack dng danh sach lin kt, mi node phn info cha 3 thng tin {s
T

a di chuyn, ct ngun, ct ch}.


Hng dn:
P

Nh chng ta bit bi toan thap Hanoi thng c gii bng phng phap quy. Tuy
nhin c th gii bng cach dng stack kh quy. thc hin vic lu tr tm trong
qua trnh di chuyn chng ta dng mt stack. Trong mi phn t ca stack ny cha cac
thng tin gm: s a di chuyn (N), ct ngun bt u di chuyn (Nguon) v ct ch l
ni cn di chuyn n (Dich). y khng cn lu ct trung gian v c 3 ct anh s l 1,
2 v 3 th ct trung gian di chuyn l: 6 (Nguon+Dich).
u tin a vo stack thng tin di chuyn {n, 1, 2}, tc l di chuyn n a t ct 1 sang
ct th 2 qua ct trung gian l 6-(1+2) = 3.
Ti mi bc khi ly trong stack ra mt phn t. chng ta thc hin nh sau: Nu N = 1:
di chuyn a t ct Nguon -> ct Dich.
Ngc li (nu N > 1):

72
BI TP K THUT LP TRNH Vesion 1.0

Xac nh ct trung gian TrungGian = 6 (Nguon+Dich)


Push stack thng tin di chuyn {N-1, TrungGian, Dich}
Push stack thng tin di chuyn {1, Nguon, Dich}
Push stack thng tin di chuyn {N-1, Nguon, TrungGian}
Qua trnh cn thc hin khi stack khac rng.
Nhn xt: Lu th t khi a vo thng tin di chuyn vo stack. Trong phn trn thng
tin {N-1, Nguon, TrungGian} c a vo stack sau cng nn chng s c ly ra trc
tin, k n l thng tin di chuyn {1, Nguon, Dich} v cui cng l thng tin di chuyn
{N-1, TrungGian, Dich}.

BAI 3.1.2: S DNG CU TRC STACK CHUYN MT BIU THC TRUNG T


SANG HU T ? (THAM KHAO)
1. Nhp biu thc trung t: toan hng, toan t v du ngoc
VD: (20+5)/5+(7-3)*100
IT
2. Chuyn biu thc trung t thnh hu t (xut ra mn hnh)
VD: 20 5 + 5 / 7 3 100 * +
3. Tnh gia tr ca biu thc hu t
T
VD: (20+5)/5+(7-3)*100 = 405
Yu cu:
P

Sinh vin ci t stack dng danh sach lin kt:


Ci t cac thao tac: IsEmpty, NewNode, FreeNode, Pop, Push trn Stack.
Hng dn:
1. Chuyn biu thc trung t thnh hu t:
Duyt biu thc trung t t tri sang phi
- Nu gp ton hng th ghi vo chui kt qu
- Nu gp du m ngoc th push stack
- Nu gp ton t gi l O1 thc hin cc bc sau:
- Chng no cn mt ton t O2 nh stack v u tin ca O1 u tin
O2 th ly O2 ra khi stack v ghi vo chui kt qu.
- Push O1 stack
- Nu gp du ng ngoc: th ly ton t trong stack ra cho n khi ly c

73
BI TP K THUT LP TRNH Vesion 1.0

du m ngoc (lu : pop du m ngoc ra, nhng ko xut ra chui kt qu)


Khi duyt ht biu thc trung t, ly tt c ton t trong stack v ghi vo chui
kt qu.
2. Tnh gi tr biu thc hu t:
c biu thc t tri sang phi, Nu l ton hng: Push stack. Nu gp ton
t:
- Ly 2 ton hng trong stack ra
- Tnh gi tr ca 2 ton hng theo ton t
- Push kt qu stack
Khi qu trnh kt thc th con s cui cng cn li trong stack chnh l gi tr ca
biu thc .

BAI 3.1.3: BAI TON I SNH TH HTML


Trong mt vn bn HTML th mi th m ph i i km vi 1 th ng, v d:
<div class="header-right">
IT
<form method="get" id="searchform" action ="http://wordpress.com/" >

<div>< label class ="hidden" for="s"> Tm kim:</label >


T

<input type="text" value ="" name="s" id="s" />

<input type="submit" id ="searchsubmit" value="Go" /></ div>


P

</form >

</ div>

Hy vit chng trnh c vo 1 file .html v kim tra xem trong file c th no b li
hay khng?

BAI 3.1.4: S DNG CU TRC STACK AO XU K T ?

BAI 3.1.5: S DNG CU TRC STACK CHUYN MT S THP PHN SANG DANG
NH PHN ?

74
BI TP K THUT LP TRNH Vesion 1.0

BAI 3.1.6: DU NGOC NG


Cho cac on vn cha cc du ngoc, c th l ngoc n n ( () ) hoc ngoc vung
( [] ). Mt on vn ng l on m vi mi du m ngoc th s c du ng ngoc
tng ng v ng th t. Nhim v ca bn kim tra xem on vn c ng hay khng.
Input
Gm nhiu b test, mi b test trn mt dng cha on vn cn kim tra c th bao
gm: cc k t trong bng ch ci ting Anh, du cch, v du ngoc (ngoc n hoc
ngoc vung). Kt thc mi b test l mt du chm. Mi dng c khng qu 100 k
t.
D liu kt thc bi dng cha duy nht mt du chm.
Output
Vi mi b test, xut ra trn mt dng yes nu on vn ng, ngc li in ra no.
IT
Vi d:
Input:
So when I die (the [first] I will see in (heaven) is a score list).
T

[ first in ] ( first out ).


P

Half Moon tonight (At least it is better than no Moon at all].


A rope may form )( a trail in a maze.
Help( I[m being held prisoner in a fortune cookie factory)].
([ (([( [ ] ) ( ) (( ))] )) ])

Output:
yes
yes
no
no
no
yes
yes

75
BI TP K THUT LP TRNH Vesion 1.0

BAI 3.1.7: CNG, TR HAI A THC


Cho hai a thc A bc n v a thc B bc m c ghi li tng ng trong file dathuc1.in
v dathuc2.in theo khun dng sau:
Dng u tin ghi li s t nhin K l s cac s hng ca a thc;
K dng k tip, mi dng ghi li h s v s m ca s hng hng a thc.
Hy vit chng trnh tnh hi u hai a thc A v B v ghi li a thc kt qu vo file
ketqua.out theo khun dng nh trn. V d vi a thc:

s c biu din v tnh toan cho ra file kt qu sau


IT
dathuc1.in dathuc2.in ketqua.out
T
4 5 10 30000
10 30000 8 20000 -8 20000
P

5 1000 3 1000 2 1000


3 2 3 500 -3 500
3 0 7 100 -7 100
6 1 3 2
-6 1
3 0

BAI 3.1.8: LP TRNH LP STACK


Vit mt lp vi cac hm trong stack nh sau:

76
BI TP K THUT LP TRNH Vesion 1.0

class stack
{
int data[10];
int top;
public :
stack(){top=-1;}
void push();
void pop();
}

BAI 3.1.9:
S dng stack tnh biu thc hu t sau v ch ra ni dung ca stack sau khi chy mi
lnh. Khng cn vit code. Gi s rng bn ang s dng hm push v pop ca lp stack.
AB-CD+E*+ (vi A=5, B=3, C=5, D =4, v E=2)
IT
BAI 3.1.10:
Tnh biu thc hu t sau y s dng stack v ch ra ni dung stack sau mi lnh:
T

50,40,+,18, 14,-, *,+


P

BAI 3.1.11:
Tnh biu thc hu t sau y s dng stack v ch ra ni dung stack sau mi lnh:
TRUE, FALSE, TRUE, FALSE, NOT, OR, TRUE, OR, OR, AND

BAI 3.1.12:
S dng cu trc d liu mng (ngn xp), hy vit chng trnh chuyn i s t nhin n
thnh s h c s b (2b32).
D liu vo (Input) cho bi file data.in theo khun dng:
Dng u tin ghi li s t nhin K l s lng cc test (k100).
K dng k tip ghi li mi dng mt test. Mi test bao gm mt cp s n, b. Hai
s c vit cch nhau mt vi khong trng.

77
BI TP K THUT LP TRNH Vesion 1.0

Kt qu ra (Output): ghi li K dng trong file ketqua.out, mi dng ghi li b ba


s n, k, x. Trong x l s h c s b c chuyn i t n. V d di y minh
ha cho file input v output ca bi ton.

Input.in Output.out

5 8 2 1000
8 2 32 16 20
32 16 255 16 FF
255 16 100 10 100
100 10 64 32 20
64 32

IT
BAI 3.1.13:
S dng cu trc d liu ngn xp, hy vit chng trnh tm s cc s t nhin N tha
mn ng thi nhng iu kin di y (N231):
T

N l s c K ch s (K15).
N l s thun nghch (s i xng).
P

Chuyn i N thnh s h c s B cng l mt s thun nghch (2N512).


Thi gian thc hin chng trnh khng qu 1sec.
D liu vo (Input) cho bi file data.in theo khun dng:
Dng u tin ghi li s t nhin M l s lng cc test (M100).
M dng k tip ghi li mi dng mt test. Mi test bao gm mt cp s N, B.
Hai s c vit cch nhau mt vi khong trng.
Kt qu ra (Output): ghi li M dng trong file ketqua.out, mi dng ghi li b ba s N,
B, X. Trong X l s cc s c N ch s h c s B tha mn yu cu ca bi ton. V
d di y minh ha cho file input v output ca bi ton.

Input.in Output.out

3 8 2 1000
8 2 32 16 20

78
BI TP K THUT LP TRNH Vesion 1.0

32 16 255 16 FF
255 16

BAI 3.1.14:
S dng cu trc d liu ngn xp, hy vit chng trnh tm s cc s t nhin N tha
mn ng thi nhng iu kin di y (N231):
N l s c K ch s (K15).
N l s thun nghch (s i xng).
Chuyn i N thnh s h c s B cng l mt s thun nghch (2N512).
Thi gian thc hin chng trnh khng qua 1sec.
D liu vo (Input) cho bi file data.in theo khun dng:
Dng u tin ghi li s t nhin M l s lng cc test (M100).
M dng k tip ghi li mi dng mt test. Mi test bao gm mt cp s N, B.
Hai s c vit cch nhau mt vi khong trng.
IT
Kt qu ra (Output): ghi li M dng trong file ketqua.out, mi dng ghi li b ba s N,
B, X. Trong X l s cc s c N ch s h c s B tha mn yu cu ca bi ton. V
d di y minh ha cho file input v output ca bi ton.
T

Input.in Output.out
P

3 2 2 2
2 2 2 3 0
2 3 5 16 6

5 16

BAI 3.1.15:
Cho file d liu trungto.in theo khun dng sau:
Dng u tin ghi li s t nhin N l s cc biu thc s hc c biu din di
dng trung t;
N dng k tip, mi dng ghi li mt biu thc trung t.

79
BI TP K THUT LP TRNH Vesion 1.0

Hy s dng cu trc d liu kiu ngn xp vit chng trnh dch chuyn cc biu thc
trung t trong file trungto.in thnh file hauto.out. Cc biu thc hu t dch chuyn c
ghi li trong file hauto.out theo khun dng sau:
Dng u tin ghi li s t nhin N l s cc biu thc hu t dch chuyn c;
N dng k tip, mi dng ghi li mt biu thc hu t.

V d di y s minh ha cho file trungto.in v hauto.out.

trungto.in hauto.out
4 4
(a+b) ab+
(a-b) ab
(a/b) ab/
(a*b) ab*
(a + b) * ( a b) ab+ab-*

BAI 3.1.16:
IT
Cho file d liu hauto.in theo khun dng sau:
Dng u tin ghi li s t nhin N l s cc biu thc s hc c biu din di
T
dng hu t;
N dng k tip, mi dng ghi li mt biu thc hu t.
P

Hy s dng cu trc d liu kiu ngn xp vit chng trnh tnh toan gia tr ca cc
biu thc hu t trong file hauto.in. Cc biu thc hu t dch chuyn c ghi li trong
file ketqua.out theo khun dng sau:
Dng u tin ghi li s t nhin N l s cc biu thc hu t;
N dng k tip, mi dng ghi li gi tr ca mt biu thc hu t trong file.

V d di y s minh ha cho file hauto.in v ketqua.out.

hauto.out ketqua.out
4 4
3 2 + 5
3 2 1
3 2 / 1
3 2 * 6
3 2 + 3 2 5
- *

80
BI TP K THUT LP TRNH Vesion 1.0

1.11.K thut x l trn hng i


BAI 3.2.1: LP TRNH LP VI CC HAM CHO HANG I VONG
Hon thnh lp vi cac hm cho hng i vng nh sau:
class queue
{
int data[10];
int front, rear;
public :
queue(){front=-1;rear=-1}
void add();
void remove();
}
IT
BAI 3.2.2: VIT CHNG TRNH QUAN L KHO
T

Vit chng trnh qun l kho n gin thc hin cc chc nng sau:
1. Cho php thm mt mt hng vo kho
P

2. Xut mt mt hng ra khi kho


3. Xem tt c hng hoa trong kho
4. Xem mt hng no k tip s c xut kho
Yu cu:
1. Ci t cu trc d liu HngHoa: c cac d liu no lit k ra
2. Ci t mt Queue cha cac hng hoa trong kho
3. Ci t cac thao tac trn Queue
4. Ci t cac chc n ng theo m t ca bi tp.

81
BI TP K THUT LP TRNH Vesion 1.0

BAI 3.2.3:
Nhp vo queue 1 mng cc nhn vin bao gm cc thng tin sau : m nhn vin, h tn
nhn vin, h s lng v in thng tin cc nhn vin ny ra mn hnh.

BAI 3.2.4: HANG I


Cho mt hng i c mt s phn t. Mt thao tac di chuyn trong hng i c nh
ngha nh sau:
v tr xut pht to v tr n
tc l di chuyn phn t v tr xut pht n v tr n. V d, hng i ban u l:
Item1 Item2 Item3 Item4 Item5
Th thao tac 5 to 2 s a hng i v dng:
Item1 Item5 Item2 Item3 Item4
IT
Ta c ap dng nhiu thao tac di chuyn cng mt lc. V d nu hng i l:
Item1 Item2 Item3 Item4 Item5 Item6 Item7 Item8
V chui thao tac l
T

2 to 6; 6 to 3; 4 to 5; 5 to 2; 7 to 4; 8 to 1
P

Th ta c hng i mi s l:
Item8 Item5 Item6 Item7 Item4 Item2 Item1 Item3
Ch : trong chui thao tac th khng c c hai thao tac no trng nhau. Cac thao tac
thc hin ng thi v phn t no c di chuyn n v tr mi th bt buc phi v tr
sau khi hon thnh, cac phn t khac khng lin quan c y sang cac v tr cn li
nhng vn gi th t trc sau nh lc u. Nh trong v d trn, v tr 7,8 khng c
phn t no di chuyn n nn hai item cn li l 1 v 3 (l cc v tr khng b di chuyn
i) s v tr .
Bi toan t ra l cho trc hng i v chui thao tac di chuyn, hy xac nh hng i
kt qu.
Input:
Dng u ghi s b test khng qua 100. Mi b test gm:

82
BI TP K THUT LP TRNH Vesion 1.0

Dng u ghi hai s m v n (1<=n,m<=20). Trong m l s phn t trong hng


i, n l s thao tac di chuyn.
Dng tip theo ghi cac phn t trong hng i ban u, mi phn t l mt chui
k t ngn (1 n 8 k t), cac phn t cach nhau mt khong trng. Khng c
hai phn t no trung nhau.
n dng tip theo, mi dng ghi mt thao tac di chuyn di dng 2 s nguyn
dng theo th t l v tr xut phat v v tr n.
Output
Vi mi b test, in ra mn hnh trng thai hng i sau khi ap dng cac thao tac
di chuyn.
Vi d:
Input:
3
IT
51
alpha beta gamma delta epsilon
52
T

86
abcdefgh
P

26
63
45
52
74
81
32
foo bar baz
3 11 3
Output:
alpha epsilon beta gamma delta
h e f g d b a cbaz bar foo

83
BI TP K THUT LP TRNH Vesion 1.0

BAI 3.2.5:
Vit chng trnh con thm mt phn t trong danh sach c th t sao cho ta vn c
mt danh sach c th t bng cach vn dng cac php toan c bn trn danh sach.

BAI 3.2.6:
Vit chng trnh con tm kim v xa mt phn t trong danh sach c th t.

BAI 3.2.7:
Vit chng trnh con nhn vo t bn phm mt dy s nguyn, lu tr n trong mt danh
sach c th t khng gim, theo cach sau: vi mi phn t c nhp vo chng trnh
con phi tm v tr thch hp xen n vo danh sach cho ng th t. Vit chng trnh
con trn cho trng hp danh sach c ci t bng mng v ci t bng con tr v trong
trng hp tng quat (dng cac php toan c bn trn danh sach).
IT
BAI 3.2.8:
T
Vit chng trnh con loi b cac phn t trng nhau (gi li duy nht 1 phn t) trong mt
danh sach c th t khng gim, trong hai trng hp: ci t bng mng v ci t bng
con tr.
P

BAI 3.2.9:
Vit chng trnh con nhn vo t bn phm mt dy s nguyn, lu tr n trong mt danh
sach c th t tng khng c hai phn t trng nhau, theo cach sau: vi mi phn t c
nhp vo chng trnh con phi tm kim xem n c trong danh sach cha, nu cha c th
xen n vo danh sach cho ng th t. Vit chng trnh con trn cho trng hp danh
sach c ci t bng mng v ci t bng con tr.

BAI 3.2.10:
Vit chng trnh con trn hai danh sach lin kt cha cac s nguyn theo th t tng
c mt danh sach cng c th t tng.

84
BI TP K THUT LP TRNH Vesion 1.0

BAI 3.2.11:
Vit chng trnh con xoa khi danh sach lu tr cac s nguyn cac phn t l s nguyn
l, cng trong hai trng hp: ci t bng mng v bng con tr.

BAI 3.2.12:
Vit chng trnh con tach mt danh sach cha cac s nguyn thnh hai danh sach: mt
danh sach gm cac s chn cn cai kia cha cac s l.
BAI 3.2.13:
Hnh di y biu din cho mng SPACE c 10 phn t dng biu din danh sach
bng con nhay (cursor) v hai danh sach L1 ; L2 ang c trong mng
IT
T
P

a. Hy lit k cac phn t trong mi danh sach L1, L2.


b. V li hnh cho ln lt sau cac li gi INSERT_LIST('o',1,L1),
INSERT_LIST('m',6,L1), INSERT_LIST('k',9,L1).
c. V li hnh cu b. sau khi xoa : x,y.

85
BI TP K THUT LP TRNH Vesion 1.0

BAI 3.2.14:
Cho cp s S v T l cc s nguyn t c 4 ch s (V d S = 1033, T = 8197 l cc s
nguyn t c 4 ch s). S dng hng i, hy vit chng trnh tm cach dch chuyn S
thnh T tha mn ng thi nhng iu kin di y:
Mi php dch chuyn ch c php thay i mt ch s ca s bc trc
(v d nu S=1033 th php dch chuyn S thnh 1733 l hp l);
S nhn c cng l mt s nguyn t c 4 ch s (v d nu S=1033 th php
dch chuyn S thnh 1833 l khng hp l, v S dch chuyn thnh 1733 l hp l);
S cac bc dch chuyn l t nht.
V d vi S = 1033, T = 8179 s c t nht 6 php dch chuyn nh sau:
1033 17333733 3739 3779 877981779 .
Input:
Dng u tin ghi s b test, khng ln hn 100. Mi b test vit trn mt dng hai s
nguyn t c 4 ch s.
Output:
IT
Vi mi b test, vit ra trn mt dng s bc ca ng nguyn t ngn nht.
V d cho Input v Output:
INPUT OUTPUT
T

3 6
1033 8179 7
P

1373 8017 0
1033 1033

1.12.K thut x l trn danh sch lin kt


BAI 3.3.1:
a thc P(x)= anxn+ an-1xn-1+... + a1x + a0 c lu tr trong may tnh di dng mt danh
sach lin kt m mi phn t ca danh sach l mt struct c ba trng lu gi h s, s m,

86
BI TP K THUT LP TRNH Vesion 1.0

v trng NEXT tr n phn t k tip. Ch cach lu tr m bo th t gim dn theo


s m ca tng hng t ca a thc.
V d: a thc 5x4 - x + 3 c lu tr trong danh sach c 3 phn t nh sau:

a. Hy vit chng trnh thc hin c s lu tr ny.


b. Da vo s ci t trn, vit chng trnh con thc hin vic cng hai a thc.
c. Vit chng trnh con ly o hm ca a thc.

BAI 3.3.2:
lu tr mt s nguyn ln, ta c th dng danh sach lin kt cha cac ch s ca n.
Hy tm cach lu tr cac ch s ca mt s nguyn ln theo tng trn sao cho vic cng
IT
hai s nguyn ln l d dng thc hin. Vit chng trnh con cng hai s nguyn ln.

BAI 3.3.3:
T

tin cho vic truy nhp vo danh sach, ngi ta t chc danh sach lin kt c dng sau,
gi l danh sach ni vng:
P

Hy vit khai bao v cac chng trnh con c bn ci t mt danh sach ni vng.

BAI 3.3.4:
Hy ci t mt ngn xp bng cach dng con tr.
a. Dng ngn xp vit chng trnh con i mt s thp phn sang s nh phn.
b. Vit chng trnh con/hm kim tra mt chui du ngoc ng (chui du ngoc ng
l chui du m ng khp nhau nh trong biu thc toan hc).

87
BI TP K THUT LP TRNH Vesion 1.0

BAI 3.3.5:
Ta c th ci t 2 ngn xp vo trong mt mng, gi l ngn xp hai u hot ng ca
hai ngn xp ny nh s sau:

IT
Hnh v mng cha 2 ngn xp
T

Hy vit cac chng trnh con cn thit ci t ngn xp hai u.


P

BAI 3.3.6:
M phng vic to buffer in mt file ra may in.
Buffer xem nh l mt hng, khi ra lnh in file may tnh s thc hin mt cach lp qua
trnh sau cho n ht file:
1. a ni dung ca tp tin vo buffer cho n khi buffer y hoc ht file.
2. In ni dung trong buffer ra may in cho ti khi hng rng.
3. Hy m phng qua trnh trn in mt file vn bn ln tng trang mn hnh.

88
BI TP K THUT LP TRNH Vesion 1.0

BAI 3.3.7:
Ci t danh sach lin kt kp vi cac php toan khi to danh sach rng, thm xoa mt
phn t.

BAI 3.3.8:
Danh sach lin kt kp ni vng c dng sau:

Hy ci t danh sach lin kt kp dng ni vng nh trn.


IT
BAI 3.3.9: GIY KHAI SINH
Mt bui hp mt i gia nh nhn dp c gi Ted trn 100 tui, ngi ta mun sp xp
T

con chau ca c theo th t t tui cao xung thp. Gi s ta c thng tin v giy khai sinh
ca tng ngi . Mi giy khai sinh ch vit ba thng tin n gin gm: Tn ngi cha,
P

Tn ngi con, Tui ca ngi cha lc sinh con.


Hy gip i gia nh trn tnh ra tui ca tng ngi con chau c Ted v vit ra danh sach
theo th t t tui cao xung thp.
Input
Dng u ghi s b test (khng qua 100). Vi mi b test:
Dng u tin ghi s X (0<X<100) l s ngi con chu cn sp xp.
Tip theo l X dng, mi dng ghi thng tin v mt giy khai sinh ca tng ngi
(th t ngu nhin) gm 3 thnh phn, mi thnh phn cch nhau mt khong trng:
o Tn ngi cha: khng qu 20 k t v khng cha khong trng
o Tn ngi con: khng qu 20 k t v khng cha khong trng
o Tui ca ngi cha khi sinh con: 1 s nguyn dng, khng qua 100.

89
BI TP K THUT LP TRNH Vesion 1.0

Output
Vi mi b test, in ra mn hnh th t b test (xem thm trong b test v d), sau
ln lt l tng ngi trong danh sch tui t cao xung thp (khng tnh c Ted).
Mi ngi vit ra hai thng tin: tn, mt khong trng ri n tui ca ngi .
Nu hai ngi c cng tui th xp theo th t t in.
Vi d:
Input:
2
1
Ted Bill 25
4
Ray James 40 IT
James Beelzebub 17
Ray Mark 75
Ted Ray 20
T

Output:
P

DATASET 1
Bill 75
DATASET 2
Ray 80
James 40
Beelzebub 23
Mark 5

90
BI TP K THUT LP TRNH Vesion 1.0

BAI 3.3.10:
Ta nh ngha mt t l dy cc k t khng cha khong trng (space), du tab, du xung
dng (\n), du v u dng (\r) v du kt thc dng (\0). Tn xut xut hin ca t W
trong tp vn bn D1 v D2, k hiu l P(W) c tnh theo cng thc:
N1 (W ) N 2 (W )
P(W ) ; trong Ni(W) l s ln xut hin t W trong Di, N(Di) l tng
N ( D1 ) N ( D2 )
s t ca tp vn bn Di (i=1, 2).
Cho hai file vn bn data1.in v data2.in. S dng danh sch lin kt n (kp), hy tm
tp cc t v tn xut xut hin ca mi t trong c hai tp data1.in v data2.in. Tp cc t
tm c ghi li trong file Ketqua.out theo khun dng:
Dng u tin ghi li s t nhin K l s t W tm c theo yu cu ca bi ton.
K dng k tip, mi dng ghi li mt t W v tn xut xut hin P(W) tha mn yu
cu ca bi ton. W v P(W) c vit cch nhau bi mt vi khong trng.
V d vi file data1.in v data2.in di y s cho ta file Ketqua.out ca bi ton.
IT
data1.in data2.in Ketqua.out
T

AB AC AD AE AF AB AC AD AH AK 3
AB AC AD AE AF AB AC AD AH AK AB 0.2
P

AC 0.2
AD 0.2

BAI 3.3.11:
Cho tp cc s t nhin trong file data.in c ghi theo tng dng, mi dng ghi nhiu nht
5 s, hai s c vit cch nhau mt vi khong trng. Bit rng, mi s t nhin trong file
data.in hoc l s nguyn t, hoc l s thun nghch v c th xut hin nhiu ln nhng
v tr khc nhau trong file. S dng cu trc d liu danh sch lin kt n (kp), hy vit
chng trnh tach tp cc s v m s ln xut hin ca mi s trong file data.in thnh 3
file ketqua1.out, ketqua2.out, ketqua3.out tha mn nhng yu cu di y.
a) File ketqua1.out ghi li cc s nguyn t nhng khng l s thun nghch cng vi
s ln xut hin ca n trong file data.in;

91
BI TP K THUT LP TRNH Vesion 1.0

b) File ketqua2.out ghi li cc s thun nghch nhng khng l nguyn t cng vi s


ln xut hin ca n trong file data.in;
c) File ketqua3.out ghi li cc s va l s nguyn t va l s thun nghch cng vi
s ln xut hin ca n trong file data.in;
d) Khun dng ca cc file kt qu c qui nh nh sau:
Dng u tin ca mi file ghi li s cc s ca mi file kt qu;
Nhng dng k tip mi dng ghi li mt s cng vi s ln xut hin ca n
trong file data.in. Hai s c vit cch nhau mt vi khong trng.
V d di y minh ha cho cc file data.in, ketqua1.out, ketqua2.out v ketqua3.out.
Data.in Ketqua1.out Ketqua2.out Ketqua3.out
10007 10009 10801 10901 13831 2 2 2
10007 10009 10801 10901 34543 10007 4 10801 4 13831 2
10007 10009 10801 10901 13831 10009 4 10901 4 34543 2
10007 10009 10801 10901 34543

BAI 3.3.12:
IT
Cho tp cc s t nhin trong file data.in c ghi theo tng dng, mi dng ghi nhiu nht
5 s, hai s c vit cch nhau mt vi khong trng. Bit rng, mi s t nhin trong file
data.in hoc l s nguyn t, hoc l s thun nghch v c th xut hin nhiu ln nhng
v tr khc nhau trong file. S dng cu trc d liu danh sch lin kt n (kp), hy vit
T

chng trnh tach tp cc s v m s ln xut hin ca mi s trong file data.in thnh 3


file ketqua1.out, ketqua2.out, ketqua3.out tha mn nhng yu cu di y.
P

a) File ketqua1.out ghi li cc s nguyn t nhng khng l s thun nghch cng vi


s ln xut hin ca n trong file data.in;
b) File ketqua2.out ghi li cc s thun nghch nhng khng l nguyn t cng vi s
ln xut hin ca n trong file data.in;
c) File ketqua3.out ghi li cc s va l s nguyn t va l s thun nghch cng vi
s ln xut hin ca n trong file data.in;
d) Khun dng ca cc file kt qu c qui nh nh sau:
Dng u tin ca mi file ghi li s cc s ca mi file kt qu;
Nhng dng k tip mi dng ghi li mt s cng vi s ln xut hin ca n
trong file data.in. Hai s c vit cch nhau mt vi khong trng.
V d di y minh ha cho cc file data.in, ketqua1.out, ketqua2.out v ketqua3.out.

Data.in Ketqua1.out Ketqua2.out Ketqua3.out


10007 10009 10801 10901 13831 2 2 2
10007 10009 10801 10901 34543 10007 4 10801 4 13831 2
10007 10009 10801 10901 13831 10009 4 10901 4 34543 2
10007 10009 10801 10901 34543 92
BI TP K THUT LP TRNH Vesion 1.0

BAI 3.3.13:
Cho hai a thc A bc n v a thc B bc m c ghi li tng ng trong file dathuc1.in
v dathuc2.in theo khun dng sau:
Dng u tin ghi li s t nhin K l s cc s hng ca a thc;
K dng k tip, mi dng ghi li h s v s m ca s hng hng a thc.

Hy s dng danh sch lin kt n trnh tnh tng hai a thc A v B v ghi li a
thc kt qu vo file ketqua.out theo khun dng nh trn. V d vi a thc

Pn ( x) 10 x 30000 5 x1000 3x 2 3
Qm ( x) 8 x 20000 3x1000 3x 500 7 x100 6 x
s c biu din v tnh ton cho ra file kt qu sau

dathuc1.in dathuc2.in ketqua.out


4 5 8
10 30000 8 20000 10 30000
5 1000 3
IT
1000 8 20000
3 2 3 500 8 1000
3 0 7 100 3 500
6 1 7 100
T
3 2
6 1
3 0
P

BAI 3.3.14:
Cho hai a thc A bc n v a thc B bc m c ghi li tng ng trong file dathuc1.in
v dathuc2.in theo khun dng sau:
Dng u tin ghi li s t nhin K l s cc s hng ca a thc;
K dng k tip, mi dng ghi li h s v s m ca s hng hng a thc.
Hy s dng danh sch lin kt n vit chng trnh tnh hiu hai a thc A v B
v ghi li a thc kt qu vo file ketqua.out theo khun dng nh trn. V d vi a thc

Pn ( x) 10 x 30000 5 x1000 3x 2 3
Qm ( x) 8 x 20000 3x1000 3x 500 7 x100 6 x
s c biu din v tnh ton cho ra file kt qu sau

93
BI TP K THUT LP TRNH Vesion 1.0

dathuc1.in dathuc2.in ketqua.out


4 5 8
10 30000 8 20000 10 30000
5 1000 3 1000 -8 20000
3 2 3 500 3 1000
3 0 7 100 -3 500
6 1 -7 100
3 2
-6 1
3 0

1.13.Kh qui da vo ngn xp v danh sch lin kt


BAI 3.4.1: KH QUY TH TC THP H NI (THAM KHO)
Tham kho bi 3.1.1. IT
Hng dn:
Dng quy th tc Thap H Ni l:
THN(n , X , Y, Z ) if( n > 0 )
T

{
THN ( n 1 , X , Z , Y ) ;
P

Move ( X , Z ) ;
THN ( n 1 , Y , X , Z ) ;
}
Vi n l s a, X l ct u, Z l ct cui, Y l ct gia, Move(X, Z) l cc thao
tac chuyn 1 a t ct X ti ct Z.
Trong trng hp ny:
X l b (n, X, Y, Z).
C(X) l biu thc boolean (n <= 0).
D(X), A(X) l thao tac rng.
B(X) = B(n, X, Y, Z) l thao tc Move(X, Z).

94
BI TP K THUT LP TRNH Vesion 1.0

g(X) = g(n, X, Y, Z) = (n -1, Y, X, Z).


Gii thut khng quy tng ng l:
{ Creat_Stack (S) ;
Push (S ,(n,X,Y,Z,1)) ;
While ( n > 0 ) {
Push (S ,(n,X,Y,Z,2)) ;
n=n1;
Swap (Y,Z ) ; //(* Swap(a, b) l th tc hon i ni dung 2 bin a, b)
}
POP (S,(n,X,Y,Z,k)) ;
if ( k != 1 ) {
Move (X ,Z ) ;
IT
n=n1;
Swap (X ,Y ) ;
T

}
until ( k = 1 ) ;
P

BAI 3.4.2: KH QUI TNH N! BNG VNG LP


F(n) = C Khi n = n0 ( C l mt hng)
= g(n, f(n, n-1)) khi n> n0
V d: Hm giai tha FAC(n) = n! = 1 khi n = 0

BAI 3.4.3: TM C CHUNG LN NHT (UCLN) CA 2 S NGUYN DA VO


THUT TON EUCLIDE.
Gii thut quy tm UCLN(m, n) bng thut toan Euclide:

95
BI TP K THUT LP TRNH Vesion 1.0

UCLN(m , n , var us) if ( n = 0 ) us = m ;


else USCLN(n , m mod n , us ) ;

BAI 3.4.4: Kh qui hm tnh t hp chp k ca n phn t


int TH(int k, int n){
// vi gi thit 0<=k<=n
if ((k==0) || (k==n))
return 1;
else
return (TH(k-1,n-1)+TH(k,n-1));
}
IT
BAI 3.4.5: Kh qui hm tnh dy Fibonaci theo n
int Fibo(int n){
T

//vi gi thit n>=0


if ((n==0) || (n=1))
P

return 1;
else
return (Fibo(n-2)+Fibo(n-1));
}

BAI 3.4.6: KH QUY THUT TON QUICKSORT

BAI 3.4.7:
Cho dy Wn = x0x1...xn vi:
x0 = 0

96
BI TP K THUT LP TRNH Vesion 1.0

mi bc k tip, nu c dy con Wn-1 bc n-1 th ghp thm vo cui dy


Wn-1 l dy ph nh ca dy Wn-1 nhn dy mi l: Wn l Wn-1 ghp vi ph
nh ca Wn-1.
xy dng dy con ph nh ca Wn-1 bng cach thay 0 bng 1, 1 thay bng 0. C th
nh sau:
W0 = 0
W1 = 01
W2 = 0110
W3 = 01101001
Vit hm xac nh phn t th k bng qui v khng qui.
V d: k = 0 gia tr th 0 l 0, k = 7 gia tr th 7 l 1.
Gi y: IT
Bc 1: Xac nh Wn ngn nht c cha phn t th k. Ngha l xac nh n nh nht
sao cho 2n k + 1.
Bc 2: Gi x[k] l gi tr phn t th k. Khi phn t ph nh ca x[k] l 1 -
T
x[k].
Trong dy Wn, cc phn t th 2n-1, 2n-1+1, ..., 2n-1 l ph nh ca cc phn th th
P

0, 1, ..., 2n-1-1 nn x[k] = 1 - x[k - 2n-1].


Vy ta c h thc qui nh sau: x[k] = 1 - x[k - 2n-1] vi x[0] = 0.

97
BI TP K THUT LP TRNH Vesion 1.0

IV.Lp trnh trn cy nh phn


4.1. Cy nh phn
BAI 4.1.1:
Xy dng cu trc cy nh phn vi cac hm c bn: nhp, xut, thm node.
BAI 4.1.2:
Vit hm xut cac gia tr chn trong cy.
BAI 4.1.3:
Vit hm xut a ch cac node trn cy c gia tr ln hn a, nh hn b (a, b l hai
gia tr bt k c nhp vo).
BAI 4.1.4: IT
Vit hm xut cac node trn tng th k ca cy, vi k l s nguyn bt k c nhp
vo.
BAI 4.1.5:
T

Vit hm xut tt c cc nt trn cy theo th t t tng 0 n tng h-1 ca cy (vi


h l chiu cao ca cy)
P

BAI 4.1.6:
m s lng cac node c ng k con (k l s nguyn bt k c nhp vo).
BAI 4.1.7:
Vit hm m s lng nt l m thng tin ti nt l gia tr chn.
BAI 4.1.8:
Vit hm m s lng nt c ng 1 con m thng tin ti nt l s nguyn t.
BAI 4.1.9:
Vit hm m s lng nt c ng 2 con m thng tin ti nt l s chnh phng.
BAI 4.1.10:
Vit hm m s lng nt trn tng th k ca cy

98
BI TP K THUT LP TRNH Vesion 1.0

BAI 4.1.11:
Vit hm m s lng nt nm tng cao hn tng th k ca cy
BAI 4.1.12:
Vit hm tnh tng cc nt trong cy
BAI 4.1.13:
Vit hm tnh tng cc nt l trong cy
BAI 4.1.14:
Vit hm tnh tng cac nt c ng mt con
BAI 4.1.15:
Vit hm tnh tng cac nt c ng hai con
BAI 4.1.16:
Vit hm tnh tng cc nt l m thng tin ti nt l gia tr chn
IT
BAI 4.1.17:
Vit hm tnh tng cac nt c ng 1 con m thng tin ti nt l s nguyn t
T

BAI 4.1.18:
Vit hm tnh chiu cao cy
P

BAI 4.1.19:
Vit hm xa tt c cc nt c bc cao hn k
BAI 4.1.20:
Cho m,n l hai node trn cy. Vit hm kim tra xem liu m l node bn phi hay
bn trai ca n trn cy.
BAI 4.1.21:
Thng tin v mt th sinh bao gm: s bo danh (kiu k t) v im thi (kiu thc) trong
s bao danh l trng kha. CHo danh sach th sinh nh sau:
(G,18);(D,30);(B,15);(M,19);(I,27);(P,30);(F,5);(C,23);(L,15);(N,10); (E,16);(R,25).
a. Khai bo cu trc d liu cy nh phn (dng con tr) lu tr danh sch th sinh
trn.

99
BI TP K THUT LP TRNH Vesion 1.0

b. xy dng cy nh phn tm kim (ln lt theo tng bc t danh sch trn


c. M t tng bc tm th sinh c s bo danh l E trn cy
d. Vit hm m cac th sinh im (c im trn 20)
e. Vit hm in danh sch th sinh theo chiu tng dn ca im.

4.2. Cy nh phn tm kim


BAI 4.2.1:
Xy dng cu trc cy nh phn tm kim vi cac hm sau:
a) Nhp v duyt cy theo cac th t: trc, gia v sau.
b) Tm node c gia tr x trn cy.
c) Tm node c gia tr nh nht.
d) Tm node c gia tr ln nht.
IT
e) Tnh cao ca cy.
f) m s nt la ca cy.
g) m s nt c ng 2 cy con.
h) m s nt c ng 1 cy con.
T

i) Xa nt c gia tr x.
P

BAI 4.2.2:
Cho mt cy nh phn tm kim. Mi node trn cy c info l mt s nguyn v lin kt
ch n cy con tri v cy con phi.
a. Tnh s node, s node l, s node nhnh trn cy.
b. Tnh chiu cao ca cy.
c. Tnh di ca cy.
d. Tnh tng gi tr ca cc node trn cy.
e. Nhp vo mt s nguyn x. Vit th tc tm x trn cy . Nu tm thy hy in ra
mn hnh gi tr ca cc node ln hn x.
f. Duyt cy nh phn theo cac phng phap NLR, LNR, LRN.

100
BI TP K THUT LP TRNH Vesion 1.0

BAI 4.2.3:
Vit hm kim tra cy nh phn T c phi l "cy nh phn tm kim" hay khng?
BAI 4.2.4:
Vit chng trnh qun l lch cng tc trong thng n gin: cho php nhp vo ni dung
cng vic cn lm theo ngy, theo gi. Trong mt ngy c th c nhiu cng vic, mi
cng vic c gi bt u , tn cng vic, ni dung cng vic, tnh cht cng vic {rt quan
trng, quan trng, bnh thng, ko cn thit}
Chng trnh c cac chc nng chnh nh sau:
Nhp ni dung cng vic cn lm theo ngy, theo gi
Xem lch cng tac theo ngy yu cu
Xem cc cng vic theo tnh cht: rt quan trng, quan trng
Xem cac cng vic hon tt IT
Xem cac cng vic ch a thc hin
Xem cac cng vic t ngy a n ngy b
Xa hay iu chnh lch cng tac. Nu sau khi iu chnh, ngy no khng cn vic
T

phi lm s xa khi lch cng tac.


Yu cu : chng trnh c ci t cy nh phn tm kim (BST):
P

Mi nt trn cy BST l mt ngy ca lch cng tac


Trong mi nt ngy trn cy li cha mt danh sch lin kt lu thng tin cac cng
vic.
Khi thm mt cng vic vo mt ngy tn ti trn cy, th cng vic ny
s c a vo danh sach lin kt cha cac cng vic theo th t tng dn ca gi
bt u. Hnh v minh ha cu trc cy lch cng tac:

101
BI TP K THUT LP TRNH Vesion 1.0

Hnh: Cu trc cy lch cng tac


IT
Nng cao ( khng bt buc, danh cho sinh vin kh, gii )
Thay danh sach lin kt cha cng vic trong ngy thnh cy nh phn tm kim,
kha xy dng cy BST con l gi bt u!
T
P

Hnh: Cu trc cy lch cng tac nng cao

102
BI TP K THUT LP TRNH Vesion 1.0

BAI 4.2.5:
Xt thut gii to cy nh phn tm kim. Nu th t cac khoa nhp vo
l nh sau:8, 3, 5, 2, 20, 11, 30, 9, 18, 4 th hnh nh cy to c nh th no ?
sau , nu hy ln lt cac nt 5, 20 ( theo th t ) th cy s thay i nh th
no trong tng bc hy (v li cy cho mi bc).
BAI 4.2.6:
Hy a ra mt ci t quy ca thut toan nh phn tm kim.
BAI 4.2.7:
Gi s a[i] = 2i vi 1 < = i < = N. C bao nhiu v tr trong bng c kim tra
khi dng tm kim ni suy trong trng hp tm kim khng thnh cng cho 2k -
1?
BAI 4.2.8:
V ra cy nh phn tm kim c c khi chn cac mu tin vi cac kha E A S Y
IT
Q U E T I O N vo mt cy rng khi to.
BAI 4.2.9:
Hy sa cy nh phn tm kim sao cho n lu tt c cac kha bng nhau trong
T

cy. (nu by k node khac trong cy c cng kha vi mt node cho th hoc
cha ca n hoc mt trong cac con ca n nn c cng kha.)
P

BAI 4.2.10:
Vit mt chng trnh khng quy in ra cac kha trong cy nh phn tm kim
theo th t ca kha.
BAI 4.2.11:
V mt cy nh phn tm kim c c khi chn cac mu tin vi cac kha E A S Y
Q U E T I O N vo mt cy rng khi to, v tip xa Q.

BAI 4.2.12:
Ta nh ngha mt t l dy cc k t khng cha khong trng (space), du tab, du xung
dng (\n), du v u dng (\r) v du kt thc dng (\0). Tn xut xut hin ca t W
trong tp vn bn D1 v D2, k hiu l P(W) c tnh theo cng thc:

103
BI TP K THUT LP TRNH Vesion 1.0

N1 (W ) N 2 (W )
P(W ) ; trong Ni(W) l s ln xut hin t W trong Di, N(Di) l tng
N ( D1 ) N ( D2 )
s t ca tp vn bn Di (i=1, 2).
Cho hai file vn bn data1.in v data2.in. S dng cy nh phn tm kim, hy tm tp
cc t v tn xut xut hin ca mi t hoc xut hin trong data1.in hoc xut hin trong
data2.in. Tp cc t tm c ghi li trong file Ketqua.out theo khun dng:
Dng u tin ghi li s t nhin K l s t W tm c theo yu cu ca bi ton.
K dng k tip, mi dng ghi li mt t W v tn xut xut hin P(W) tha mn yu
cu ca bi ton. W v P(W) c vit cch nhau bi mt vi khong trng.
V d vi file data1.in v data2.in di y s cho ta file Ketqua.out ca bi ton.

data1.in data2.in Ketqua.out

AB AC AD AE AF AB AC AD AH AK 7
AB AC AD AE AF AB AC AD AH AK AB 0.2
IT AC 0.2
AD 0.2
AE 0.1
T

AF 0.1
AH 0.1
P

AK 0.1

BAI 4.2.13:
Ta nh ngha mt t l dy cc k t khng cha khong trng (space), du tab, du xung
dng (\n), du v u dng (\r) v du kt thc dng (\0). Tn xut xut hin ca t W
trong tp vn bn D1 v D2, k hiu l P(W) c tnh theo cng thc:
N1 (W ) N 2 (W )
P(W ) ; trong Ni(W) l s ln xut hin t W trong Di, N(Di) l tng
N ( D1 ) N ( D2 )
s t ca tp vn bn Di (i=1, 2).
Cho hai file vn bn data1.in v data2.in. S dng cy nh phn tm kim, hy tm tp
cc t v tn xut xut hin ca cc t xut hin trong file data1.in nhng khng xut hin
trong file data2.in. Tp cc t tm c ghi li trong file Ketqua.out theo khun dng:

104
BI TP K THUT LP TRNH Vesion 1.0

Dng u tin ghi li s t nhin K l s t W tm c theo yu cu ca bi ton.


K dng k tip, mi dng ghi li mt t W v tn xut xut hin P(W) tha mn yu
cu ca bi ton. W v P(W) c vit cch nhau bi mt vi khong trng.
V d vi file data1.in v data2.in di y s cho ta file Ketqua.out ca bi ton.

data1.in data2.in Ketqua.out

AB AC AD AE AF AB AC AD AH AK 2
AB AC AD AE AF AB AC AD AH AK AE 0.1
AF 0.1

BAI 4.2.14:
Ta nh ngha mt t l dy cc k t khng cha khong trng (space), du tab, du xung
IT
dng (\n), du v u dng (\r) v du kt thc dng (\0). Tn xut xut hin ca t W
trong tp vn bn D1 v D2, k hiu l P(W) c tnh theo cng thc:
N1 (W ) N 2 (W )
P(W ) ; trong Ni(W) l s ln xut hin t W trong Di, N(Di) l tng
N ( D1 ) N ( D2 )
T

s t ca tp vn bn Di (i=1, 2).
Cho hai file vn bn data1.in v data2.in. S dng cy nh phn tm kim, hy tm tp
P

cc t v tn xut xut hin ca mi t trong c hai tp data1.in v data2.in. Tp cc t tm


c ghi li trong file Ketqua.out theo khun dng:
Dng u tin ghi li s t nhin K l s t W tm c theo yu cu ca bi ton.
K dng k tip, mi dng ghi li mt t W v tn xut xut hin P(W) tha mn yu
cu ca bi ton. W v P(W) c vit cch nhau bi mt vi khong trng.
V d vi file data1.in v data2.in di y s cho ta file Ketqua.out ca bi ton.

data1.in data2.in Ketqua.out

AB AC AD AE AF AB AC AD AH AK 3
AB AC AD AE AF AB AC AD AH AK AB 0.2
AC 0.2

105
BI TP K THUT LP TRNH Vesion 1.0

AD 0.2

4.3. B-Cy (thuc tm kim b nh ngoi)


BAI 4.3.1:
Hy cho bit ni dung ca B-cy c c khi chn cac kha E A S Y Q U E S T I
O N theo th t vo mt cy khi ng trng vi M = 5.
BAI 4.3.2:
Hy cho bit ni dung ca B-cy c c khi chn cac kha E A S Y Q U E S T I
O N theo th t va mt cy khi ng trng vi M = 6. Dng phng phap m
tt c cac mu tin u c lu trong cac node ngoi.
BAI 4.3.3: IT
V mt B-cy c c khi chn mi sau kha trng nhau c chn vo mt cy
khi to trng vi M=5.
BAI 4.3.4:
T

Gi s rng trang ca c s d liu b pha hy. Hy m t cach gii quyt ca bn


i vi s c ny cho mi cu trc B-cy.
P

BAI 4.3.5:
Ti sao cac B-cy t trn xung tt hn cac B-cy t di ln i vi vic truy
xut ng hnh ti d liu? (v d, gi s hai chng trnh chn cng mt node mi
vo cng mt thi im.)

4.4. Cy cn bng
BAI 4.4.1:
Cho mt cy nh phn T, mi nt l mt s nguyn. Hy vit cc hm thc
hin cc yu cu sau:
a.Hy m s nt ca cy.

106
BI TP K THUT LP TRNH Vesion 1.0

b.Cho bit chiu cao ca cy AVL


c.Kim tra xem T c phi l cy nh phn tm kim khng ?
d.Kim tra xem T c phi l cy cn bng hon ton khng ?
e.Kim tra xem T c phi l cy nh phn cn bng khng ?
f.Thm mt phn t vo cy AVL
g.Hy mt phn t trn cy AVL.
h.Cn bng li mt cy va b mt cn bng.
BAI 4.4.2:
Hy v mt cy 2-3-4 t trn xung c c khi chn cac kha E A S Y Q U E S
T I O N theo th t vo mt cy c khi to trng.

4.5. Cy en
IT
BAI 4.5.1:
V cy en c c khi chn cac k t t A n K theo th t v m t ni chung
iu g xy ra khi cac kha c chn vo theo th t tng.
T

BAI 4.5.2:
P

Thng thng c bao nhiu lin kt ca cy phi b thay i vi mt thao tac quay
kp, v bao nhiu b thay i trong mt ci t cho.
BAI 4.5.3:
Hy phat sinh hai cy en ngu nhin 32 node, v chng v so sanh chng vi
vi cac cy tm kim nh phn khng cn bng c xy dng vi cng mt tp hp
kha .
BAI 4.5.4:
Hy phat sinh 10 cy en ngu nhin 1000 node. Tnh s php quay cn thit
xy dng cac cy v khong cach trung bnh t node gc ti mt node ngoi cho
mi cy. Tho lun cac kt qu.

107
BI TP K THUT LP TRNH Vesion 1.0

BAI 4.5.5:
Vi mt bit mu cho mi node, chng ta c th biu din 2 node, 3 node, 4 node.
Bao nhiu dng node khac nhau c th c nu chng ta dng 2 bit cho mi node.
BAI 4.5.6:
Cac thao tac quay c i hi trong cy en khi cac 3 node b i thnh 4 node
bi mt phng phap khng cn bng. Ti sao ta khng kh b cac php quay
bng cach cho php cac 4 node c biu din nh 3 node bt k c ni bng
hai lin kt (hon ton cn bng hay khng)?
BAI 4.5.7:
Hy cho mt dy thao tac chn m s xy dng cy en c ch trong hnh
sau:

IT
T
P

4.6. Cy quyt nh
4.7. Cy m tin t

108
BI TP K THUT LP TRNH Vesion 1.0

V.Lp trnh trn th


5.1. Biu din th
BAI 5.1.1:
Hy biu din th bng ma trn k.
BAI 5.1.2:
Hy biu din th bng danh sach cnh.
BAI 5.1.3:
Hy biu din th bng danh sach k.
BAI 5.1.4:
Biu din no cho th v hng l thch hp nht xem mt nh c c lp
(khng c ni ti bt k nh no) hay khng?
IT
BAI 5.1.5:
Cn bao nhiu bit lu tr trong biu din ma trn k ca th c hng V nh
v E cnh? Cn bao nhiu i vi biu din xu k?
T

BAI 5.1.6:
Hy cho v d mt th khng th v c ra giy m khng c hai cnh ct nhau.
P

BAI 5.1.7:
Vit mt chng trnh xa i mt cnh khi mt th c biu din bi xu
k.
BAI 5.1.8:
Vit th tc adjlist duy tr cac xu k theo th t ca ch s nh. Tho lun v
u im ca cach tip cn ny.

BAI 5.1.9:
Cho th v hng G =<V,E> gm N nh v M cnh c biu din di dng danh
sch k trong file dske.in theo khun dng sau:
Dng u tin ghi li s t nhin N l s nh ca th;

109
BI TP K THUT LP TRNH Vesion 1.0

N dng k tip mi dng ghi li danh sch k ca nh tng ng. Hai nh trong
cng mt danh sch k c phn bit vi nhau bng mt hoc vi k t trng, nh
khng c cnh ni vi n (nh c lp) c ghi gi tr 0.
Hy vit chng trnh chuyn i biu din th G di dng danh sch k thnh
biu din ca th G di dng ma trn k v danh sch cnh. Khun dng biu din
th G di dng ma trn k, danh sch k c ghi li trong file mtke.out v dscanh.out
theo khun dng sau:
Khun dng file mtke.out:
Dng u tin ghi li s t nhin n l s nh ca th;
N dng k tip ghi li ma trn k ca th, hai phn t khc nhau ca ma trn
k c ghi cch nhau bi mt vi k t trng.
Khun dng file dscanh.out
Dng u tin ghi li s t nhin N v M tng ng vi s nh v s cnh ca
th, hai s c ghi cch nhau bi mt vi k t trng;
M dng k tip mi dng ghi li mt cnh ca th, nh u v nh cui ca
IT
mi cnh c ghi cch nhau bi mt vi k t trng.
V d th gm 5 nh, 5 cnh c biu din trong file dske.in nh di y s cho ta
cac file mtke.out v dscanh.out tng ng.
T

dske.in mtke.out dscanh.out


P

5 5 5 4
2 3 0 1 1 0 0 1 2
1 4 1 0 0 1 0 1 3
1 5 1 0 0 0 1 2 4
2 0 1 0 0 0 3 5
3 0 0 1 0 0

BAI 5.1.10:
Cho th c hng G =<V,E> gm N nh v M cnh c biu din di dng danh
sch k trong file dske.in theo khun dng sau:
Dng u tin ghi li s t nhin N l s nh ca th;

110
BI TP K THUT LP TRNH Vesion 1.0

N dng k tip mi dng ghi li danh sch k ca nh tng ng. Hai nh trong
cng mt danh sch k c phn bit vi nhau bng mt hoc vi k t trng, nh
khng c cnh ni vi n (nh c lp) c ghi gi tr 0.
Hy vit chng trnh chuyn i biu din th G di dng danh sch k thnh
biu din ca th G di dng ma trn k v danh sch cnh. Khun dng biu din
th G di dng ma trn k, danh sch k c ghi li trong file mtke.out v dscanh.out
theo khun dng sau:
Khun dng file mtke.out:
Dng u tin ghi li s t nhin n l s nh ca th;
N dng k tip ghi li ma trn k ca th, hai phn t khc nhau ca ma trn
k c ghi cch nhau bi mt vi k t trng.
Khun dng file dscanh.out
Dng u tin ghi li s t nhin N v M tng ng vi s nh v s cnh ca
th, hai s c ghi cch nhau bi mt vi k t trng;
M dng k tip mi dng ghi li mt cnh ca th, nh u v nh cui ca
IT
mi cnh c ghi cch nhau bi mt vi k t trng.
V d th gm 5 nh, 5 cnh c biu din trong file dske.in nh di y s cho ta
cac file mtke.out v dscanh.out tng ng.
T

dske.in mtke.out dscanh.out


P

5 5 5 7
2 0 1 0 0 0 1 2
3 5 0 0 1 0 1 2 3
1 5 1 0 0 0 1 2 5
5 0 0 1 0 0 3 1
4 0 0 0 1 0 3 5
4 3
5 4

5.2. K thut DFS

111
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.2.1:
Vit chng trnh tm kim trong th vi thut ton tm kim theo chiu su
quy.
BAI 5.2.2:
Vit chng trnh tm kim trong th vi thut ton tm kim theo chiu su khng
quy.
BAI 5.2.3:
Gi s thut toan tm kim u tin su DFS c ap dng vo cy tm kim nh
phn v cnh bn phi c ly trc khi ri mi nt. Cac nt c ving thm theo
th t nh th no?
BAI 5.2.4:
Hy v ra rng tm kim u tin su c c vi th v d bt k khi th tc
DFS qut qua cac nh theo th t o ngc (t V ti 1) cho c hai cach biu din.
IT
BAI 5.2.5:
Th tc visit c gi chnh xac bao nhiu ln trong tm kim DFS trn mt th
v hng (m theo s nh V, s cnh E, s thnh phn lin thng C)?
T

BAI 5.2.6:
P

Cho mt th bt k. Vit th tc thc hin xa mt cnh v thm mt cnh bt


k. Hy tm cac im bn l v cac thnh phn lin thng ca th mi ny s
dng thut toan DFS.
BAI 5.2.7:
V cy DFS cho mt th bt k.
BAI 5.2.8:
Trong th song lin c V nh, s cnh nh nht l bao nhiu?
BAI 5.2.9:
Vit chng trnh in ra cac thnh phn song lin ca mt th.

112
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.2.10:
Vit chng trnh sinh mt th lin thng ngu nhin c V nh bng cach sinh
ra cac cp s nguyn t 1..V. c lng s cnh cn thit to ra mt th lin
thng theo V.

BAI 5.2.11:
Cho th v hng lin thng gm N nh G = <V,E>. S dng thut ton DFS, hy vit
chng trnh xy dng mt cy khung ca th bt u ti nh u. D liu vo cho bi
file dothi.in l biu din ca th di dng danh sch cnh theo khun dng sau:
Dng u tin ghi li ba s t nhin N, M v u tng ng vi s nh, s cnh ca
th v nh bt u xy dng cy khung. Ba s c vit cch nhau bi mt vi
khong trng.
M dng k tip, mi dng ghi li mt cnh ca th, nh u v nh cui ca
mi cnh c vit cch nhau mt vi khong trng.
IT
Cy khung xy dng t nh u tm c ghi li trong file cay.out theo khun dng sau:
Dng u tin ghi li s N, K tng ng vi s nh v s cnh ca cy khung.
Hai s c vit cch nhau mt vi k t trng;
T
K dng k tip ghi li mt cnh ca cy khung, nh u v nh cui ca mi
cnh c ghi cch nhau bi mt vi k t trng.
V d vi th G=<V,E> c t chc trong file dothi.in di y s cho ta file
P

cay.out tng ng.

dothi.in cay.out
5 8 1 5 4
1 2 1 2
1 3 2 3
1 4 3 4
1 5 4 5
2 3
2 5
3 4
4 5

113
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.2.12:
Cho th v hng lin thng gm N nh G = <V,E>. S dng thut ton DFS, hy vit
chng trnh xy dng mt cy khung ca th bt u ti nh u. D liu vo cho bi
file dothi.in l biu din ca th di danh sch k theo khun dng sau:
Dng u tin ghi li hai s t nhin N, u tng ng vi s nh ca th v nh
bt u xy dng cy khung. Hai s c vit cch nhau bi mt vi khong trng.
N dng k tip, mi dng ghi li danh sch k ca nh tng ng, hai nh khc
nhau ca cng mt danh sch k c ghi cch nhau bi mt vi k t trng.
Cy khung xy dng t nh u tm c ghi li trong file cay.out theo khun dng sau:
Dng u tin ghi li s N, M tng ng vi s nh v s cnh ca cy khung.
Hai s c vit cch nhau mt vi k t trng;
M dng k tip ghi li mt cnh ca cy khung, nh u v nh cui ca mi
cnh c ghi cch nhau bi mt vi k t trng. V d vi th G=<V,E> c
t chc trong file dothi.in di y s cho ta file cay.out tng ng.

cay.out
dothi.in
5 4
5
2
1
3 4 5
IT 1 2
1 3
1 4
1 3 5
1 5
1 2 4
T
1 3 5
1 2 4
P

114
BI TP K THUT LP TRNH Vesion 1.0

5.3. K thut BFS


Hy gii cac bi tp lp trnh phn 5.2 s dng k thut BFS.

BAI 5.3.1: TRUYN TIN


Mt lp gm N hc sinh, mi hc sinh cho bit nhng bn m hc sinh c th lin lc
c (ch lin lc ny l lin lc mt chiu : u c th gi tin ti v nhng v th cha chc
c th gi tin ti u).
Thy ch nhim ang c mt thng tin rt quan trng cn thng bo ti tt c cc hc sinh.
tit kim thi gian, thy ch nhn tin ti 1 s hc sinh ri sau nh cc hc sinh ny
nhn li cho tt c cc bn m cc hc sinh c th lin lc c, v c ln lt nh th
lm sao cho tt c cc hc sinh trong lp u nhn c tin .
Hy tm mt s t nht cc hc sinh m thy ch nhim cn nhn.
Input
IT
- Dng u l N, M (N <= 800, M l s lng lin lc 1 chiu)
- Mt s dng tip theo mi dng gm 2 s u , v cho bit hc sinh u c th gi tin
ti hc sinh v
T

Output
P

- Gm 1 dng ghi s hc sinh cn thy nhn tin.


Vi d
Input:
12 15
13
36
61
68
8 12
12 9

115
BI TP K THUT LP TRNH Vesion 1.0

96
24
45
52
46
7 10
10 11
11 7
10 9

Output:
2
IT
Chn cc hc sinh 7 v 2.
T

BAI 5.3.2:
Cho th v hng G =<V,E>, trong V l tp nh, E l tp cnh. Ta gi cnh e thuc
P

E l cu nu khi loi b cnh s lm tng s thnh phn lin thng ca th. Hy s dng
biu din d liu v thut ton thch hp. Hy vit chng trnh tm tt c cc cnh cu ca
th. D liu vo cho bi file Dothi.in theo khun dng sau:
Dng u tin ghi li s t nhin n l s nh ca th.
n dng k tip ghi li ma trn k ca th, hai phn t khac nhau ca ma trn k c
vit cach nhau bi mt hoc vi k t trng.
Kt qu ra ghi li trong file Canhcau.out theo khun dng sau:
Dng u tin ghi li s cac cnh cu m bn tm c.
Nhng dng k tip mi dng ghi li mt cnh cu, nh u v nh cui ca cnh
c vit cach nhau bi mt vi k t trng.
V d di y s minh ha cho file Dothi.in v Canhcau.out:

116
BI TP K THUT LP TRNH Vesion 1.0

dothi.in canhcau.out

5 4
0 1 1 0 0 1 2
1 0 0 1 0 1 3
1 0 0 0 1 2 4
0 1 0 0 0 3 5
0 0 1 0 0

BAI 5.3.3:
IT
Cho th v hng G =<V,E>, trong V l tp nh, E l tp cnh. Ta gi nh v thuc V
l tr nu khi loi b nh u cng cac cnh ni vi u s lm tng s thnh phn lin thng
ca th. Hy s dng biu din d liu v thut toan thch hp, vit chng trnh tm tt
T
c nh tr ca th. D liu vo cho bi file Dothi.in theo khun dng sau:
Dng u tin ghi li s t nhin n l s nh ca th.
P

n dng k tip ghi li ma trn k ca th, hai phn t khac nhau ca ma trn k
c vit cach nhau bi mt hoc vi k t trng.
Kt qu ra ghi li trong file Canhcau.out theo khun dng sau:
Dng u tin ghi li s nh tr m bn tm c.
Dng k tip ghi li cac nh tr tm c, hai nh tr khc nhau c vit cach
nhau bi mt vi k t trng.
V d di y s minh ha cho file Dothi.in v Canhcau.out:

dothi.in dinhtru.out

117
BI TP K THUT LP TRNH Vesion 1.0

5 3
0 1 1 0 0 1 2 3
1 0 0 1 0
1 0 0 0 1
0 1 0 0 0
0 0 1 0 0

BAI 5.3.4: BI C NGON NHT


Bessie d nh c ngy s nhai c xun v ngm nhn cnh xun trn canh ng ca nng
dn John, canh ng ny c chia thnh cac vung nh vi R (1 <= R <= 100) hng v
C (1 <= C <= 100) ct. IT
Bessie c g c th m c s khm c trn canh ng. Mi khm c trn bn c
anh du bng mt k t # hoc l 2 k t # nm k nhau (trn ng cho th khng
phi). Cho bn ca canh ng, hy ni cho Bessie bit c bao nhiu khm c trn canh
ng.
T

V d nh canh ng di dy vi R=5 v C=6:


P

.#....
..#...
..#..#
...##.
.#....
Canh ng ny c 5 khm c: mt khm hng u tin, mt khm to bi hng th 2 v
th 3 ct th 2, mt khm l 1 k t nm ring r hng 3, mt khm to bi ct th 4
v th 5 hng 4, v mt khm cui cng hng 5.
D liu
Dng 1: 2 s nguyn cch nhau bi du cch: R v C
Dng 2..R+1: Dng i+1 m t hng i ca canh ng vi C k t, cc k t l #
hoc . .

118
BI TP K THUT LP TRNH Vesion 1.0

Kt qu
Dng 1: Mt s nguyn cho bit s lng khm c trn canh ng.
V d
D liu
56
.#....
..#...
..#..#
...##.
.#....

Kt qu
IT
5
T

BAI 5.3.5: PHNG N BN PHO


Mt h thng phng th ca ch gm N im (N<=100), gia cac im bt k ca h
P

thng u c th i li trc tip hoc gin tip vi nhau thng qua h thng cac ng hm.
Bi toan c t ra l cho trc mt h thng phng th, hy gip b i s dng ng 1
qu pho bn vo mt trong N im sao cho h thng b chia ct thnh nhiu mnh nht.
Input:
Dng u tin ghi s b test, khng ln hn 100. Mi b test c t chc theo
khun dng sau:
Dng u tin ghi li s t nhin N khng ln hn 100 l s im ca h thng
phng th.
Nhng dng k tip ghi li ma trn G = (gij) biu din h thng phng th,
trong gij=0 c hiu l khng c ng hm trc tip ni gia im i v
j, gij =1 c hiu c ng hm ni trc tip gia im i v im j (1<=i,
j<=N).

119
BI TP K THUT LP TRNH Vesion 1.0

Output:
Vi mi b test, in ra mn hnh trn mt dng mt s duy nht l nh b ph hy
tha mn yu cu bi ton (nu c nhiu nh cng tha mn yu cu th in ra nh
c gi tr nh nht). Nu khng th chia ct c h thng, hy in ra s 0.
Example
Input:
2
5
0 1 1 0 0
1 0 1 0 0
1 1 0 1 1
0 0 1 0 0
0 0 1 0 0
5
0 1 1 0 0
IT
1 0 1 0 1
1 1 0 1 1
0 0 1 0 1
T

0 1 1 1 0
P

Output:
3
0

BAI 5.3.6: CH B H HNG


Nng dn John c N (1<=N<=250) con b anh s t 1..N chi trn bi c.
trnh b lc mt cc con b, mi con b c th c ni vi mt s con b khc bng
dy thng.
C tt c M (1 <= M <= N*(N-1)/2) dy thng ni cc con b. Tt nhin, khng c 2 con
b m c nhiu

120
BI TP K THUT LP TRNH Vesion 1.0

hn 1 dy thng ni gia chng. D liu cho bit mi cp con b c1 v c2 l ni vi nhau


(1 <= c1 <= N; 1 <= c2 <= N; c1 != c2).
Nng dn John buc c nh con b 1 bng si dy xch. Cc con b khc phi ni vi con
b 1 bng mt s si dy thng. Tuy nhin, mt s con b h hng khng nh vy. Hy
gip nng dn John tm cac con b h hng (khng kt ni ti b 1). D nhin, con b
th 1 lun ni ti chnh n.
Input:
* Dng 1: 2 s nguyn cch nhau bi du cch: N and M
* Lines 2..M+1: Dng i+1 cho bit 2 con b ni vi nhau bng si dy th i l c1 v c2
cch nhau bi du cch.
Output:
* Nu khng c con b h hng, in ra 0.
* Ngc li, in ra trn mi dng 1 s nguyn l th t con b h hng theo th t tng
dn.
IT
Vi d:
Input:
T

64
P

13
23
12
45
Output:
4
5
6
Gii thch:
Input c th m t nh hnh di y:
1---2 4---5

121
BI TP K THUT LP TRNH Vesion 1.0

\ |
\| 6
\|
3
D thy, cc con b 4, 5, v 6 khng ni ti con b 1.

BAI 5.3.7:
Cho th v hng lin thng gm N nh G = <V,E>. S dng thut ton BFS, hy vit
chng trnh xy dng mt cy khung ca th bt u ti nh u. D liu vo cho bi
file dothi.in l biu din ca th di dng ma trn k theo khun dng sau:
Dng u tin ghi li hai s t nhin N, u tng ng vi s nh v nh bt u
xy dng cy khung. Hai s c vit cch nhau bi mt vi khong trng.
N dng k tip ghi li ma trn k ca th, hai phn t khc nhau ca ma trn k
c vit cch nhau mt vi khong trng.
IT
Cy khung xy dng t nh u tm c ghi li trong file cay.out theo khun dng sau:
Dng u tin ghi li s N, K tng ng vi s nh v s cnh ca cy khung.
Hai s c vit cch nhau mt vi k t trng;
K dng k tip ghi li mt cnh ca cy khung, nh u v nh cui ca mi
T

cnh c ghi cch nhau bi mt vi k t trng.


V d vi th G=<V,E> c t chc trong file dothi.in di y s cho ta file
cay.out tng ng.
P

dothi.in cay.out
5 5 4
0 1 1 1 2
1 1 1 3
1 0 1 1 4
0 1 1 5
1 1 0
1 0
1 0 1
0 1
1 1 0
1 0

122
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.3.8:
Cho th v hng lin thng gm N nh G = <V,E>. S dng thut ton BFS, hy vit
chng trnh xy dng mt cy khung ca th bt u ti nh u. D liu vo cho bi
file dothi.in l biu din ca th di dng danh sch cnh theo khun dng sau:
Dng u tin ghi li ba s t nhin N, M v u tng ng vi s nh, s cnh ca
th v nh bt u xy dng cy khung. Ba s c vit cch nhau bi mt vi
khong trng.
M dng k tip, mi dng ghi li mt cnh ca th, nh u v nh cui ca
mi cnh c vit cch nhau mt vi khong trng.
Cy khung xy dng t nh u tm c ghi li trong file cay.out theo khun dng sau:
Dng u tin ghi li s N, K tng ng vi s nh v s cnh ca cy khung.
Hai s c vit cch nhau mt vi k t trng;
K dng k tip ghi li mt cnh ca cy khung, nh u v nh cui ca mi
cnh c ghi cch nhau bi mt vi k t trng.
V d vi th G=<V,E> c t chc trong file dothi.in di y s cho ta file
cay.out tng ng.
IT
dothi.in cay.out
5 8 1 5 4
T
1 2 1 2
1 3 1 3
1 4 1 4
1 5 1 5
P

2 3
2 5
3 4
4 5

BAI 5.3.9:
Cho th v hng lin thng gm N nh G = <V,E>. S dng thut ton BFS, hy vit
chng trnh xy dng mt cy khung ca th bt u ti nh u. D liu vo cho bi
file dothi.in l biu din ca th di danh sch k theo khun dng sau:
Dng u tin ghi li hai s t nhin N, u tng ng vi s nh ca th v nh
bt u xy dng cy khung. Hai s c vit cch nhau bi mt vi khong trng.
N dng k tip, mi dng ghi li danh sch k ca nh tng ng, hai nh khc
nhau ca cng mt danh sch k c ghi cch nhau bi mt vi k t trng.

123
BI TP K THUT LP TRNH Vesion 1.0

Cy khung xy dng t nh u tm c ghi li trong file cay.out theo khun dng sau:
Dng u tin ghi li s N, M tng ng vi s nh v s cnh ca cy khung.
Hai s c vit cch nhau mt vi k t trng;
M dng k tip ghi li mt cnh ca cy khung, nh u v nh cui ca mi
cnh c ghi cch nhau bi mt vi k t trng.
V d vi th G=<V,E> c t chc trong file dothi.in di y s cho ta file
cay.out tng ng.
dothi.in cay.out
5 1 5 4
2 3 4 5 1 2
1 3
1 3 5 1 4
1 2 4 1 5
1 3 5
1 2 4

IT
BAI 5.3.10:
Cho th c hng G =<V,E> gm N nh v M cnh c biu din di dng danh
sch k trong file dske.in theo khun dng sau:
T

Dng u tin ghi li s t nhin N l s nh ca th;


N dng k tip mi dng ghi li danh sch k ca nh tng ng. Hai nh trong
cng mt danh sch k c phn bit vi nhau bng mt hoc vi k t trng, nh
P

khng c cnh ni vi n (nh c lp) c ghi gi tr 0.


Hy vit chng trnh kim tra v a ra thng bao:
a) th lin thng mnh nu G lin thng mnh;
b) th lin thng yu nu G khng lin v G lin thng yu;
c) th khng lin thng mnh, khng lin thng yu trong nhng trng hp cn
li.

124
BI TP K THUT LP TRNH Vesion 1.0

V d vi th c biu din di dng danh sch k di, kt qu thc hin ca


chng trnh l th lin thng mnh.
dske.in
5
2
3 5
1 5
5
4

BAI 5.3.11:
Cho h thng giao thng gm N im. Bit gia hai im bt k ca h thng u tn ti
ng i trc tip hoc gin tip thng qua mt s im trung gian. Ta gi im giao thng
s l im tht ca cp nt giao thng u, v nu mi ng i t s n t u phi i qua s. V
d vi cp nt 1, 3 ca h thng giao thng gm 5 im di y s c nh tht s = 2 v
IT
s =4.

2 5
T

1
P

3 4
Nhim v ca bn l vit mt chng trnh tm s lng cac nh tht s ca cp im u, v
ca h thng giao thng.

D liu vo:
D liu vo gm nhiu b d liu tng ng vi nhiu test. Dng u tin cha mt
s nguyn khng ln hn 100 l s lng cc b d liu. Cc dng tip theo cha cc b
d liu. Mi b d liu gm mt nhm dng theo khun dng:
Dng 1 cha 4 s nguyn N, M, u, v ( u, v, N100; M1000).
M dng sau, mi dng ghi li ng ni trc tip gia cc cp im (i, j) ca h
thng giao thng (1i,jN).

D liu ra:
Vi mi b d liu, ghi ra trn mt dng mt s l s lng nh tht ca mi cp
im u, v trong mi test.

125
BI TP K THUT LP TRNH Vesion 1.0

V d d liu vo V d d liu ra
2 2
5 7 1 3 0
1 2
2 4
2 5
3 1
3 2
4 3
5 4
4 5 1 4
1 2
1 3
2 3
2 4
3 4

BAI 5.3.12:
IT
Cho mt h thng giao thng gm N im (N250). Bit gia hai im bt k ca h thng
u c ng i trc tip hoc gin tip thng qua cac im trung gian. Hy cho bit ta c
T
th nh chiu li ton b h thng giao thng sao cho gia hai im bt k ca h thng
u tn ti ng i v bng mt chiu hay khng?
Input: Dng u tin ghi s b test, khng ln hn 100. Mi b test c t chc nh
P

sau:
Dng th nht ghi li s N l s im node giao thng ca h thng;
N dng tip theo ghi li ma trn vung A = (aij) cp N l biu din ca h thng giao
thng. Trong , aij = 0 nu khng c ng i trc tip t im i n j, aij = 1 nu
c ng i trc tip t im i n j.
Output: Vi mi b test, vit ra trn mt dng gi tr YES nu h thng giao thng c
th nh chiu c, gi tr NO nu h thng giao thng khng th nh chiu c.
V d cho Input v Output:

126
BI TP K THUT LP TRNH Vesion 1.0

INPUT OUTPUT
2 NO
5 YES
0 1 1 0 0
1 0 1 0 1
1 1 0 1 0
0 0 1 0 0
0 1 0 0 0
5
0 1 1 0 0
1 0 1 1 1
1 1 0 1 0
0 1 1 0 1
0 1 0 1 0

BAI 5.3.13: IT
Cho h thng giao thng gm N node (1 N 100) c t chc trong file DATA.IN theo
khun dng sau: dng u tin ghi li s t nhin N l s node ca h thng; N dng k
tip ghi li ma trn vung Aij ( 1i,jN) l biu din ca h thng giao thng, trong Aij
=1 biu th h thng c ng i trc tip t node i n node j, Aij=0 biu th h thng
T

khng c ng i trc tip t node i n node j.


Bit gia hai node bt k ca h thng u c ng i trc tip hoc gin tip thng
qua mt s node trung gian. khc phc tnh trng tc nghn giao thng, nh chc trch
P

mun nh chiu li ton b h thng giao thng sao cho nhng iu kin sau c tha
mn:
a. Khng xy dng thm mi bt k mt tuyn ng no (bo ton cc tuyn ng
c);
b. Tt c cc tuyn ng i t node i n node j bt k ca h thng ch i bng mt
chiu.
Hy s dng biu din d liu v thut ton thch hp vit chng trnh nh chiu
li ton b h thng giao thng tha mn nhng iu kin trn. Ghi li kt qu nh chiu
cc tuyn ng trong fle KETQUA.OUT theo khun dng sau:
Dng u tin ghi li s t nhin M l s cac ng ni mt chiu trc tip t node
i n node j ca h thng hoc ghi li thng bao V nghim trong trng hp h
thng khng th nh chiu c;
M dng k tip mi dng ghi li hng ca mi tuyn ng trc tip (trong trng
hp bi toan nh chiu thnh cng).

127
BI TP K THUT LP TRNH Vesion 1.0

V d h thng gm 4 node c biu din trong file DATA.IN di y s cho ta kt qu


trong file KETQUA.OUT nh sau:
DATA.IN KETQUA.OUT
4 6
0 1 1 1 1 2
1 0 1 1 2 3
1 1 0 1 3 4
1 1 1 0 3 1
4 1

5.4. th Euler
BAI 5.4.1:
Cho cac th sau. th no l th na Euler, th Euler? Ti sao? Ch ra mt ng
i, chu trnh Euler nu c. IT
T
a b c
P

e f
d

g h i

Hnh 1 Hnh 2

BAI 5.4.2:
Cho th v hng lin thng G = <V,E> gm N nh c biu din di dng ma trn
k trong file dothi.in theo khun dng sau:
Dng u tin ghi s t nhin N tng ng vi s nh ca th;
N dng k tip ghi li ma trn k ca th, hai phn t khc nhau ca ma trn k c
vit cch nhau mt vi khong trng.

128
BI TP K THUT LP TRNH Vesion 1.0

Hy vit chng trnh kim tra G c phi l th na Euler hay khng? Nu G l th


na Euler hy xy dng mt ng i Euler ca th, ngc li a ra thng bao G
khng l th na Euler? Cac kt qu xut ra mn hnh.
V d vi th di y s cho ta ng i Euler : 2 - 1 - 3 - 2 - 4 - 3

dothi.in Mn hnh

4 2-3-4-1-24
0 1 0 1
1 0 1 1
0 1 0 1
1 1 1 0
IT
BAI 5.4.3:
T

Cho th c hng lin thng yu G = <V,E> gm N nh c biu din di dng ma


trn k trong file dothi.in theo khun dng sau:
P

Dng u tin ghi s t nhin N tng ng vi s nh ca th;


N dng k tip ghi li ma trn k ca th, hai phn t khc nhau ca ma trn k c
vit cch nhau mt vi khong trng.
Hy vit chng trnh kim tra G c phi l th na Euler hay khng? Nu G l th
na Euler hy xy dng mt ng i Euler ca th, ngc li a ra thng bao G
khng l th na Euler?. Cac kt qu xut ra mn hnh.
V d vi th di y s cho ta ng i Euler : 2 - 3 - 4 - 1 - 2 4:

dothi.in Mn hnh

4 2-3-4-1-24

129
BI TP K THUT LP TRNH Vesion 1.0

0 1 0 0
0 0 1 1
0 0 0 1
1 0 0 0

BAI 5.4.4:
Cho ma trn vung A = (aij) cp N (N100). Cc cc phn t trn ng cho chnh ca
ma trn A = (aij) lun c gi tr 0 (aii =0), cc phn t cn li c gi tr hoc bng 0 hoc
bng 1 (1i, j N). Ta ni ma trn A = (aij) l biu din ca th Euler nu v ch nu A
= (aij) tha mn tnh cht (a); ma trn A = (aij) l biu din ca th na Euler nu v ch
nu A = (aij) tha mn cc tnh cht (b) di y.
Tnh cht (a): Ma trn A=(aij) l ma trn i xng (aij =aji) v tng cc phn t trn
IT
mi hng ca ma trn l nhng s chn.
Tnh cht (b): Ma trn A=(aij) l ma trn i xng (aij =aji ) v tn ti ng hai hng
u, v sao cho tng cc phn t ca ma trn trn hng u v tng cc phn t ca ma
trn trn hng v l nhng s l.
T
Bi toan t ra l, cho ma trn vung A = (aij) cp N nh trn, hy a ra gia tr 1
nu A = (aij) tha mn tnh cht (a), gi tr -1 nu A = (aij) tha mn tnh cht (b), gi tr 0
trong cac trng hp khc.
P

Input:
Dng u tin ghi s b test, khng ln hn 100. Mi b test c t chc theo
khun dng sau:
Dng u tin ghi li s N l cp ca ma trn vung;
Nhng dng k tip ghi li ma trn vung A = (aij). Hai phn t khc nhau
ca ma trn vung c ghi cch nhau mt vi khong trng.
Output:
Vi mi b test, vit ra trn mt dng gi tr 1, -1 hoc 0 theo yu cu bi ton.
V d cho Input v Output:

130
BI TP K THUT LP TRNH Vesion 1.0

INPUT OUTPUT
3 1
5 -1
0 1 1 0 0 0
1 0 0 1 0
1 0 0 0 1
0 1 0 0 1
0 0 1 1 0
5
0 1 1 0 0
1 0 0 1 0
1 0 0 1 1
0 1 1 0 1
0 0 1 1 0
5
0 1 1 0 0
0 0 0 1 0
1 0 0 1 0
IT
0 1 1 0 1
0 0 1 1 0
T

BAI 5.4.5:
P

Cho th c hng lin thng yu G = <V,E> gm N nh c biu din di dng ma


trn k trong file dothi.in theo khun dng sau:
Dng u tin ghi li hai s t nhin N tng ng vi s nh ca th;
N dng k tip ghi li ma trn k ca th, hai phn t khc nhau ca ma trn k
c vit cch nhau mt vi khong trng.
Hy vit chng trnh kim tra G c phi l th na Euler hay khng? Nu G l
th na Euler hy xy dng mt ng i Euler ca th, ngc li a ra thng bao
G khng l th na Euler?
V d vi th di y s cho ta ng i Euler : 2 - 3 - 4 - 1 - 2 - 4

131
BI TP K THUT LP TRNH Vesion 1.0

dothi.in
4
0 1
0
0
0 0
1
1
0 0
0
1
1 0
0
0

BAI 5.4.6:
Cho th v hng lin thng G = <V,E> gm N nh c biu din di dng ma trn
k trong file dothi.in theo khun dng sau:
IT
Dng u tin ghi li hai s t nhin N tng ng vi s nh ca th;
N dng k tip ghi li ma trn k ca th, hai phn t khc nhau ca ma trn k
c vit cch nhau mt vi khong trng.
T

Hy vit chng trnh kim tra G c phi l th na Euler hay khng? Nu G l


th na Euler hy xy dng mt ng i Euler ca th, ngc li a ra thng bao
P

G khng l th na Euler?

BAI 5.4.7:
Cho th v hng lin thng G = <V,E> gm N nh c biu din di dng danh
sch k trong file dothi.in theo khun dng sau:
Dng u tin ghi li hai s t nhin N tng ng vi s nh ca th;
N dng k tip, mi dng ghi li danh sch k ca nh tng ng, hai nh khc
nhau ca cng mt danh sch k c ghi cch nhau bi mt vi k t trng.
Hy vit chng trnh kim tra G c phi l th Euler hay khng? Nu G l
th Euler, hy xy dng mt chu trnh Euler ca th bt u ti nh u (u c nhp t
bn phm), ngc li a ra thng bao G khng l th Euler?
V d vi th di y s cho ta chu trnh Euler bt u ti nh s 1 l : 1 - 2 - 3 - 4 -
1

132
BI TP K THUT LP TRNH Vesion 1.0

dothi.in
5
2 4
1 3
2 4
1 3

BAI 5.4.8:
Cho th c hng lin thng yu G = <V,E> gm N nh c biu din di dng ma
trn k trong file dothi.in theo khun dng sau:
Dng u tin ghi li hai s t nhin N tng ng vi s nh ca th;
N dng k tip ghi li ma trn k ca th, hai phn t khc nhau ca ma trn k
c vit cch nhau mt vi khong trng.
Hy vit chng trnh kim tra G c phi l th Euler hay khng? Nu G l
th Euler hy xy dng mt chu trnh Euler ca th bt u ti nh u (u c nhp t
bn phm), ngc li a ra thng bao G khng l th Euler?
IT
V d vi th di y s cho ta chu trnh Euler bt u ti nh s 1 l : 1 - 2 - 3 - 4 -
1
dothi.in
5
T
0 1
0
0
P

0 0
1
0
0 0
0
1
1 0
0
0

BAI 5.4.9:
Cho th v hng lin thng G = <V,E> gm N nh c biu din di dng ma trn
k trong file dothi.in theo khun dng sau:
Dng u tin ghi li hai s t nhin N tng ng vi s nh ca th;
N dng k tip ghi li ma trn k ca th, hai phn t khc nhau ca ma trn k
c vit cch nhau mt vi khong trng.

133
BI TP K THUT LP TRNH Vesion 1.0

Hy vit chng trnh kim tra G c phi l th Euler hay khng? Nu G l


th Euler hy xy dng mt chu trnh Euler ca th bt u ti nh u (u c nhp t
bn phm), ngc li a ra thng bao G khng l th Euler?
V d vi th di y s cho ta chu trnh Euler bt u ti nh s 1 l : 1 - 2 - 3 - 4 -
1
dothi.in
4
0 1
0
1
1 0
1
0
0 1
0
1
1 0
1
0
IT
BAI 5.4.10:
An a cho Bnh mt tp bn v trn mt phng. Mi bn v ch bao gm cac im v cc
T

on thng ni gia cac im. An Bnh, hy ghi li Yes trn cac bn v m Bnh c
th t li tt c cac on thng trn bn v bng mt nt bt, hy ghi li No nu Bnh
P

khng lm c iu .
Yu cu: Hy cho bit bng cch no Bnh c th ghi li cc gi tr Yes, No trn mi
bn v vi thi gian nhanh nht.
Input: Dng u tin ghi s b test, khng ln hn 100. Mi b test c t chc nh
sau:
Dng u tin ghi li hai s N, M l s im trn bn v v s on thng ni gia
cac im;
M dng k tip mi dng ghi li mt on thng ni gia im i v im j.
Output: Vi mi b test, output a ra gia tr Yes hoc No trn mi dng theo yu
cu ca bi ton.
V d cho Input v Output:

134
BI TP K THUT LP TRNH Vesion 1.0

INPUT OUTPUT
2 No
5 6 Yes
1 2
1 3
2 3
2 4
3 4
4 5
5 5
1 2
1 3
2 4
3 4
4 5 IT
BAI 5.4.11:
Token Ring l mt trong nhng phng phap kha ph bin trong vic kim tra tn hiu cc
T

knh truyn tin trong cc mng my tnh. Token Ring c th c m t nh sau.


Cho mt mng gm N my tnh. Gia hai my tnh bt k c th ni vi mt hoc nhiu
P

knh truyn tin khc nhau. Token Ring l mt tn hiu xut pht t mt my tnh bt k i
qua tt c cc knh truyn tin ni gia cc my tnh khc nhau ri tr v chnh n.
Yu cu: Cho mt mng my tnh bt k. Hy cho bit c th to nn mt Token Ring t
mt my tnh bt k i qua tt c cc knh truyn, mi knh ng mt ln ri tr v chnh
n hay khng?
Input: Dng u tin ghi s b test, khng ln hn 100. Mi b test c t chc nh
sau:
Dng th nht ghi li s N, M l s my tnh v s knh truyn s dng trong mng.
M dng tip theo, mi dng ghi li mt knh truyn trc tip gia hai my tnh.
Output: Vi mi b test, output a ra mt gi tr duy nht YES nu c th to ra mt
Token Ring theo yu cu ca bi toan, NO trong trng hp ngc li.
V d cho Input v Output:

135
BI TP K THUT LP TRNH Vesion 1.0

INPUT OUTPUT
2 YES
4 4 NO
1 2
1 4
2 3
3 4
4 5
1 2
1 3
1 4
2 3
3 4
IT
BAI 5.4.12:
Mt t c hiu l dy cc k t khng cha khong trng, du tab, du xung dng v
T

du v u dng. Ta ni, t X c th ni c vi t Y nu k t u tin ca t X trng


vi k t cui cng ca t Y (V d t X = ABC c th ni c vi t Y =EFA).
P

Yu cu: Cho xu k t S c khng qu 80 t (cc t trong S c th lp li). Hy cho


bit c th ni tt c cc t trong S to nn mt t mi theo nguyn tc nu trn hay
khng?
Input: Dng u tin ghi s b test, khng ln hn 100. Mi b test l mt xu k t
S c vit trn mt dng..
Output: Vit ra trn mi dng gi tr YES hoc NO nu ta c th thc hin c
hoc khng thc hin c yu cu t ra ca bi ton.
V d cho Input v Output:
INPUT OUTPUT
2 YES
ABC DEA ABC EAD DEA EAD NO
ABC ABD ABF ABG ADH ADA

136
BI TP K THUT LP TRNH Vesion 1.0

5.5. th Hamilton
BAI 5.5.1:
Tm mt chu trnh Hamilton ca th cho hnh di.

Hnh 1 Hnh 2
IT
BAI 5.5.2:
Chng minh rng: Nu th lng phn G = (V1, V2, E) c chu trnh Hamilton th
T
|V1| = |V2|
P

5.6. Cy khung th
BAI 5.6.1:
Xy dng cy khung ca th sau theo thut ton tm kim theo chiu rng v
chiu su xut pht t nh 1 (trong danh sach cac nh k ca mt nh lun u tin
chn nh c s th t nh)

137
BI TP K THUT LP TRNH Vesion 1.0

Hnh 1 Hnh 2

BAI 5.6.2:
Tm cy khung nh nht cho cac th sau bng hai phng phap PRIM,
KRUSKAL
IT
2 7 3
3 5
1 10 8 1 4
2
T

5 6
6 7 5
P

Hnh 1

Hnh 2 Hnh 3

138
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.6.3:
Tm mt cy bao trm ti thiu ca mt th.
BAI 5.6.4:
Hy a ra thut toan tm cy bao trm ti thiu ca mt th lin thng.
BAI 5.6.5:
C i th no V nh v E cnh m cn thi gian xp x (E+V)logV khi tm cy bao
trm ti thiu bng phng phap tm kim theo su u tin hay khng?
BAI 5.6.6:
Tm mt phn v d cho thy chin lc tham lam sau y s khng ng khi
gii bi toan cy bao trm ti thiu hay ng i ngn nht: trong mi bc, thm
nh cha c thm gn nh va thm nht.
BAI 5.6.7: IT
Lm th no tm cy bao trm ti thiu ca th khng l (qua ln n ni
khng th cha n trong b nh chnh).
BAI 5.6.8:
T

Vit chng trnh phat sinh cac th lin thng ngu nhin V nh, k tm
ng i ngn nht v cy bao trm ti thiu. Hy dng trng s ngu nhin t 1
P

n V. So sanh trng s cac cy c c ty theo cac gia tr ca V.


BAI 5.6.9:
Vit chng trnh phat sinh th y c trng s ngu nhin gm V nh
bng cach t cac gia tr trong ma trn k bi cac s ngu nhin t 1 n V. Chy
chng trnh so sanh thut toan tm cy bao trm ti thiu ca Kruskal v Prim
khi V = 10, 25, 100.
BAI 5.6.10:
Cho mt phn v d thy thut toan tm cy bao trm ti thiu sau y s khng
ng: Sp xp cac im theo honh , tm cy bao trm ti thiu cho mt na
u tin v mt na th hai, k n tm cnh ngn nht ni chng vi nhau.

139
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.6.11:
Cho th v hng lin thng gm N nh G = <V,E>. S dng thut ton BFS, hy vit
chng trnh xy dng mt cy khung ca th bt u ti nh u. D liu vo cho bi
file dothi.in l biu din ca th di dng danh sch cnh theo khun dng sau:
Dng u tin ghi li ba s t nhin N, M v u tng ng vi s nh, s cnh ca
th v nh bt u xy dng cy khung. Ba s c vit cch nhau bi mt vi khong
trng.
M dng k tip, mi dng ghi li mt cnh ca th, nh u v nh cui ca mi
cnh c vit cch nhau mt vi khong trng.
Cy khung xy dng t nh u tm c ghi li trong file cay.out theo khun dng sau:
Dng u tin ghi li s N, K tng ng vi s nh v s cnh ca cy khung. Hai s
c vit cch nhau mt vi k t trng;
K dng k tip ghi li mt cnh ca cy khung, nh u v nh cui ca mi cnh
c ghi cch nhau bi mt vi k t trng.
IT
V d vi th G=<V,E> c t chc trong file dothi.in di y s cho ta file cay.out
tng ng:
T

dothi.in cay.out
P

5 8 1 5 4
1 2 1 2
1 3 1 3
1 4 1 4
1 5 1 5
2 3
2 5
3 4
4 5

140
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.6.12:
Trn mt nn phng vi h ta trc chun t n may tnh, may tnh th i c
t ta (xi, yi). c sn mt s dy cap mng ni gia mt s cp may tnh.
Cho php ni thm cac dy cap mng ni gia tng cp may tnh. Chi ph ni mt
dy cap mng t l thun vi khong cach gia hai may cn ni. Hy tm cach ni
thm cac dy cap mng cho cac may tnh trong ton mng l lin thng v chi
ph ni mng l nh nht.

BAI 5.6.13:
H thng in trong thnh ph c cho bi n trm bin th v cac ng dy in
ni gia cac trm bin th. Mi ng dy in e c an ton l p(e) (0,1].
an ton ca c li in l tch an ton trn cac ng dy. Hy tm cach b i
mt s dy in cho cac trm bin th vn lin thng v an ton ca mng l
IT
ln nht c th.
Gi : bng k thut ly l ga rt, an ton trn li in tr thnh tng an ton
trn cac ng dy.
T
P

BAI 5.6.14:
Cho th v hng lin thng c trng s G = <V,E> trong file dothi.in c biu
din di dng danh sch cnh theo khun dng sau:
Dng u tin ghi li s t nhin N, M tng ng vi s nh v s cnh ca
th.
M dng k tip mi dng ghi li ba s i, j, w tng ng vi nh u, nh cui
v trng s ca cnh tng ng.

BAI 5.6.15:
Hy s dng thut ton Prim, vit chng trnh tm cy khung nh nht ca th
bt u ti nh u=1. Cy khung nh nht tm c ghi li trong file caykhung.out
theo khun dng:

141
BI TP K THUT LP TRNH Vesion 1.0

Dng u tin ghi li di cy khung nh nht;


Nhng dng k tip, mi dng ghi li ba s i, j, w tng ng vi nh u, nh
cui v trng s cnh tng ng ca cy khung.
V d di y s minh ha cho file dothi.in v caykhung.out ca th.

dothi.out ketqua.out

5 10
1 2 2 1 2
1 3 4 1 3
1 4 6 3 4
1 5 8 4 5
IT
2 3 7
2 5 5
T
3 4 3
4 5 1
P

BAI 5.6.16:
Cho th v hng lin thng c trng s G = <V,E> trong file dothi.in c biu din
di dng danh sch cnh theo khun dng sau:
Dng u tin ghi li s t nhin N, M tng ng vi s nh v s cnh ca
th.
M dng k tip mi dng ghi li ba s i, j, w tng ng vi nh u, nh
cui v trng s ca cnh tng ng.

Hy s dng thut ton Prim, vit chng trnh tm cy khung nh nht ca


th bt u ti nh u=1. Cy khung nh nht tm c ghi li trong file
caykhung.out theo khun dng:
Dng u tin ghi li di cy khung nh nht;

142
BI TP K THUT LP TRNH Vesion 1.0

Nhng dng k tip, mi dng ghi li ba s i, j, w tng ng vi nh u,


nh cui v trng s cnh tng ng ca cy khung.

V d di y s minh ha cho file dothi.in v caykhung.out ca th.

dothi.in ketqua.out
5 10
1 2 2 1 2
1 3 4 1 3
1 4 6 3 4
1 5 8 4 5
2 3 7
2 5 5
3 4 3
4 5 1

IT
BAI 5.6.17:
Cho th v hng lin thng c trng s G = <V,E> trong file dothi.in c biu din
di dng danh sch cnh theo khun dng sau:
T

Dng u tin ghi li s t nhin N, M tng ng vi s nh v s cnh ca


th.
P

M dng k tip mi dng ghi li ba s i, j, w tng ng vi nh u, nh


cui v trng s ca cnh tng ng.

Hy s dng thut ton Kruskal, vit chng trnh tm cy khung nh nht


ca th. Cy khung nh nht tm c ghi li trong file caykhung.out theo khun
dng:
Dng u tin ghi li di cy khung nh nht;
Nhng dng k tip, mi dng ghi li ba s i, j, w tng ng vi nh u,
nh cui v trng s cnh tng ng ca cy khung.

V d di y s minh ha cho file dothi.in v caykhung.out ca th.

dothi.in ketqua.out
5 10
1 2 2 1 2
1 3 4 1 3
1 4 6 3 4
1 5 8 4 5
2 3 7 143
2 5 5
3 4 3
4 5 1
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.6.18:
Cho mng gm N my tnh. Bit gia hai may tnh u c ni vi nhau bng h thng
cable trc tip hoc gin tip thng qua mt s my tnh trung gian. tit kim cable ni,
ngi ta ngh cach loi b i mt s ng cable sao cho ta vn nhn c mt mng my
tnh lin thng. Hy s dng biu din d liu v thut ton thch hp vit chng trnh b
cac ng cable cho mng may tnh sao cho hai iu kin sau c tha mn:
(i) S cac ng cable loi b nhiu nht c th c;
(ii) S cac ng cable i vo hoc i ra may tnh th K (1KN) l t nht.
D liu vo cho bi file mang.in theo khun dng sau:
IT
Dng u tin ghi li hai s t nhin N v K. Hai s c vit cch nhau
bi mt vi khong trng.
N dng k tip ghi li ma trn vung Aij (i, j = 1, 2, ..., N) l biu din cc
tuyn cable ni. Trong , Aij = 1 biu th t my tnh th i v my tnh th
T

j c ng cable ni trc tip; Aij = 0 biu th t my tnh th i v my tnh


th j khng c ng cable ni trc tip;
Mng my tnh lin thng vi ti thiu cac ng cable ni tm c ghi li
P

trong file ketqua.out theo khun dng sau:


Dng u tin ghi li s N l s my tnh ca mng v M v s cac ng
cable cn li ni cc my tnh;
M dng k tip ghi li mi ng cable ni trc tip t may tnh i n my
tnh j. Gi tr i v j c vit cch nhau mt vi khong trng.
V d vi mng may tnh c cho trong file mang.in s cho ta file ketqua.out tng
ng.

mang.in ketqua.out
5 1 5 4
0 1 1 1 1 1 2
1 0 1 0 1 2 3
1 1 0 1 0 3 4
1 0 1 0 1 4 5
1 1 0 1 0

144
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.6.19:
Cho mng gm N my tnh. Bit gia hai may tnh u c ni vi nhau bng h thng
cable trc tip hoc gin tip thng qua mt s my tnh trung gian. tit kim cable ni,
ngi ta ngh cach loi b i mt s ng cable sao cho ta vn nhn c mt mng my
tnh lin thng. Hy s dng biu din d liu v thut ton thch hp vit chng trnh b
cac ng cable cho mng may tnh sao cho hai iu kin sau c tha mn:
(iii) S cac ng cable loi b nhiu nht c th c;
(iv) S cac ng cable i vo hoc i ra may tnh th K (1KN) l nhiu
nht.

D liu vo cho bi file mang.in theo khun dng sau:

Dng u tin ghi li hai s t nhin N v K. Hai s c vit cch nhau


bi mt vi khong trng.
N dng k tip ghi li ma trn vung Aij (i, j = 1, 2, ..., N) l biu din cc
tuyn cable ni. Trong , Aij = 1 biu th t my tnh th i v my tnh th
j c ng cable ni trc tip; Aij = 0 biu th t my tnh th i v my tnh
IT
th j khng c ng cable ni trc tip;
Mng my tnh lin thng vi ti thiu cac ng cable ni tm c ghi li
trong file ketqua.out theo khun dng sau:
Dng u tin ghi li s N l s my tnh ca mng v M v s cac ng
T

cable cn li ni cc my tnh;
M dng k tip ghi li mi ng cable ni trc tip t may tnh i n my
tnh j. Gi tr i v j c vit cch nhau mt vi khong trng.
P

V d vi mng may tnh c cho trong file mang.in s cho ta file ketqua.out tng
ng.

mang.in ketqua.out
5 1 5 4
0 1 1 1 1 1 2
1 0 1 0 1 1 3
1 1 0 1 0 1 4
1 0 1 0 1 1 5
1 1 0 1 0

145
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.6.20:
Cho mt mng gm N my tnh. Bit gia hai my tnh bt k u c th truy nhp trc
tip hoc gin tip vi nhau thng qua h thng cable ni gia cc my tnh khc nhau.
Bit di ng cable ni gia my tnh i v my tnh j l C[i][j] mt (i, j =1, 2, .., N).
tit kim ng cable ni gia cac may tnh, ngi ta xy dng phng an loi b i
mt s on cable ni sao cho gia hai my tnh bt k vn c th truy nhp ln nhau.
Yu cu: Hy cho bit s mt cable ni ti a c th tit kim c sau khi thc hin
phng an tit kim cable ni.
Input: Dng u tin ghi s b test, khng ln hn 100. Mi b test c t chc nh
sau:
Dng u tin ghi li N l s my tnh trong mng v M l s cac on cable ni
gia nhng my tnh khc nhau.
M dng k tip, mi dng ghi li b ba i, j, C[i][j] biu din ng cable ni t my
i n my j vi di C[i][j].
Output: Vi mi b test, output a ra mt s duy nht l s mt cable ti a c th tit
kim c.
IT
V d cho Input v Output:
INPUT OUTPUT
T

2 28
5 6 0
P

1 2 5
1 3 4
2 3 11
2 4 7
3 5 9
4 5 17
5 4
1 2 5
1 3 4
2 4 7
3 5 9

146
BI TP K THUT LP TRNH Vesion 1.0

5.7. Bi ton tm ng i ngn nht


BAI 5.7.1:
Hy v cac ng i ngn nht cho mi nh ca mt th.
BAI 5.7.2:
Tm ng i ngn nht trn th cho bi hnh di:
a) T nh 1 n nh 4 trong hnh 1
b) T nh A n nh H trong hnh 2
c) T nh B n nh F trong hnh 2

2 7 3
3 5
1 2 8 10 4
5
IT
6
6 7 5
T

Hnh 1 Hnh 2
P

BAI 5.7.3:
Cac thut toan tm ng i ngn nht i vi th v hng hc c ng vi
th c hng hay khng? Gii thch ti sao v cho mt v d nu n sai.
BAI 5.7.4:
Cho mt bng cac s t nhin kch thc m x n. T mt c th di chuyn sang
mt k cnh vi n. Hy tm mt cach i t (x,y) ra mt bin sao cho tng cac
s ghi trn cac i qua l nh nht.
BAI 5.7.5:
Cho mt dy s nguyn A = (a1, a2, , an). Hy tm mt dy con gm nhiu nht
cac phn t ca dy cho m tng ca 2 phn t lin tip l s nguyn t.

147
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.7.6:
Mt cng trnh ln c chia lm n cng on. Cng on i phi thc hin mt thi gian
ti. Quan h gia cac cng on c cho bi bng A trong A= { } trong aij= 1
nu cng on j ch c bt u khi m cng on i hon thnh v aij = 0 trong trng
hp ngc li. Mi cng on khi bt u cn thc hin lin tc cho ti khi hon thnh,
hai cng on c lp nhau c th tin hnh song song. Hy b tr lch thc hin cc cng
on sao cho thi gian hon thnh c cng trnh l sm nht, cho bit thi gian sm nht
.
Gi :
Dng th c hng G = (V,E), mi nh tng ng vi mt cng on, nh u c cung
ni ti nh v nu cng on u phi hon thnh trc khi cng on v bt u. Thm vo
G mt nh s v cung ni t s ti tt c cc nh cn li. Gn trng s mi cung (u, v) ca
th bng tv. Nu th c chu trnh, khng th c cch xp lch, nu th khng c chu
trnh (DAG) tm ng i di nht xut pht t s ti tt c cc nh ca th, khi nhn
IT
khong cch d[v] chnh l thi im hon thnh cng on v, ta ch cn xp lch cng
on v c bt u vo thi im d[v] - tv l xong.
T

BAI 5.7.7: BIN LADEN


Trm khng b Bin Laden trn trong 1 cn hm c o su xung mt t M tng, mi
P

tng c N phng. Cac phng c ngn cach bng cc ca rt kh ph. Cc phng c ca


xung phng ngay pha di v 2 phng 2 bn. T trn mt t c N ca xung N phng
tng -1. Bin Laden tng di cng (tng -M) phng th N (phng bn phi nht). Mi
ca c lm bng mt kim loi khc nhau vi dy khc nhau nn vic ph ca cn thi
gian khc nhau.
Bn hy tm cach i t mt t xung phng ca Bin Laden nhanh nht khng hn thot
mt.
D liu:
Dng 1 ghi M v N
Dng 2 n 2M + 1, dng chn ghi N s, dng l ghi N - 1 s l chi ph ph
ca.
Kt qu:

148
BI TP K THUT LP TRNH Vesion 1.0

Ghi ra 1 s l thi gian nh nht n c phng ca Bin Laden


V d
D liu
42
99 10
1
10 99
1
99 10
1
10 99
1
IT
Kt qu
T

44
P

+--99--+--10--+

| | |

| 1 |

| | |

+--10--+--99--+

| | |

| 1 |

| | |

+--99--+--10--+

| | |

| 1 |

| | |

+--10--+--99--+

149
BI TP K THUT LP TRNH Vesion 1.0

| | |

| 1 |

| | |

+------+------+

i theo ng zigzac

Gii hn
1 <= M <= 2222
1 <= N <= 10
Chi ph ca cc cnh ca thuc [0, 1000].

5.8. Bi ton lung cc i trn mng


BAI 5.8.1: IT
Hy a ra mt thut toan gii quyt bi toan dng chy trong mng li trong
trng hp mng li c dng mt cy nh vo xa i nh ch.
BAI 5.8.2:
T

Nhng ng i no c i qua khi tm dng chy ti a trong mng li c c


bng cach thm cac cnh t B n C v t E n D vi trng lng 3.
P

BAI 5.8.3:
Khng nh sau y ng hay sai: khng thut toan no c th tm c dng chy
cc i m khng kim tra mi cnh trong mng li.
BAI 5.8.4:
iu g xy ra i vi thut toan Ford-Fullkerson khi mng li c mt chu trnh c
hng.
BAI 5.8.5:
Tm mt phn v d cho thy ti sao tm kim u tin su khng thch hp i
vi bi toan dng chy trong mng li.

150
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.8.6: BO V
Mt mng li gm N thnh ph, v mt s ng mt chiu ni cc cp thnh ph (gia
hai thnh ph c th c nhiu ng ni mt chiu).
Qun ch ang tp trung thnh ph N, nh tin cng ta thnh ph 1, v chng s tin
cng trn tt c cac con ng cha c bo v tin vo thnh ph 1. B ch huy ta
cn xac nh s qun t nht trn cac con ng chn ch tin v thnh ph 1.
Input
Dng u ghi N (N 5000)
Cc dng tip theo cho n ht file, mi dng mt t 1 ng gm u, v, s cho bit
c on ng mt chiu t u n v, v phi cn t nht s qun chn ch trn
ng ny. (s 65000)
C khng qu 10000 ng.
Output
IT
S qun t nht cn iu ng
Vi d:
T
Input:
10
P

10 7 25050

6 1 12564

10 4 23916

5 1 61054

10 9 50950

9 1 35558

10 2 60941

3 1 22203

8 2 2853

5 7 31422

3 7 41491

8 7 27235

4 8 55965

151
BI TP K THUT LP TRNH Vesion 1.0

8 6 41980

3 6 47707

2 3 45320

3 8 11237

7 6 38734

5 6 7561

3 5 8844

Output:
79169

BAI 5.8.7: H I DIN PHN BIT


(H i in phn bit) Mt lp hc c n bn nam v n bn n. Nhn ngy 8/3, lp c mua
m mn qu cac bn nam tng cac bn n. Mi mn qu c th thuc s thch ca mt
IT
s bn trong lp. Hy lp chng trnh tm cach phn cng tng qu tha mn:
Mi bn nam phi tng qu cho ng mt bn n v mi bn n phi nhn qu ca ng
mt bn nam. Mn qu c tng phi thuc s thch ca c hai ngi.
Mn qu no c mt bn nam chn tng th bn nam khac khng c chn na.
T

Gi :
Xy dng mt mng trong tp nh V gm 3 lp nh S, X v T:
P

Lp nh pht S = (s1,s2,,sn), mi nh tng ng vi mt bn nam.


Lp nh X = (xl, x2,,xn), mi nh tng ng vi mt mn qu.
Lp nh thu T = (t1,t2,,tn), mi nh tng ng vi mt bn n.
Nu bn nam i thch mn qu k, ta cho cung ni t si ti xk, nu bn n j thch mn
qu k, ta cho cung ni t xk ti tj v sc cha ca cc cung t bng 1 v sc cha
ca cc nh v1,v2,,vn cng t bng 1. Tm lung nguyn cc i trn mng G c
n nh pht, n nh thu, ng thi c c rng buc sc cha trn cc nh, nhng
cung c lung 1 s ni gia mt mn qu v ngi tng/nhn tng ng.

152
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.8.8: MNG IN


Cho mng in gm m x n im nm trn mt li m hng, n ct.
Mt s im nm trn bin ca li l ngun in, mt s im trn
li l cac thit b s dng in. Ngi ta ch cho php ni dy in
gia hai im nm cng hng hoc cng ct. Hy tm cach t cac
dy in ni cac thit b s dng in vi ngun in sao cho hai
ng dy bt k ni hai thit b s dng in vi ngun in tng
ng ca chng khng c c im chung.

5.9. th hai pha


BAI 5.9.1:
Tm tt c cac b i sanh nm cnh ca th hai phn nh hnh di:
IT
T

BAI 5.9.2:
P

Tm ra cac b i sanh cc i cho cac th hai phn c 50 nh v 100 cnh. C


khong bao nhiu cnh trong mi b i sanh.
BAI 5.9.3:
Xy dng mt th 2 phn gm 6 nt v 8 cnh m c mt b i sanh 3 cnh.
Nu khng c hy chng minh khng tn ti th nh th.
BAI 5.9.4:
Gi s rng cac nh trong mt th hai phn biu din cac cng vic v con ngi,
mi ngi c giao cho 2 vic. C th dng thut toan dng chy trong mng li
gii bi toan ny hay khng? Chng minh tr li ca bn.

153
BI TP K THUT LP TRNH Vesion 1.0

BAI 5.9.5:
Hy vit mt chng trnh hiu qu xac nh xem mt phng an ca bi toan
hn nhn c bn vng hay khng?
BAI 5.9.6:
C th cho hai chng trai chn c gai cui cng ca danh sach ca mnh trong
thut toan hn nhn bn vng hay khng? Chng minh tr li ca bn.
BAI 5.9.7:
Xy dng mt tp danh sach cac s thch vi N = 4 cho bi toan hn nhn bn vng
trong mi ngi chn c ngi th 2 trong danh sach s thch ca mnh. Hy
chng minh rng khng tn ti tp hp nh th.
BAI 5.9.8:
Cho bit cu hnh bn vng ca bi toan hn nhn bn vng trong trng hp cac
danh sach s thch ca cac chng trai v cac c gai l nh nhau theo th t tng.
IT
BAI 5.9.9:
Vit chng trnh hn nhn bn vng vi N = 50, s dng cac hoan v ngu nhin
cho cac danh sach s thch. C khong bao nhiu cuc hn nhn trong sut qua trnh
T

thc hin thut toan.?


BAI 5.9.10:
P

C p th v q vic. Mi th cho bit mnh c th lm c nhng vic no, v mi


vic khi giao cho mt th thc hin s c hon thnh xong trong ng 1 n v
thi gian. Ti mt thi im, mi th ch thc hin khng qua mt vic.
Hy phn cng cac th lm cng vic sao cho:
Mi vic ch giao cho ng mt th thc hin.
Thi gian hon thnh tt c cac cng vic l nh nht. Ch l cac th c th
thc hin song song cac cng vic c giao, vic ca ai ngi ny lm, khng
nh hng ti ngi khac.

154
BI TP K THUT LP TRNH Vesion 1.0

VI.Cc k thut sp xp v tm kim


6.1. Cc phng php sp xp c bn
BAI 6.1.1:
Cho mt dy s nguyn dng: 6, 8, 12, 9, 2, 2, 98, 23, 23. Hy m phng sp xp
tng dn bng cac thut toan: sp xp chn, sp xp chn, sp xp ni bt, sp xp
Shellsort.
BAI 6.1.2:
Cho dy n s nguyn a[0], a[1],, a[n-1] c sp xp tng dn v mt s
nguyn x.
a. Hy vit hm tm kim nh phn kim tra xem x c thuc dy s trn hay khng?
Nu tm thy tr v gi tr i nh nht m a[i] = x, nu khng tr v gi tr -1.
b.Cho dy n = 8 s nguyn nh sau:
1 2 4 4 4 9 10 15
IT
Nu x = 4 th phng phap tm kim nh phn cho ra kt qu g ?
c.Cho bit k s phn t ln nht ca dy.
T

V d vi n = 12
P

9 6 2 7 9 9 6 5 7 9 6 7
Nu k = 5 th kt qu l 9, 9, 9, 9, 7
BAI 6.1.3:
Cho mng 1 chiu n phn t. Sp xp cc s nguyn t tng dn, cc s khc
gi nguyn gi tr v v tr.
BAI 6.1.4:
Cho mng vung n. Hy tm phn t ln nht trn mi ng cho song
song vi ng cho chnh.
BAI 6.1.5:
Cho ma trn 2 chiu m dng, n ct.. Hy sp tng dn cc phn t theo chiu
t tri qua phi v t trn xung di.

155
BI TP K THUT LP TRNH Vesion 1.0

BAI 6.1.6:
Sp xp cc phn t trn cac ng cho song song vi ng cho chnh
tng dn.
BAI 6.1.7:
Cho mng mt chiu gm n phn t l cc s nguyn. Sp xp cc s chn trong
mng theo th t tng, sp xp cc s l theo th t gim dn, cc s 0 gi nguyn
v tr..
BAI 6.1.8:
Cho mng mt chiu gm n phn t l cc s nguyn. Tm k gi tr ln nht khc
nhau ca mng
BAI 6.1.9:
Cho mng mt chiu gm n phn t l cc s nguyn.
IT
a. Ch gi li mt gi tr trong s cc gi tr ging nhau.
b. Sp xp cc s chn trong mng theo th t tng, sp xp cc s l theo th t
gim dn, cc s 0 gi nguyn v tr.
T

BAI 6.1.10:
Cho tp tin vn bn songuyen.inp cha cc s nguyn. Hy ghi cc s
P

nguyn t trong tp tin songuyen.inp vo tp tin nguyento.out theo th t tng dn


mi dng ghi 10 s, cc s cch nhau t nht mt khong cch.
BAI 6.1.11:
Cho 2 file s nguyn c sp tng dn. Hy trn 2 file c mt file cng c
sp tng dn (khng dng mng).
BAI 6.1.12:
Trong 3 phng phap sp xp c bn l phng phap chn, chn v ni bt th
phng phap no l nhanh nht i vi mt tp tin c sp ri?
BAI 6.1.13:
Trong 3 phng phap sp xp c bn l phng phap chn, chn v ni bt th
phng phap no l nhanh nht i vi mt tp tin c sp th t o ngc?

156
BI TP K THUT LP TRNH Vesion 1.0

BAI 6.1.14:
Hy kim chng 2 cu hi trn bng lp trnh vi dy s nguyn.
BAI 6.1.15:
Hy a ra mt l do hp l ti sao khng thun tin khi dng mt kha cm canh
(ng gac) cho phng phap sp xp chn (tr phng phap phat sinh t ci t ca
Shellsort).
BAI 6.1.16:
C bao nhiu php so sanh c dng bi Shellsort vi sp-7, ri sp-3 vi cac kha
E A S Y Q U E S T I O N?
BAI 6.1.17:
Hy cho mt v d minh ha ti sao 8, 4, 2, 1 s khng l mt cach tt kt thc
mt dy tng ca Shellsort.
BAI 6.1.18:
IT
Phng phap sp xp chn c n nh khng? Tng t i vi chn v ni bt?
BAI 6.1.19:
T

Hy th nghim vi cac dy tng khac nhau cho Shellsort, tm mt dy m n chy


nhanh hn dy c cho bi mt tp tin ngu nhin gm 1000 phn t.
P

BAI 6.1.20: SP XP 2
Cho mt danh sch cha c cc s v cc t. Yu cu bn hy sp xp danh sach ny tng
dn sao cho cc t theo th t t in, cc s theo th t s. Hn na, nu phn t th n l
s th danh sch sau khi sp xp phn t th n cng phi l s, nu l t th vn l t.
Lu : Cac t ch gm cc ch in thung trong bng ch ci ting Anh.
Input
Gm nhiu dng, mi dng l mt danh sch. Mi phn t ca danh sch cch nhau
bi du phy (,) theo sau l du cach, v danh sach c kt thc bng du chm
(.).
D liu kt thc bi dng ch cha mt du chm.
Output

157
BI TP K THUT LP TRNH Vesion 1.0

Vi mi danh sch trong d liu, xut ra danh sch sp xp tha mn yu cu


bi (c nh dng nh trong d liu).
Vi d:
Input:
0.
banana, strawberry, orange.
banana, strawberry, orange.
10, 8, 6, 4, 2, 0.
x, 30, -20, z, 1000, 1, y.
50, 7, kitten, puppy, 2, orangutan, 52, -100, bird, worm, 7, beetle.
Output:
0.
banana, orange, strawberry.
IT
banana, orange, strawberry.
0, 2, 4, 6, 8, 10.
T
x, -20, 1, y, 30, 1000, z.
-100, 2, beetle, bird, 7, kitten, 7, 50, orangutan, puppy, 52, worm.
P

BAI 6.1.21: CHNG KHON


Cho trc lch s giao dch ca mt m chng khon trong n ngy. Hy xac nh k1 ngy
c gi thp nht v k2 ngy c gi cao nht.
Input
Mi b test gm 2 dng
Dng 1 ghi 3 s n, k1, k2 vi n<=106. k1+k2<=n v k1,k2<=100.
Dng tip theo ghi n s nguyn theo th t l gi ca m chng khon trong n
ngy lin tip.
B test cui cng cha 3 s 0
Output

158
BI TP K THUT LP TRNH Vesion 1.0

Vi mi b test, ghi ra mn hnh 3 dng gm:


Dng 1 ghi s th t b test
Dng 2 ghi k1 ngy c gi thp nht theo th t cac ngy tng dn. Nu c nhiu
danh sch cho kt qu ging nhau th chn danh sch thp nht theo th t t
in.
Dng 3 ghi k2 ngy c gi cao nht theo th t cc ngy gim dn. Nu c nhiu
danh sch cho kt qu ging nhau th chn danh sch cao nht theo th t t
in.
Vi d:
Input:
10 3 2
1 2 3 4 5 6 7 8 9 10
10 3 2 IT
10 9 8 7 6 5 4 3 2 10 0 0

Output:
T

Case 1
123
P

10 9
Case 2
8 9 102 1

BAI 6.1.22: CHY UA MARATHON


John cho cc con b ca mnh chy ua marathon! Thi gian b N (1 <= N <= 5,000) v
ch c biu din theo dng S gi (0 <= S gi <= 99), S pht (0 <= S pht <= 59),
v s giy (0 <= S giy <= 59). xac nh nh v ch, John phi sp xp cc thi gian
(theo s gi, s pht, v s giy) theo th t tng dn, thi gian t nht xp u tin.
V d: Vi 3 thi gian nh sau:
11:20:20

159
BI TP K THUT LP TRNH Vesion 1.0

11:15:12
14:20:14
Kt qu sau khi sp xp l:
11:15:12
11:20:20
14:20:14
INPUT FORMAT:
* Line 1: 1 s nguyn: N
* Lines 2..N+1: Dng i+1 cha thi gian b i c m t bi 3 s nguyn cch bi
du cch : S Gi , S Pht, S giy.
OUTPUT FORMAT:
* Dng 1..N: Mi dng cha thi gian ca 1 con b l 3 s nguyn cch nhau bi
du cach sau khi sp xp.
IT
SAMPLE INPUT:
3
T

11 20 20
P

11 15 12
14 20 14
SAMPLE OUTPUT:
11 15 12
11 20 20
14 20 14

BAI 6.1.23: REPLACING DIGITS


Cho s nguyn dng a c N ch s v s dy s c M ch s. Ch s v tr j (1<=j<=M)
ca dy s c th chn bt k v tr i (1<=i<=N) trong s a v thay th bng sj. Mi ch s
ca dy s ch c thay th khng qu mt ln.

160
BI TP K THUT LP TRNH Vesion 1.0

Nhim v ca bn l hy tm cch thay sao cho s a t gi tr ln nht. Bn c th khng


cn s dng tt c cc ch s trong s.
Input
Dng u cha s nguyn dng a c di N (khng bt u bng ch s 0).
Dng 2 cha dy s c di M
(1N,M105)
Output
S a ln nht c th thay th c.
Vi d:
Input:
1024
010
IT
Output:
1124
T
Input:
987
P

1234567
Output:
987

6.2. Quicksort
BAI 6.2.1:
Hy v cy phn hoch qui ca thut ton Quick-Sort trong trng hp xu nht.
T , chng t rng chi ph thut ton Quick-sort trong trng hp ny l O(n2).

161
BI TP K THUT LP TRNH Vesion 1.0

BAI 6.2.2:
Ci t mt thut toan Quicksort quy vi s ct xn bt php sp xp chn cho
cac tp tin con c t hn M phn t v xac inh theo kinh nghim gia tr ca M m
n s chy nhanh nht trn mt tp tin c 1000 phn t.
BAI 6.2.3:
Gii bi toan trn i bng kh quy.
BAI 6.2.4:
Gii bi toan trn c b sung php chn phn t gia ca 3 phn t.
BAI 6.2.5:
Quicksort s thc hin bao lu sp mt tp tin gm N phn t bng nhau?
BAI 6.2.6:
S ln ti a m phn t ln nht c th c di chuyn trong lc thi hnh Quicksort
IT
l bao nhiu?
BAI 6.2.7:
Hy ch ra lm th no tp tin A B A B A B A c phn hoch, s dng cac phng
T

phap hc?
BAI 6.2.8:
P

Quicksort dng bao nhiu php so sanh sp xp cac kha E A S Y Q U E S T I


O N?
BAI 6.2.9:
Cn bao nhiu kha cm canh nu phng phap sp xp chn c gi mt cach
trc tip t Quicksort?
BAI 6.2.10:
C hp l khng khi dng mt hng i thay v mt ngn xp cho mt bn ci t
khng quy ca Quicksort? Ti sao c v ti sao khng?

162
BI TP K THUT LP TRNH Vesion 1.0

BAI 6.2.11:
Vit mt chng trnh t chc li mt tp tin sao cho tt c cac phn t vi cac
kha bng vi gia tr trung bnh th nm ti ch, vi cac phn t nh hn th nm
bn trai v cac phn t ln hn th nm bn phi.

6.3. Heapsort
BAI 6.3.1:
Hy cho bit s phn t ti thiu v ti a trong mt heap c chiu cao h ?
BAI 6.3.2:
V heap c c khi cac thao tac sau thc hin trn mt heap rn ban u: insert(10),
insert(5), insert(2), replace(4), insert(6), insert(8), remove, insert(7), insert(3).
BAI 6.3.3: IT
Mt tp tin sp theo th t ngc c phi l mt heap khng?
BAI 6.3.4:
Hy cho heap c to bi vic ap dng lin tip php chn trn cac kha E A S Y
T

Q U E S T I O N.
BAI 6.3.5:
P

Cac v tr no c th b chim bi kha nh th ba trong mt heap kch thc 32.


BAI 6.3.6:
Ti sao khng dng mt bin cm canh tranh php kim tra j < N trong
downheap?
BAI 6.3.7:
Hy minh ha lm th no nhn c cac hm ca ngn xp v hng i chun
nh l trng hp c bit ca cac hng i c u tin.
BAI 6.3.8:
S kha ti thiu phi c di chuyn trong mt thao tac hy cai ln nht: trong 1
heap l bao nhiu? Hy v 1 heap c kch thc 15 m s ti thiu t c.

163
BI TP K THUT LP TRNH Vesion 1.0

BAI 6.3.9:
Vit mt chng trnh xa phn t v tr th k trong 1 heap.
BAI 6.3.10:
Hy so sanh theo kinh nghim, vic xy dng heap t di ln vi vic xy dng
heap t trn xung, bng cach no to cac heap vi 1000 kha ngu nhin.

6.4. Mergesort
BAI 6.4.1:
Vit chng trnh cho phng phap sp xp trn (Merge sort) quy bng cach ct
xn bt phng phap sp xp chn cho cac tp tin con nh hn M phn t; hy xac
nh theo kinh nghim gia tr ca M n chy nhanh nht trn mt tp tin ngu
nhin gm 1000 phn t. IT
BAI 6.4.2:
So sanh theo kinh nghim sp xp trn quy v khng quy cho cac xu lin kt
v N = 1000.
T

BAI 6.4.3:
Ci t php sp xp trn quy cho mt mng gm N s nguyn, s dng mt
P

mng ph tr c kch thc nh hn N/2.


BAI 6.4.4:
Phat biu thi gian chy ca sp xp trn khng ph thuc vo gia tr ca cac kha
trong tp tin nhp l ng hay sai? Hy gii thch cu tr li ca bn.
BAI 6.4.5:
S bc ti thiu m sp xp trn c th dng l bao nhiu?
BAI 6.4.6:
Hy ch ra cac php trn c thc hin khi dng quy sp xp cac kha E A
S Y Q U E S T I O N.

164
BI TP K THUT LP TRNH Vesion 1.0

BAI 6.4.7:
Hy cho bit ni dung ca xu lin kt mi bc lp khi dng sp xp trn khng
quy sp xp cac kha E A S Y Q U E S T I O N.
BAI 6.4.8:
Hy th nghim mt php sp xp trn quy, s dng mng, ly tng thc hin
cac php trn 3-way thay v 2-way

6.5. Sp xp bng c s
BAI 6.5.1:
So sanh s hoan v c dng bi sp xp hoan v c s vi s hoan v c dng
bi Quicksort cho tp tin gm cac kha 001, 011, 101, 110, 000, 001,010,111, 110,
010. IT
BAI 6.5.2:
Ti sao li khng quan trng khi kh quy t phng phap sp xp hoan v c s
nh l i vi Quicksort.
T

BAI 6.5.3:
Hy sa i phng phap sp xp hoan v c s nhy qua cac bit dn u ging
P

nhau trn tt c cac kha. Trong nhng trng hp no th iu ny tr nn phung


ph v ch?
BAI 6.5.4:
iu sau y ng hay sai: thi gian thc hin ca phng phap sp xp c s trc
tip khng ph thuc vo th t cac kha trong tp tin nhp. Hy gii thch cu tr
li ca bn.
BAI 6.5.5:
Phng phap no s nhanh hn i vi tp tin gm cac kha bng nhau: sp xp
hoan v c s hay sp xp c s trc tip?

165
BI TP K THUT LP TRNH Vesion 1.0

BAI 6.5.6:
iu sau y ng hay sai: c hai phng phap sp xp hoan v c s v sp xp c
s trc tip s kim tra tt c cac bit ca tt c cac kha trong tp tin. Hy gii thch
cu tr li ca bn.
BAI 6.5.7:
Tr yu cu v b nh b sung, hy cho bit bt tin chnh ca chin lc thc hin
php sp c s trc tip trn cac biti u ca cac kha, ri tip tc bng phng
phap chn sau .
BAI 6.5.8:
Cn dng bao nhiu b nh thc hin mt php sp c s trc tip 4-ng ca
N kha b-bit?
BAI 6.5.9:
Kiu no ca tp tin nhp s khin cho php sp hoan v c s chy chm nht (N
rt ln)?
IT
BAI 6.5.10:
Hy so sanh theo kinh nghim php sp xp c s trc tip vi php sp hoan v c
T

s i vi mt tp tin gm 1000 kha 32-bit.


P

6.6. Cc phng php tm kim c bn


BAI 6.6.1:
Ci t mt thut toan tm kim tun t m i hi trung bnh khong N/2 bc cho
c hai trng hp tm kim thnh cng v khng thnh cng, thut toan ny lu cac
mu tin trong mt mng c sp xp.
BAI 6.6.2:
Hy a ra mt ci t quy ca thut toan tm kim nh phn.
Gi s a[i] = 2i vi 1<= i <= N. C bao nhiu v tr trong bng c kim tra khi
dng tm kim ni suy trong trng hp tm kim khng thnh cng cho 2k 1?

166
BI TP K THUT LP TRNH Vesion 1.0

BAI 6.6.3: THAY TH T


Hai file INPUT1.TXT v INPUT2.TXT c cho nh sau: File INPUT1.TXT cha
mt on vn bn bt k. File INPUT2.TXT cha khng qu 50 dng, mi dng gm hai
t: t u l t ch v t sau l t ngun. Hy tm trong file INPUT1.TXT tt c cc t l
t ch v thay th chng bng cc t ngun tng ng. Kt qu ghi vo file KQ.OUT (s
l mt on vn bn tng t nh trong file INPUT1.TXT nhng c thay th t ch
bi t ngun).
Vi d:
Input:
File INPUT1.TXT cha on vn bn sau:
Nam moi sap den roi, ban co vui khong?
Chuc cac ban don mot cai Tet that vui ve va hanh phuc.
IT
Chuc ban luon hoc gioi!
File INPUT2.TXT cha cac dng sau:
T
ban em
zui vui
P

Output:
File KQ.OUT s cha on vn bn sau:
Nam moi sap den roi, em co vui khong?
Chuc cac em don mot cai Tet that vui ve va hanh phuc.
Chuc em luon hoc gioi!

BAI 6.6.4: DY S NGUYN


Dy cac s t nhin c vit ra thnh mt dy v hn trn ng thng:
1234567891011121314..... (1)
Hi s v tr th 1000 trong dy trn l s no?

167
BI TP K THUT LP TRNH Vesion 1.0

Hy lm bi ny theo hai cach: Cach 1 dng suy lun logic v cach 2 vit chng
trnh tnh toan v so sanh hai kt qu vi nhau.
Tng quat bi toan trn: Chng trnh yu cu nhp s K t bn phm v in ra trn mn
hnh kt qu l s nm v tr th K trong dy (1) trn. Yu cu chng trnh chy cng
nhanh cng tt.

BAI 6.6.5: BIRTHDATES


Vit chng trnh tm ngi tr nht v gi nht trong lp.
Input
Dng 1 cha s n (1<=n<=100), s ngi trong lp.
N dng sau, mi dng l thng tin 1 ngi c dng:
personName dd mm yyyy IT
Trong : personName l tn khng qua 15 ch cai, dd,mm,yyyy ln lt l ngy,
thang, v nm sinh.
Output
T

Dng 1: tn ngi tr nht


Dng 2: tn ngi gi nht
P

Vi d:
Input:
5
Garfield 20 9 1990
5
Mickey 1 10 1991
Alice 30 12 1990
Tom 15 8 1993
Jerry 18 9 1990
Garfield 20 9 1990

168
BI TP K THUT LP TRNH Vesion 1.0

Output:
Tom
Jerry

6.7. Php bm
BAI 6.7.1:
M t lm th no ci t mt hm bm bng cach dng mt b phat sinh s ngu
nhin tt. C ngha hay khng nu ci t mt b phat sinh ngu nhin bng cach
dng mt hm bm?
BAI 6.7.2:
IT
Lng gia trng hp xu nht khi chn N kha vo mt bng c khi to trng
bng cach dng xch ngn cach vi cac danh sach khng th t.
BAI 6.7.3:
T

Cho bit ni dung ca bng bm c c khi chn cac kha E A S Y Q U E S T I O


N theo th t vo mt bng c khi to trng kch thc bng 13 bng phng
P

phap d tuyn tnh.


BAI 6.7.4:
Cho bit ni dung ca bng bm c c khi chn cac kha E A S Y Q U E S T I O
N theo th t vo mt bng c khi to trng kch thc bng 13 bng phng
phap bm kp. (Trong h1(k) ly t cu hi trc, h2(k) = 1 + (k mod 11).)
BAI 6.7.5:
Cn khong bao nhiu ln d khi dng phng phap bm kp xy dng mt bng
vi N kha bng nhau?
BAI 6.7.6:
Nn dng phng phap bm no cho mt ng dng m c nhiu trng hp kha
trng nhau?

169
BI TP K THUT LP TRNH Vesion 1.0

BAI 6.7.7:
Gi s rng cho bit trc s phn t s c t vo bng bm. Vi nhng iu
kin no th phng phap xch ngn cach thch hp hn phng phap bm kp?
BAI 6.7.8:
Gi s mt lp trnh vin c mt li trong chng trnh dng phng phap bm kp
m mt trong cac hm lun tr v cng mt gia tr (khac 0). M t iu g s xy ra
trong mi tnh hung (khi hm th nht b sai v khi hm th hai b sai).
BAI 6.7.9:
Nn dng hm bm no nu bit trc rng cac gia tr kha ri vo mt phm vi
tng i nh.
BAI 6.7.10:
Ph bnh thut toan sau y, thut toan ny nhm mc ch xa kha khi mt bng
bm c xy dng bng phng phap d tuyn tnh. Qut qua phi k t phn t
IT
c xa ra mt v tr trng, k n qut trai tm mt phn t c cng gia tr
bm, sau cng thay th phn t c xa bi phn t va tm c.
T

6.8. Tm kim da vo c s
BAI 6.8.1:
P

V cy tm kim s hc c c khi chn cac kha E A S Y Q U E S T I O N theo


th t vo mt cy c khi to trng.
BAI 6.8.2:
Phat sinh mt cy tm kim s hc 1000 nt v so sanh cao v s nt mi tng
ca n vi cy tm kim nh phn chun v cy tm kim en c xy dng t
cng mt tp kha.
BAI 6.8.3:
Hy tm mt tp hp 12 kha m chng to nn mt cy tm kim s hc cn bng
yu.

170
BI TP K THUT LP TRNH Vesion 1.0

BAI 6.8.4:
V cy tm kim c s c c khi chn cac kha E A S Y Q U E S T I O N theo
th t vo mt cy c khi to trng.
BAI 6.8.5:
Mt vn xy ra i vi cac cy tm kim s hc 26-hng (way) l mt s k t
trong bng ch cai th li c s dng rt thng xuyn. Hy ngh mt phng
phap gii quyt vn ny.
BAI 6.8.6:
M t phng phap xa mt phn t khi cy tm kim c s a hng.
BAI 6.8.7:
V cy Patricia c c khi chn cac kha E A S Y Q U E S T I O N theo th t
vo mt cy c khi to trng.
BAI 6.8.8:
IT
Hy tm mt tp hp 12 kha m chng to nn mt cy Patricia cn bng yu.
BAI 6.8.9:
T

Vit chng trnh in ra tt c cac kha trong cy Patricia m c t bit khi u ging
vi mt kha tm kim cho.
P

BAI 6.8.10:
Trong cac phng phap c s th phng phap no thch hp vit chng trnh
in ra cac kha theo th t? Phng phap no khng thch hp?

171
BI TP K THUT LP TRNH Vesion 1.0

TAI LIU THAM KHAO

1. L Minh Hong. Gii thut va lp trinh, i hc S phm H Ni, 2010.


2. Robert Sedgewick. Algorithms 2nd edition, ISBN: 0201066734, Addison Wesley,
1988.
3. PTIT Online Judge. http://www.spoj.com/PTIT/

IT
T
P

172

You might also like