Professional Documents
Culture Documents
Vinh 9-2009
Mt s vn ng ch trong mn tin hc
LI NI U
Vi mong mun tng hp nhng thut ton hay, cc cch gii c o trong qu
trnh hc tp ngn ng lp trnh Pascal. Nhm tc gi
Phan Cng Minh : Hc sinh chuyn Tin A2K35
H S Vit Anh , Ng Vn Hong , Bi Minh Tr v Nguyn Cnh Ton Hc sinh
chuyn Tin kha 36
vit cun ti liu Mt s vn ng ch trong mn tin hc.
Trong phm vi ni dung ca ti liu ny khng cp n cc kin thc, thut ton
c bn m tp trung vo cc k thut, thut ton m rng cng nh cch kp hp, ng
dng chng gii quyt cc bi ton tin, c bit l cc dng bi thng gp trong cc
k thi.
Hi vng cun ti liu ny c th gip ch cho bn c, nht l cc bn hc sinh
trong i tuyn trong vic hc tp , bi dng Tin hc. Rt mong nhn c s ng gp
ca cc bn cun ti liu hon thin hn.
Thay mt nhm tc gi:
Phan Cng Minh
Email: congminh91@yahoo.com
MC LC
Li ni u
Duyt nhnh cn
Duyt u tin
Tm kim chui
X l bit
Quy hoch ng trng thi
Quy hoch ng v tr cu hnh
Quy hoch ng trn cy
Sp xp topo v ng dng
Pht hin chu trnh
Chu trnh Euler
Chu trnh m v ng dng
T mu th
Thut tan Ford Bellman kt hp Queue vng
Thut ton Dijtra vi cc nh o
Mt s ng dng thut ton Dijtra
Lung Mincost
Cc cng thc hnh hc
Mt dng bi Quy hoch ng
Trie Tree v ng dng
Duyt bng cch chia i tp hp
Mt s bi ton v cy khung
Tm kim nh phn v ng dng
Xp lch cng vic
X l s nguyn ln v Hm Mod
Heap v ng dng
Interval Tree
Binary Index Tree
Cc li trong Pascal
Kinh nghim thi c
2
3
8
12
15
21
26
35
44
49
53
56
71
81
84
92
99
104
107
117
123
127
133
137
167
173
181
190
Mt s vn ng ch trong mn tin hc
Mt s vn ng ch trong mn tin hc
Trong :
-
k*Ai <= w
s(i) + k*Ci + (w - k*Ai)*Ti+1 > smax
w l trng lng m valy c th cha thm sau bc duyt loi vt i-1
s(i) l tng gi tr hin ang c ca valy sau bc duyt loi vt i-1
smax l tng gi tr valy ca mt cc xp tm c nhng cha ti u. C
th khi to smax ban u bng 0.
Bi ton:
Xu ABC.
Tm mt xu ch gm cc k t A,B,C sao cho
- C di N cho trc (N<=100)
- Hai an con bt k lin nhau u khc nhau (on con l mt dy cc k t
lin tip ca xu).
- C t k t C nht
Gi : Ta c nhn xt trong 4 k t lin tip lun c t nht mt k t C.
Do iu kin nhnh cn ti bc duyt k t i ca xu l
- xu c i k t to c khng c 2 on con lin tip trng nhau.
- s(i) + (n-i) div 4 < smin
Trong
- s(i) l s k t C dng to xu i k t
- smin l s k t C ca mt xu khc tha mn 2 yu cu u ca bi nhng
cha ti u. C th khi to smin ban u l mt s ln.
Luyn tp:
Bi ton:
Tour du lch r nht (TOUR)
Mt khu thng cnh gm n im nh s t 1 ti n (n 100) v m ng i hai
chiu gia cc cp a im , chi ph i trn cc ng i l bit trc ( 10000).
Mt Tour du lch l mt hnh trnh xut pht t mt a im i thm 2 a im khc
v quay tr v im xut pht, ngoi tr a im xut pht, khng a im no b thm
ti hai ln. Chi ph ca mt Tour du lch l tng chi ph cc qung ng i qua.
Yu cu: Hy tm Tour du lch c chi ph r nht.
D liu: TOUR.INP
Dng 1: Ghi hai s nguyn dng n, m
m dng tip theo mi dng c dng x y c. Cho bit c ng i trc tip ni a
im x vi a im y v chi ph i qung ng l c.
Kt qu: TOUR.OUT
Dng 1: Ghi s 1 nu nh tn ti hnh trnh theo yu cu, ghi s 0 nu khng tn
ti hnh trnh.
Nu dng u tin ghi s 1:
Dng th 2 ghi chi ph ca tour tm c
Dng th 3 ghi s k l s a im ti thm
4
Mt s vn ng ch trong mn tin hc
Bi ton:
TOUR.OUT
1
10
5
35241
1
9
10
2
2
2
2
8
10
Mt s vn ng ch trong mn tin hc
QBROBOT.OUT
3
Mt s vn ng ch trong mn tin hc
ROADS.OUT
11
-1
Bi ton:
Romeo and Juliet
Romeo v Juliet b giam trong mt m cung hnh ch nht kch thc MxN
vung. M cung c hai loi : t do v cm. Trong qu trnh i trong m cung, ti mi
bc ta ch c th di chuyn n t do k cnh theo mt trong bn hng: ng (E), Ty
(W), Nam (S), Bc (N).
Ban u, Romeo ti [1,1] v Juliet ti [M,N]. thot khi m cung,
Romeo cn di chuyn n [X,Y] v Juliet cn di chuyn ti [Z,T].
cu cp tnh nhn, Shakepeare a cho bn mt cm mang l xu D ch gm
cc k t E, W, N, S th hin mt lot cc bc di chuyn v cho bit c th chn cho mi
ngi mt s bc di chuyn theo th t cho trong dy, mi bc di chuyn ch c
mt ngi chn v mi bc di chuyn trong dy u phi c chn th mi ngi mi c
th i n ch ca mnh. Yu cu bn hy chn cho mi ngi dy bc di chuyn
thch hp. Nu c nhiu li gii ch cn a ra mt li gii.
Mt s vn ng ch trong mn tin hc
0 0 1 0 0
0 0 0 1 1
0 0 0 0 0
1 0 0 0 0
0 1 0 0 0
V d vi m cung nh bng bn k hiu 1 l cm, 0 l t do, Romeo cn n
[2,2], Juliet cn n [2,2], Juliet cn n [4,4] v xu D l SNEEWW th vic chn
cc bc di chuyn ca hai ngi c th vit di dng cc xu ch gm 2 k t R v J:
RJRRJR; c ngha l Romeo thc hin 4 bc di chuyn Nam (S), ng (E), ng (E),
Ty (W), cn Juliet thc hin 2 bc di chuyn Bc (N), Ty (W). Mt li gii khc cho
bi xu RJRRRJ.
D liu: ROJU.INP
Dng th nht ghi hai s M, N (3<=M<=20, 3<=N<=60).
Tip theo l M dng, dng th i trong M dng ny ghi N s 0 hoc s 1 th hin
tnh trng ca cc dng th I.
Tip theo l mt dng ghi 4 s X, Y, Z, T
Dng tip theo ghi s nguyn dng K (3<=K<=200) l di xu D.
Dng cui cng ghi t u dng xu D.
Kt qu: ROJU.OUT
Ghi ra t u dng mt xu C di K ch gm cc k t R v J th hin s la
chn cc bc di chuyn ca hai ngi. Ni r hn, nu k t th U ca xu C l
R/J c ngha l Romeo/Juliet chn bc di chuyn th U trong xu D.
Mt s vn ng ch trong mn tin hc
VN : DUT U TIN
Duyt l mt phng php kh mnh gii quyt phn ln cc bi tan tin hc.
Mt s bi c kch thc d liu ln i hi phi c th t u tin cc php duyt
nhanh chng tm ra kt qu. Di y ta xt mt s bi tan in hnh nh vy.
Bi ton:
M i tun
Cho bn c tng qut nxn v mt qun m (n 100). Hy ch ra mt hnh trnh ca
M xut pht t (x,y), i qua tt c cc cn li ca bn c, mi ng mt ln (lut i
ca m nh lut c vua).
Gi : Nu xem mi ca bn c l mt nh ca th th bi ton ny tng ng vi bi
ton tm ng i Haminton (ng i qua tt c cc nh v qua mi nh ng mt ln).
Thut ton duy nht cho bi ton ny l duyt quy quay lui.
Ti mi bc duyt,Gi s ta ang nh u, t nh u ta u tin i sang nh v c
cnh ni vi u m bc ca v l nh nht (nh ngha bc ca mt nh v l s nh ni vi
nh v m cha c thm).
A B C
D E F G H
1
2
3
4
5
6
7
8
Xt v d trn hnh, con m ang i c 4 bc v ang (7,G). T ny
con m c th nhy n 1 trong 3 tip theo l (6,E) - c bc l 6; (5,F) - c bc l 7;
hoc (5,H) - c bc l 3. Con m s u tin nhy c bc nh hn trc - l (5,H).
S u tin trong phng php duyt trn gip chng trnh chy nhanh hn rt
nhiu so vi khi duyt n thun. Tuy nhin vi trng hp bi ton v nghim (khng
c ng i Haminton) th chng trnh cng chy rt lu v phi duyt qua ht ton b
khng gian d liu. Do cn dng thm bin chn thi gian x l trng hp ny.
Bi ton:
Cp im gn nht
Trn mp phng to cho N im phn bit (N20000). Tm 2 im m khong
cch gia chng l ngn nht.
Gi : Nu duyt thng thng, thut ton mt O(N2) v chy rt lu vi N ln. S u tin
trong php duyt sau y gip thut ton chy trong thi gian cho php v cho kt qu
chnh xc vi phn ln cc test.
9
Mt s vn ng ch trong mn tin hc
i= 1
i= 1
x = xi , y = yi
10
Mt s vn ng ch trong mn tin hc
D liu: SUMVEC.INP
Dng u tin cha s nguyn n ( 2 n 15000)
n dng tip theo m t n vect cho: mi dng cha mt cp to ca mt
vect. Gi thit rng: Cc to l cc s nguyn c tr tuyt i khng qu
30000. Trong s cc vect cho khng c vect no l (0, 0). Cc s trn cng
dng c ghi cch nhau bi du cch.
Kt qu: SUMVEC.OUT
Trng lng ca vect tng ca cc vect trong tp con tm c.
V d:
11
Mt s vn ng ch trong mn tin hc
Luyn tp:
Bi ton:
Phng chy (FIRE)
i ph vi tnh hnh bin ng ca gi xng du, nc X quyt nh xy dng
mt kho d tr du vi quy m cc ln. Kho cha du s bao gm N b cha du hnh
tr trn m ta s biu din trn bn bng N hnh trn, hnh trn th i c ta l (Xi,
Yi) v bn knh Ri, cc hnh trn khng c im chung trong vi nhau (nhng c th tip
xc).
m bo an ton phng chy cha chy, ngi ta cn xc nh 2 b cha du gn
nhau nht tng cng cch ly khi xy ra ha hon.
Bit rng khong cch gia 2 b cha du th i v th j chnh bng khong cch gia
2 ng trn tng ng v bng Dij - Ri - Rj, trong Dij l khong cch Euclide gia 2
im (Xi, Yi) v (Xj, Yj).
Bn hy gip nhng ngi qun l tm ra 2 b cha du ny.
D liu: FIRE.INP
Dng th nht ghi s nguyn dng N l s b cha du.
Dng th i trong N dng tip theo ghi 3 s nguyn Xi, Yi, Ri l ta v bn knh
b cha du th i.
Kt qu: FIRE.OUT
Gm 1 dng duy nht l khong cch ca 2 b cha du b nht tm c.
Gii hn:
2 N 10000.
|Xi|, |Yi| 106.
0 < Ri 106.
Kt qu ghi chnh xc n 4 ch s sau du phy.
V d:
FIRE.INP
3
001
402
553
FIRE.OUT
0.0990
12
Mt s vn ng ch trong mn tin hc
VN : TM KIM CHUI.
Bi ton: Cho chui A c di m, mt chui X c di n. Kim tra xem chui X xut
hin trong chui A ti cc v tr no.
Hng gii quyt:
Cch th nht: Duyt mi v tr i ca chui A, vi mi v tr kim tra chui X c xut hin
v tr ny hay khng. Thut gii c phc tp O(m*n). Mt thut gii tt hn ch mt
O(m+n):
Cch th hai: Thut ton Knuth-Morris-Pratt (KMP).
A
1
i+j-1
v c
13
Mt s vn ng ch trong mn tin hc
procedure Init;
var
j, jj: integer;
begin
j := 1;
jj := 0;
Next[1] := 0;
while (j <= n) do
begin
while (jj > 0)and(X[j] <> X[jj]) do jj := Next[jj];
Inc(j);
Inc(jj);
if X[j] = X[jj] then Next[j] := Next[jj] else Next[j] := jj;
end;
end;
procedure Process;
var
i, j: integer;
Begin
Init
i := 1;
j := 1;
repeat
while (j > 0)and(X[j] <> A[i]) do j := Next[j];
Inc(i);
Inc(j);
if j > n then
begin
Writeln( xuat hien tai ,i - j + 1);
j := Next[j];
end;
until i>m;
End;
Luyn tp:
Bi ton:
Xu con (SUBSTR)
Cho xu A v xu B ch gm cc ch ci thng. Xu B c gi l xut hin ti v tr i
ca xu A nu: A[i] = B[1], A[i+1] = B[2], ..., A[i+length(B)-1] = B[length(B)].
Yu cu: Hy tm tt c cc v tr m B xut hin trong A.
D liu: SUBSTR.INP
Dng 1: xu A
Dng 2: xu B
di A, B khng qu 1000000.
Kt qu: SUBSTR.OUT
Ghi ra cc v tr tm c trn 1 dng (th t tng dn). Nu B khng xut hin
trong A th b trng.
14
Mt s vn ng ch trong mn tin hc
V d:
SUBSTR.INP
aaaaa
aa
SUBSTR.OUT
1234
15
Mt s vn ng ch trong mn tin hc
VN : X L BIT
Nh ta bit, mi s t nhin u c th biu din c di dng nh phn. V
d 13 : 1101
42: 101010
i vi my tnh, cc gi tr s c lu bi cc bin di dng chui nh phn c di
tng ng vi kiu bin .
Trong Pascal, mt s kiu bin ph bin nh :
o Byte: c di 8 bit.
o Integer, Word: c di 2*8 = 16 bit
o Longint: c di 4*8 = 32 bit
Do nu bin x c kiu byte v lu gi tr 13 th dy bit ca bin x l : 00001101
Cc bit ca bin c nh s t phi sang tri bt u t 1. v d trn bit th nht ca x l
1 v bit th 2 ca x l 0
Cc php ton x l bit i vi 2 dy bit x1,x2 s x l ln lt bit th nht ca x1 vi bt
th nht ca x2, bit th 2 ca x1 vi bit th 2 ca x2,, bit th k ca x1 vi bit th k ca x2,
c nh vy cho n ht.
C 4 php x l bit c bn sau y:
16
Mt s vn ng ch trong mn tin hc
u im ca x l bit:
V b nh: i vi ngn ng lp trnh c b nh hn ch nh Turbo Pascal, x l bit c th
c s dng to mng nh du. Vd 1 bin boolean ch nh du c 1 phn t c gi
tr True hay False trong khi nu x l bt th 1 bin boolean tng ng vi 8 bit gi tr 0,1 do
c th nh du cho 8 phn t.
V tc : Cc php x l trn bit c tc nhanh hn nhiu ln so vi cc php x l
khc.
V d:
- Hai php (x div 2) v (x shr 1( l tng ng nhau nhng php (x shr 1) c
tc nhanh hn nhiu ln.
- Dng dy bit nh du True - False c tc x l nhanh hn nhiu so vi
dng mng nh du. Do trong cc bi ton i hi vic thay i trng
thi nh du nhiu ln th ngi ta vn hay dng x l bit ci thin tc
chng trnh.
ng dng ca x l bt qua cc bi ton c th sau:
Bi ton:
Lit k tp hp con
Cho tp hp con N phn t khc nhau, lit k tt c cc tp hp con ca tp N phn t cho
(k c tp rng).
Gi : Xt dy gm N bit. Mi tp con ca tp N phn t u c th biu din bng dy N
bit ny v ngc li mi dy bit c di N u biu din 1 tp con ca tp N phn t. Do
ta c th duyt tt c cc dy bit di N xut ra tp con tng ng.
Mt khc ta c nhn xt tt c cc dy bit di N tng ng vi gi tr 0 cho n
n
2 -1
17
Mt s vn ng ch trong mn tin hc
00000 = 0
00001 = 1
00010 = 2
11110 = 2^n - 2
11111 = 2^n - 1
Cho nn ta c mt thut ton c th sau: Duyt bin x chy t 0 n 2n - 1. Vi mi gi tr x,
xut ra tp con da vo dy bit ca n.
Bi ton:
S c bit(SNUM)
Cho dy N s t nhin c gi tr trong on [0,65535] (N<=1000000). Trong ch c
mt s xut hin 1 ln - gi l s c bit, cc s cn li c s ln xut hin l mt s chn.
Yu cu tm ra s c bit ny.
D liu: SNUM.INP
Dng u tin ghi gi tr N
N dng tip theo, mi dng ghi mt s trong dy N s
Kt qu: SNUM.OUT
S c bit tm c
V d:
SNUM.INP
5
12345
9876
12345
145
9876
SNUM.OUT
145
Gi :
Cch th nht: Xp N s t nhin ny ln N v dn cc s ny v pha bn phi, theo vd trn
ta c bng s:
1 2 3 4 5
9 8 7 6
1 2 3 4 5
1 4 5
9 8 7 6
By gi ta xt theo tng ct ca bng s v b i nhng ch s c s ln xut hin
l mt s chn: Ct 1 b ch s 1, Ct 2 b ch s 2 v 9, Sau khi b, cc ct cn li
ch s c s ln xut hin l mt s l.
1 2 3 4 5
9 8 7 6
1 2 3 4 5
1 4 5
9 8 7 6
18
Mt s vn ng ch trong mn tin hc
Bi ton:
Bn c th (CHESSCBG)
Mt bn c th l mt bng gm 4 dng, 4 ct. Mi th c l mt cch sp xp 8
qun c, hai qun khc nhau hai khc nhau. Bi ton t ra l cho hai th c 1 v 2,
hy tm mt s t nht bc di chuyn qun chuyn t th 1 sang th 2; mt bc di
chuyn qun l mt ln chuyn qun c sang trng k cnh vi qun c ang ng.
D liu: CHESSCBG.INP
Gm 8 dng, mi dng l mt xu nh phn di 4 m s 1/0 tng ng vi v
tr c hoc khng c qun c.
Bn dng u l th c 1
Bn dng sau l th c 2.
Kt qu: CHESSCBG.OUT
Gm 1 dng duy nht l s bc chuyn qun t nht
19
Mt s vn ng ch trong mn tin hc
V d:
CHESSCBG.INP
1111
0000
1110
0010
1010
0101
1010
0101
CHESSCBG.OUT
4
Luyn tp:
Bi ton:
Tm dng c bit(SLINE)
Cho mt tp vn bn c n dng (n<=100000) mi dng c di khng qu 255 k t.
Trong c mt dng ch xut hin mt ln duy nht, cn cc dng cn li c s ln xut
hin l mt s chn.
Yu cu: hy vit chng trnh tm dng c bit .
D liu: SLINE.INP
Ghi cc dng thng tin v kt thc tp bi dng gm 3 k t ###
Kt qu: SLINE.OUT
Ghi ra dng c bit tm c.
V d:
SLINE.INP
-How are you?
-Im fine
-How are you?
-My name is PCM
-Im fine
###
SLINE.OUT
-My name is PCM
Bi ton:
M cung (MECUNG)
Mt m cung hnh ch nht gm M dng v N ct vung, M,N <= 100. Cc dng
(ct) nh s t 1 n M ( t 1 n N) t trn xung (t tri qua phi). Mt robot ng
(X,Y). T mt bt k, robot c th di chuyn n 1 trong 4 k cnh. Mi ca m
cung ng vi 1 s trong phm vi 0..15 vi ngha quy nh nhng hng robot c th di
chuyn n. Mi hng c quy nh bi 1 s hiu: Trn: 1; Di: 2; Phi: 4; Tri: 8.
Gi tr ca bng tng cc s hiu cc hng m robot c th di chuyn n. VD (2,3)
20
Mt s vn ng ch trong mn tin hc
21
Mt s vn ng ch trong mn tin hc
SELECT.OUT
32
22
Mt s vn ng ch trong mn tin hc
H5NX.OUT
6
23
Mt s vn ng ch trong mn tin hc
Bi ton:
Chuyn du lch (TRIP)
Trong k ngh h nm nay sherry c b thng cho 1 tour du lch quanh N t
nc ti p vi nhiu thng cnh ni ting ( v sherry rt ngoan ). Tt nhin sherry s i
bng my bay.
Gi v my bay t t nc i n t nc j l Cij ( d nhin Cij c th khc Cji ).
Tuy c b thng cho nhiu tin i du lch nhng sherry cng mun tm cho mnh 1
hnh trnh vi chi ph r nht c th dnh tin mua qu v tng mi ngi ( Cc
chuyn bay ca sherry u c m bo an ton tuyt i ).
Bn hy gip sherry tm 1 hnh trnh i qua tt c cc nc, mi nc ng 1 ln
sao cho chi ph l b nht nh.
D liu: TRIP.INP
Dng 1: N (5 < N < 16)
Dng th i trong N dng tip theo: Gm N s nguyn, s th j l Cij (0 < Cij <
10001)
Kt qu: TRIP.OUT
Gm 1 dng duy nht ghi chi ph b nht tm c
V d:
TRIP.INP
TRIP.OUT
6
8
0 1 2 1 3 4
5 0 3 2 3 4
4 1 0 2 1 2
4 2 5 0 4 3
2 5 3 5 0 2
543310
Gi : Gi F[i,x] l tng chi ph nu sherry ang t nc i v trng thi cc t nc
i qua c lu vo bin x : gm N bit nh phn 0,1 (bit th k c gi tr bng 1/0 c ngha
i qua t k hay cha). Cng thc Quy hoch ng:
F[i,x] = min( F[i,x] + C[i,i] )
Trong
- i l t nc c nh du i qua trong x.
- x l trng thi ging nh trng thi x nhng t nc i cha c nh du.
Luyn tp:
Bi ton:
n b hn lon(MIXUP)
Mi trong N c b (4 <= N <= 16) ca bc John c mt s seri phn bit S_i (1 <= S_i
<= 25,000). Cc c b t ho n ni mi c u eo mt chic vng vng c khc s seri
ca mnh trn c theo kiu cc bng ng giang h.
Cc c b giang h ny thch ni lon nn ng xp hng ch vt sa theo mt th t
gi c gi l 'hn lon'.
24
Mt s vn ng ch trong mn tin hc
25
Mt s vn ng ch trong mn tin hc
V d:
COWGIRL.INP
1
11
COWGIRL.OUT
2
26
Mt s vn ng ch trong mn tin hc
Mt s vn ng ch trong mn tin hc
for
t:=1 to n do
if k<=f[n-t] then c[t]:=0
else
begin
c[t]:=1;
k:=k - F[n-t];
end;
For i:=1 to n do write(c[i])
Bi ton:
Dy nh phn (NP2)
Mt tp hp S gm cc dy N bit 0, 1 trong khng c hai bit 1 no k nhau. V d
vi N = 5 th S gm cc dy 00000, 00001, 000101,... Tp S c sp xp theo chiu tng
dn ca s nguyn tng ng m dy bit biu din. Cho s N v mt s nguyn M hy cho
bit dy bit th M trong S.
D liu: NP2.INP
Dng duy nht ghi hai gi tr N, M (N 40, M m bo c nghim)
Kt qu: NP2.OUT
Dy N s 0, 1 ghi lin nhau m t dy nh phn tm c.
V d:
NP2.INP
53
NP2.OUT
000101
Gi :
Gi F[i] l s phn t ca tp S ng vi N = i.
- F[i] = F[i-1] + F[i-2]
- F[0] = F[1] = 1
Cch xy dng dy bit th M tng t nh bi trn.
Bi ton:
S hiu hon v (SHHV)
Xt tt c cc hon v ca dy s t nhin (1, 2,..., n) (1 <= n <= 12) Gi
s rng cc hon v c sp xp theo th t t in.
Yu cu:
Cho trc 1 hon v. Tm s hiu ca hon v trong dy sp xp
Cho trc s hiu ca 1 hon v trong dy hon v sp xp. Tm hon v
D liu: SHHV.INP
Dng 1: Cha n s a1, a2, , an ( dy hon v n phn t )
Dng 2: Cha s p ( s hiu ca hon v trong dy hon v n phn t )
Kt qu: SHHV.OUT
Dng 1: Ghi s q ( s hiu ca dy hon v ai )
Dng 2: Ghi n s b1, b2, , bn ( dy hon v c s hiu p )
28
Mt s vn ng ch trong mn tin hc
V d:
SHHV.INP
213
4
SHHV.OUT
3
231
Yu cu 2:
fillchar(fr,sizeof(fr),true);
for i:=1 to n do
begin
for j:=1 to n do
if fr[j] then
if (k>f[n-i]) then dec(k,f[n-i]) else break;
a[i]:=j; fr[j]:=false;
end;
for i:=1 to n do write(fo,a[i],' ');
Luyn tp:
Bi ton:
Lin lc v tr (IMPULSE)
29
Mt s vn ng ch trong mn tin hc
Kt qu: IMPULSE.OUT
Xu bit ng vi s cn pht . B qua cc s 0 trc 1 u tin trong xu ,
tr trng hp s cn pht l 1 th kt qu ra c ghi l 0.
V d:
IMPULSE.INP
IMPULSE.OUT
6
0
1 2 3 4 5 100
1
10
11
100
100000110
Bi ton:
nh s cc tp con (SUBSET)
Gi s A l tp N s nguyn dng u tin, N30. Vi mi tp con B ca A, ta
lun vit cc phn t ca B theo gi tr tng dn: B = {b1, b2, . . ., bK} vi b1< b2< . . .< bK
Ta xp th t cc tp con ca A theo nguyn tc sau: gi s B v C l hai tp con
ca A: B = {b1, b2, . . ., bK}, C = {c1, c2, . . ., cM}, B<C nu c imin(K,M) sao cho
b1=c1, . . .,bi-1=ci-1, v bi<ci hoc bi=ci v K=min(K,M). Trn c s xp th t cc tp con, ta
nh s cc tp con ca A t 1 n 2N, tp rng c nh s 1.
V d vi n = 3, th t cc tp hp l:
1:
2: 1
3: 1 2
4: 1 2 3
5: 1 3
6: 2
7: 2 3
8: 3
Yu cu:
Cho s N v mt s hiu S > 1, tm tp B c s hiu S.
Cho s N v tp C khng trng, tm s hiu ca C.
D liu: SUBSET.INP
Dng u tin ghi 2 s nguyn dng N, S
Dng tip theo ghi N, tip theo l dy K s c1, c2,. . ., cK
Kt qu: SUBSET.OUT
Dng u l ch s cc phn t trong tp B ng vi s hiu S.
Dng th hai ghi s hiu ng vi tp C.
V d:
SUBSET.INP
SUBSET.OUT
38
3
323
7
30
Mt s vn ng ch trong mn tin hc
Bi ton:
Chui ht (NLACE)
Khi tin hnh khai qut kho c mt vng quc xa xa n, cc nh khoa hc khai
qut c rt nhiu chui ht l. Sau khi quan st, cc nh khoa hc thy rng cc chui ht
c mt s c im chung.
Mi chui ht l mt si dy c nh cc ht ngc lm bng mt cht liu c
xa. Cc chui ht u c s lng ht ngc bng nhau. Hn na, mi ht ngc l mt
hnh cu c ng knh l mt s nguyn dng, v nu ln t tri sang phi trn chui
ht, ngi ta thy cc ht ngc c ng knh tng dn. Nu nh s v tr cc ht ngc
bt u t 1, theo th t t tri sang phi, ngi ta nhn thy rng ht ngc th i c
ng knh khng vt qa 2i. Cc nh khoa hc cho rng, dn tc c xa ny hn
lm ra tt c cc chui ht c cng nhng c im ny, d chng hin cn ang ri rc
u trn tri t.
Sau khng lu, cc nh khoa hc tm ra mt mnh da, trn c ghi mt con s
theo loi ch s c xa. H cho rng mnh da ny c lin quan n cc chui ht k l n.
Sau nhiu c gng, cc nh khoa hc a c con s trn mnh da v h ch s thp
phn, v k hiu l X.
Manh mi n y th dng li, v cc nh khoa hc khng tm thy c vt tch
no khc na, v cng khng tm ra c mi quan h gia X v cc chui ht.
n y, mt nh khoa hc ngi Vit ngh, hy th xc nh chui ht c th t t
in l X, bit u y s l manh mi?
Yu cu: Bn hy vit chng trnh gip nh khoa hc xc nh chui ht c th t t
in l X.
D liu: NLACE.INP
Dng 1: cha s nguyn dng N, l s ht ngc trong mi chui ht.
Dng 2: cha s nguyn dng X.
Kt qu: NLACE.OUT
Gm 1 dng duy nht, cha N s nguyn, cch nhau mt khong trng, xc nh
chui ht c th t t in l X ( biu din mt chui ht, cn in ra N s nguyn
tng ng l ng knh ca cc ht ngc trong chui ht, theo th t t tri sang
phi).
Gii hn:
N l s nguyn dng trong phm vi [1, 250].
X l s nguyn dng trong phm vi t 1 n s lng ti a cc chui ht.
V d:
NLACE.INP
NLACE.OUT
2
23
4
Gii thch: cc chui ht sp theo th t t in ln lt l 1 2, 1 3, 1 4, 2 3, 2 4. Chui ht
th 4 l 2 3.
31
Mt s vn ng ch trong mn tin hc
Bi ton:
Th t xu (STRING)
Cc ch ci trong b ch ci ting Anh a..z c nh s t 1 n 26.
Mt xu W= c1 ci-1ci ch gm cc ch ci thng ting Anh khc nhau c gi
l mt t ng nu trong xu , k t cK ng sau k t cK-1 trong b ch ci vi mi
1<Ki.
Vi th t ny ta c th nh s cc t theo nguyn tc sau:
- Xem mi ch ci l mt t di 1 vi s hiu nh trn
- Chia mi t thnh cc nhm W(1), W(2), , W(K) trong W(i) l nhm
gm mi t c di i
- Trong mi nhm, ta xp cc t theo th t t in
- Ln lt nh s lin tip t 1, nhm c di b nh s trc, trong mi
nhm, th t nh s l th t t in
V d v s hiu mt s t: ac - 28; bc - 52; vwxyz - 83681
Cho mt xu S ch gm cc ch ci ting Anh thng. Ni chung S khng l t
nhng ta c th ct S mt cch duy nht thnh mt dy t sao cho khng th ghp hai t k
nhau thnh mt t. Khi ta c th m ha S thnh mt dy s nguyn dng C(S) m cc
s hng ca dy ny tng ng l cc s hiu ca cc t ca dy t nhn c. V d: nu S =
abazvwxyz th C(S) = 27 51 83681
Yu cu:
Cho mt xu S di khng qu 1000, tm dy C(S).
Cho mt dy C(S) l m ha ca mt xu S tha mn iu kin nh yu cu 1,
hy khi phc li t S.
D liu: STRING.INP
Dng th nht ghi t u dng xu S.
Dng th hai ghi dy C(S), hai s lin tip cch nhau t nht mt du trng.
Kt qu: STRING.OUT
Dng th nht ghi dy C(S).
Dng th hai ghi xu S.
V d:
STRING.INP
abazvwxyz
27 51 83681
STRING.OUT
27 51 83681
abazvwxyz
Bi ton:
M vch (BARCODE)
Mt m vch (thng dng ghi gi tr hng ho ) l mt dy cc vch en trng
xen k nhau bt u bng vch en bn tri , mi vch c mt rng tnh bng s
nguyn dng . Hnh sau cho v d v mt m 4 vch tri trn 1+2+3+1 = 7 n v rng:
32
Mt s vn ng ch trong mn tin hc
09: 1100100
10: 1100110
11: 1101000
12: 1101100
13: 1101110
14: 1110010
15: 1110100
16: 1110110
D liu: BARCODE.INP
Dng th nht ghi 3 s n , k , m ( 1n,k,m33) l ba tham s
ca tp m vch
Dng th hai ghi s s (s50)
Trong s dng tip theo ghi mi dng mt xu gm n k t 0 hay 1 l biu nh
phn ca mt m vch thuc tp Mv(n,k,m) .
Kt qu: BARCODE.OUT
S dng , mi dng ghi s hiu ca m vch cho
V d :
BARCODE.INP
7 4 3 16
55
1001110
1110110
1001100
1001110
1000100
BARCODE.OUT
5
16
4
5
1
33
Mt s vn ng ch trong mn tin hc
CATALAN.OUT
12
012321210
34
Mt s vn ng ch trong mn tin hc
0
1
2
3
1
2
Cch i tng ng vi dy 0 1 2 3 2 1 2 1 0 (n = 4)
35
Mt s vn ng ch trong mn tin hc
Input
4
12
23
34
Output
3
Thut Ton : u tin , coi nt 1 l nt gc chng hn ,Thc hin duyt t l v gc ,gi f[i,1] l
di ng i di nht m tp nh ca n l cc nt con ca I ( khng cha nh I ), f[I,2] l di
ng i di nht m trong tp nh ny cha im i.
Input
4
121
231
341
Output
3
Thut ton tng t nh bi trn , ch cn khai bo kt qu kiu int64 .
Bi 5 Nhn ca cy <vn.spoj.pl/problems/ITREE>
Cho th cy c trng s gm N nh , cc nh c nh s t 1 -> N . Gc ca cy l nh 1 .
Cha ca nh u l 1 nh c s hiu nh hn u . Mi nh c mt nhn l 1 s thc A[i] . Trong
nhn ca nh 1 bng 1 v nhn ca nh l bng 0 . Bit rng A[v] A[u] nu v l con ca u .Gi
tr ca 1 cy = Tng ( ( A[u] A[v] ) * Trng s cnh (u,v) , vi u l cha ca v )By gi ngi ta
cho bit cc cnh ca th v trng s ca cc cnh ny nhng khng cho bit cc A[i].Hy tnh
xem gi tr ca cy thp nht l bao nhiu.
Input
Dng 1 l s nguyn T l s b test . ( 1 T 50 ) . T nhm dng tip theo m t tng b test .
Mi b Test s c cu trc nh sau :
Dng 1 : s nguyn dng N ( 1 N 1000 ) .
T dng 2 -> dng N : dng th i gm 2 s nguyn dng u v c ( 1 u < i , 0 c 1000 ) cho
bit cha ca nt i l nt u v cnh ni (u,i) c trng s l c .
Output
Vi mi test ghi ra gi tr thp nht c th t c ca cy trn 1 dng vi chnh xc l 2 ch
s sau du chm.
Example
Input:
1
4
11
12
21
Output:
3.00
Bi ton:
Ba tip vui v (GUEST)
Cng ty trch nghim hu hn Vui v c n cn b nh s t 1 n N. Cn b i c
nh gi vui tnh l Hi ( i = 1 , 2 ..N ) . Ngoi tr gim gim c cng ty , mi cn b c
1 th trng trc tip ca mnh .
Bn cn gip cng ty mi mt nhm cn b n d d tic Vui v sao cho trong s
nhng ngi c mi khng ng thi c mt nhn vin v th trng trc tip v
ng thi tng nh gi vui tnh ca nhng ngi d tic l ln nht .
GUEST.OUT
3
03
16
24
27
1
3
36
Mt s vn ng ch trong mn tin hc
Gi F1[i] l tng vui tnh ca cch chn nu xt trong nhng ngi di quyn
qun l ca i v i l ngi c chn.
Gi F0[i] l tng vui tnh ca cch chn nu xt trong nhng ngi di quyn
qun l ca i v i l ngi khng c chn.
Cng thc Quy hoch ng:
- F1[i] = Vi nu i khng l xp ca ai
- F0[i] = 0 nu i khng l xp ca ai
Trng hp cn li
- F1[i] = F 0[ i'] + Vi
- F0[i] = max(F 0[i'], F1[i'])
Trong i l nhng nt nhn i lm cha trc tip.
Kt qu tng vui v ln nht l max (F1[j],F0[j]) trong j l s hiu gim c ca
cng ty. a nhng ngi c chn da vo mng F1 v F0.
37
Mt s vn ng ch trong mn tin hc
V d:
CTREE.INP
8
12
13
14
15
56
57
58
CTREE.OUT
11
3
1
1
1
2
1
1
1
Cy con gc 5
Mt th t cha-con ca cy vi 1 l gc
1 x' 3 v x ' x
T tng c tin hnh bng k thut xc nh cy quan h cha con kt hp vi Quy hoch
ng trong php duyt DFS th:
Php duyt DFS nh i
nh du thm nh i
Nu i khng ni vi nh no cha thm th F[i,x] = x vi x:13
Ngc li nu ii l nh ni vi i v cha c thm
Gi php duyt nh ii - ii nh du l con ca i
Tnh F[i,x] da vo cc F[ii,x]
38
Mt s vn ng ch trong mn tin hc
Luyn tp:
Cy P nh (PTREE)
Bi ton:
Cho mt cy gm N nh , mi nh c 1 nhn C[i] gi l trng s ca nh i . Hy
tm 1 cy con gm P nh sao cho tng trng s ca cy con ny l ln nht . Hiu 1 cch
n gin l tm P nh sao cho P nh ny lin thng v tng trng s l ln nht .
D liu: PTREE.INP
Dng 1 : 2 s nguyn dng N v P . ( 1 P N 200 ) .
Dng 2 : N s nguyn dng C[1] , C[N] . ( -1000 C[i] 1000 ) .
N - 1 dng tip theo , mi dng gm 2 s nguyn dng u , v m t 1 cnh ca
th .
Kt qu: PTREE.OUT
Gm 1 dng ghi ra P s nguyn l ch s ca P nh c chn .
V d:
PTREE.INP
32
123
12
23
PTREE.OUT
23
1
T
B =A +
1
39
Mt s vn ng ch trong mn tin hc
D liu: BRIDGES.INP
Dng th nht ghi 4 s nguyn N, K, VP, VC trong VP l vn tc nu i bng
ph v VC l vn tc nu i bng cu. VP v VC c n v l m/s
N - 1 dng tip theo, mi dng ghi 3 s U V L th hin gia o U v o V
c mt tuyn ph, v khong cch gia U v V l L mt.
Kt qu: BRIDGES.OUT
In ra K s l s hiu ca tuyn ph cn c thay th bng cu.
Gii hn:
1 K < N 10 000
1 VP, VC 100 000
1 LU,V 106
V d:
BRIDGES.INP BRIDGES.OUT
6212
13
1 2 5
3 2 6
1 4 4
4 6 4
455
2
3
F[4] = 3
T(3,1) = 3*(6-3) = 9
4 u
5
40
Mt s vn ng ch trong mn tin hc
Bi ton:
Cy cn bng (BALANCE)
Cho mt cy T vi N nt (1N20000) c nh s t 1 n N. Hai nt hoc l
ni vi nhau bi mt cnh duy nht hoc khng ni vi nhau. Xa bt k nt no trong
cy s sinh ra mt rng: rng l tp hp mt hoc nhiu cy. nh ngha cy cn bng
ca mt nt l kch c ca cy ln nht trong rng T c to bi bng cch xa nt T.
VD cho mt cy
1
2
4
5
41
Mt s vn ng ch trong mn tin hc
V d:
STONE.INP
7
1223
2254
3267
STONE.OUT
3
Bi ton: on ng cc tr (LUBENICA)
Mng li giao thng 1 nc bao gm N thnh ph (nh s t 1 n N) v N-1
ng ni cc thnh ph vi nhau. C mt ng i duy nht gia mi cp thnh ph.
Mi con ng c mt di xc nh.
Vit chng trnh, vi mi K cp thnh ph cho trc, tm di ca con ng
ngn nht v di nht trn ng i gia 2 thnh ph ny.
D liu: LUBENICA.INP
Dng u tin cha s nguyn N, 2 N 100 000.
Mi dng trong s N-1 dng tip theo cha 3 s nguyn A, B, C cho bit c mt
con ng di C gia thnh ph A v thnh ph B. di ca mi con ng
l s nguyn dng khng vt qu 1000000.
Dng tip theo cha s nguyn K, 1 K 100 000.
Mi dng trong s K dng tip theo cha 2 s nguyn D v E - ch s ca 2 thnh
ph cn truy vn.
Kt qu: LUBENICA.OUT
Mi dng trong s K dng cha 2 s nguyn - di ca con ng ngn nht v
di nht trn ng ni gia 2 thnh ph tng ng.
42
Mt s vn ng ch trong mn tin hc
V d:
LUBENICA.INP
5
2 3 100
4 3 200
1 5 150
1 3 50
3
24
35
12
LUBENICA.INP
7
364
171
132
126
254
244
5
64
76
12
13
35
LUBENICA.OUT
100 200
50 150
50 100
LUBENICA.OUT
26
14
66
22
26
LUBENICA.INP
9
122
231
345
274
153
561
592
183
5
69
78
94
12
73
LUBENICA.OUT
12
24
15
22
14
Mt s vn ng ch trong mn tin hc
Cy nh phn (BTR)
Bi ton:
BTR.OUT
25
Gi :
F[0]:=1;
cc:=1;
for i:=1 to length(s) do
begin
if s[i]='L' then F[i]:=F[i-1]*2
else if s[i]='R' then F[i]:=F[i-1]*2 + cc
else if s[i]='P' then begin end
else
begin
F[i]:=F[i-1]*5 + cc;
cc:=cc*3;
end;
writeln(F[i])
44
Mt s vn ng ch trong mn tin hc
VN : SP XP TOPO V NG DNG
Bi ton:
Sp xp Topo
Cho th c hng khng chu trnh. Tm cch sp xp th t cc nh sao cho
mi cung (u,v) ca th th nh u nm trc nh v trong dy sp xp. Hay ni cch
khc l tm cch nh s cch nh ca th (cc nh khc nhau c s khc nhau) sao
cho mi cung (u,v) u ni nh c ch s b hn n nh c ch s ln hn.
Hng gii quyt:
Cch lm th nht: trong th c hng khng chu trnh th lun tn ti t nht
mt nh c bc vo bng 0 ( c th chng minh bng phn chng). Ln lt ly cc nh bc
vo bng 0 ra khi th, cho xp v tr u tin, b cc cung ra t nhng nh bc 0 ny
th th s xut hin nhng nh bc 0 mi. li ly nhng nh bc 0 ny xp vo v tr tip
theo. C lm nh vy cho n khi b ht cc nh ca th.
Cch lm th hai (n gin v d ci t hn): Thc hin qu trnh duyt DFS
th, nh no c duyt xong sm hn s nm v tr cui hn hay c ch s ln hn. M t
cch lm ny nh sau:
Procedure DFS(u:integer);
Begin
visited[u]:=true; {nh du nh u thm}
for v:=1 to n do
If a[u,v] and (not visited[v]) then {c cung (u,v) v nh v
cha thm}
DFS(v);
num[u]:=id; {gn ch s cho nh u l id}
q[id]:=u; {mng th t cc nh}
dec(id);
End;
Procedure Process;
Begin
fillchar(visited,sizeof(visited),false);
id:=n;
for u:=1 to n do
If not visited[u] then DFS(u);
End;
45
Mt s vn ng ch trong mn tin hc
F [n ] = 0
p dng Quy hoch ng:
F[ i] = max(F[ j] +1 )\ i : n 1 1 ; j :i +1 n ; ( i, j)lcung
Kt qu di ng i di nht l max(F[i]). Dng thm mng truy vt trong phn
QHD nu mun xut ra ng i di nht.
Topo; {thut ton sx topo dng mng q lu th t nh sp xp}
{q[i]=u ngha l nh u v tr i hay c nhn l i}
F[n]:=0;
For i:=n-1 downto 1 do
Begin
k:=0;
for j:=i+1 to n do
if a[q[i],q[j]] then
{nu c cung ni nh c nhn i vi nh c nhn j}
if f[j]+1 > k then
begin
k:=f[j]+1;
trace[i]:=j;
end;
F[i]:=k;
End;
K:=0;
For i:=1 to n do k:=max(k,F[i]);
Writeln(k); { di ng i di nht}
46
Mt s vn ng ch trong mn tin hc
Topo;
Fillchar(F,sizeof(F),0);
F[q[t]]:=0;
For i:=q[t]-1 downto q[s] do
Begin
k:=0;
for j:=i+1 to n do
if a[q[i],q[j]] then
{nu c cung ni nh c nhn i vi nh c nhn j}
k:=k + F[j];
F[i]:=k;
End;
Writeln(F[q[s]]);
Luyn tp:
Bi ton:
Thc hin d n
C mt d n c chia thnh nhiu cng vic nh hn. Mi cng vic cn mt
khong thi gian no hon thnh. ng thi mt s cng vic rng buc nhau v
ch c bt u thc hin khi hon thnh xong mt s cng vic no .Tm thi gian t
nht hon thnh d n (cho bit c th thc hin nhiu cng vic mt lc nu cc cng
vic ny khng rng buc nhau).
D liu:
Dng u tin ghi n l s cng vic ca d n n100
Dng tip theo ghi n s , s th i l thi gian Ti thc hin cng vic i.
(Ti 100.000)
N dng tip theo, dng th i lit k ch s cc cng vic j m cng vic j phi
c hon thnh trc khi thc hin cng vic i. Quy c dng th i ghi s 0 nu
cng vic i khng b rng buc bi cng vic no (c th thc hin bt c thi
im no).
Kt qu:
Dng u ghi YES hay NO tng ng vi vic c th hon thnh d n hay
khng.
Nu dng u l YES th dng sau l thi gian t nht hon thnh d n.
Gi : Xt th c n nh i din cho n cng vic.Xy dng cung (u,v) nu cng vic v ch
c thc hin sau khi hon thnh cng vic u v trng s cung ny bng thi gian thc
hin cng vic v. Xy dng thm nh n+1 c cung ni vi tt c cc nh cn li v trng s
bng thi gian thc hin cng vic .
Nu th xy dng c chu trnh th d n s khng th hon thnh. Ngc li
thi gian t nht hon thnh d n l trng s ng i c trng s ln nht trn th.
Bi ny s dng thut ton ging bi ng i di nht trn ch c iu bi
trn cc cung c trng s l 1 cn y cc cung c trng s l thi gian thc hin
cng vic tng ng.
Ch : Thut ton Topo c th s dng kim tra xem th c chu trnh hay khng ?.
Bi ton: Vng ua xe p (BIC)
47
Mt s vn ng ch trong mn tin hc
BIC.OUT
6
BIC.INP
22
12
21
BIC.OUT
inf
Mt s vn ng ch trong mn tin hc
JUMP.OUT
4
49
Mt s vn ng ch trong mn tin hc
Procedure DFS(u:integer);
var v:integer;
begin
inDFS[u]:=true; {danh dau dinh u dang
visited[u]:=true; {danh dau dinh u da
for v:=1 to n do
if a[u,v] then
if not visited[v] then
begin
DFS(v);
Trace[v]:=u; {mang de truy vet
end
else if inDFS[v] then
begin
{xuat chu trinh xuat phat tai v
duong di}
end;
inDFS[u]:=false; {ket thuc qua trinh DFS tu dinh u}
end;
Procedure Process;
Var i:integer;
Begin
Fillchar(inDFS,sizeof(inDFS),false);
Fillchar(visited,sizeof(visited),false);
For i:=1 to n do
If not visited[i] then DFS(i);
End;
50
Mt s vn ng ch trong mn tin hc
51
Mt s vn ng ch trong mn tin hc
2
5
12
13
14
10
1
11
HTDL.OUT
2
3412765
1243576
Gi : Xem N chi nhnh ngn hng l N nh ca th, chi nhnh i ang gi HTDL ca chi
nhnh j th c cung (i,j) trn th. D thy th xy dng l th c bit nh ni
trn.
52
Mt s vn ng ch trong mn tin hc
2
5
2
5
6
7
53
Mt s vn ng ch trong mn tin hc
2
5
6
7
CIRARC.OUT
2
12
21
CIRARC.INP
33
12
23
13
CIRARC.OUT
-1
54
Mt s vn ng ch trong mn tin hc
55
Mt s vn ng ch trong mn tin hc
Bi ton:
Chu trnh c bn (CIRCUIT)
Mt khu du lch c n a im nh s 1, 2, ..., n v mt s ng i hai chiu ni
nhng cp a im . Gia hai a im bt k c nhiu nht l mt ng i ni
chng.
Mt khch du lch xut pht t a im S mun i thm mt s a im khc ri
sau quay tr v S. trnh s nhm chn, ng ta mun tm mt hnh trnh khng qua
mt con ng hay mt a im no qu mt ln (Tt nhin, ngoi tr a im S phi
c mt trong hnh trnh hai ln bi l ni bt u cng nh kt thc hnh trnh).
Yu cu: Hy ch ng cho du khch .
D liu: CIRCUIT.INP
Dng 1: Cha hai s n, S (3 n 200).
Cc dng tip theo, mi dng cha hai s nguyn dng u, v cho ta thng tin:
gia hai a im u v v c mt ng i hai chiu ni chng.
Kt qu: CIRCUIT.OUT
Dng 1: Ghi t YES hay NO tu theo c tn ti hnh trnh tho mn yu cu ca
du khch hay khng
Nu dng 1 ghi t YES, dng 2 ghi hnh trnh tm c: Bt u l a im S,
tip theo l danh sch cc a im s i qua theo ng th t trong hnh trnh,
cui cng li l a im S.
V d:
CIRCUIT.INP
71
12
15
17
23
24
34
56
67
CIRCUIT.OUT
YES
17651
1
2
6
4
7
56
Mt s vn ng ch trong mn tin hc
57
Mt s vn ng ch trong mn tin hc
M t thut ton:
Cho nh u bt k vo Stack
Lp
Ly t Stack ra nh u.
Nu tn ti nh v m (u,v) ang l cnh th b cnh (u,v) v
thm nh v vo Stack
Ngc li in ra nh u l nh trn ng i Euler.
Cho n khi Stack rng.
Procedure process;
Begin
Top:=1;
Q[1]:=1;
Repeat
u:=Q[top];
For v:=1 to n do
If a[u,v] > 0 then
Begin
dec(a[u,v]); dec(a[v,u]);
Inc(top);
Q[top]:=v;
Break;
End;
If u = Q[top] then
begin
writeln(u, -> );
dec(top);
end;
until top = 0;
End;
Bi ton:
ng i Euler trong th v hng
Cho th v hng G lin thng, tm ng i xut pht t 1 nh qua tt c cc
cnh, mi cnh ng mt ln v kt thc ti mt nh khc. ng i nh vy gi l
ng i Euler.
Hng gii quyt: iu kin cn v th G gm n nh c ng i Euler l n-2
nh ca G u c bc chn v 2 nh cn li c bc l.
Thut ton tm ng i Euler bng cch thm vo 1 cnh o ni 2 nh c bc l, sau
tm chu trnh Euler ri b cnh o trn chu trnh va tm c.
Bi ton:
Chu trnh Euler trong th c hng.
Cho th c hng G lin thng yu (nu xem cch cung l cch cnh th G tr thnh
th v hng lin thng), tm chu trnh xut pht t mt nh, i qua tt c cc cung,
mi cnh mt ln v kt thc ti nh xut pht. Chu trnh nh vy gi l chu trnh Euler.
Hng gii quyt: Cng chng minh tng t nh i vi th v hng: G lin thng yu
c chu trnh Euler khi v ch khi mi nh ca G u c bn bc vo bng bn bc ra (s
cung vo bng s cung ra).
58
Mt s vn ng ch trong mn tin hc
Bi ton:
ng i Euler trong th c hng
Cho th c hng G lin thng yu, tm ng i xut pht t 1 nh qua tt c cc
cung, mi cung ng mt ln v kt thc ti mt nh khc. ng i nh vy gi l
ng i Euler.
Hng gii quyt: iu kin cn v th G gm n nh c ng i Euler l n-2
nh ca G u c bn bc vo bng bn bc ra, v 2 nh cn li, 1 nh c bn bc vo
hn bn bc ra l 1 (nh u), 1 nh c bn bc ra hn bn bc vo l 1 (nh v).
Thut ton tm ng i Euler bng cch thm vo 1 cung o (u,v) ni 2 nh c
chnhh lch bn bc vo - bn bc ra l 1, sau tm chu trnh Euler trn th c hng ri
b cung o trn chu trnh va tm c.
Mt s bi ton p dng chu trnh Euler.
Bi ton:
Ni t (SECRET)
m c cnh ca b mt mt lu i c, cc nh kho c hc phi gii quyt
vn sau: C mt lng ln cc mnh nam chm trc cnh ca, trn mi mnh ghi
mt t. Cc mnh cn c sp xp thnh mt dy sao cho k t u tin ca t trn mi
mnh (t mnh th 2 tr i) phi ging k t cui cng ca t trn mnh trc. V d
mnh c t acm c th xp sau mnh c t motorola.
59
Mt s vn ng ch trong mn tin hc
Cho bit cc t trn N mnh nam chm, hy gip cc nh kho c hc kim tra xem c
th ghp cc mnh thnh mt dy hay khng m c cnh ca b mt.
D liu: SECRET.INP
Dng u l s mnh nam chm (N30000)
N dng tip theo, mi dng mt xu k t m t mt t c vit trn mt mnh
nam chm (cc t gm cc k t t a n z, cc t khc rng v c di
khng qu 9).
Kt qu: SECRET.OUT
Ghi trn dng u tin, nu c th xp c th ghi possible, nu khng th ghi
impossible
Gi : Xt th G gm cch nh i din cho cc k t t a n z.Vi mi t trn
mnh nam chm, ta thm mt cung ni k t u ca t n k t cui ca t trn G. Bi
ton tr thnh kim tra th c hng G c ng i Euler hay khng. (ch kim tra
tnh lin thng yu ca G).
Bi ton:
V th (GRAPH)
Cho n th v hng G c N nh v M cnh. Xt bi ton v th nh sau:
Mi ln v ta t bt ti mt nh, di chuyn bt qua cc nh, mi ln i t nh ny n
mt nh khc, ta li v thm mt cnh. Ta khng c php v mt cnh qu mt ln
(tnh c hai chiu). Vi yu cu nh th, c th vi mt ln t bt ta khng th v c ht
cc cnh m phi dng nhiu ln nhc.
Yu cu: Hy tm cch v th cho trc sao cho s ln nhc bt l nh nht. D
liu: GRAPH.INP
Dng u ghi hai s nguyn dng N, M (N100, M1000)
M dng tip theo, mi dng ghi hai s u,v m t mt cnh ca th.
Kt qu: GRAPH.OUT
Dng u ghi K l s ln nhc bt cn dng.
K dng tip theo, mi dng m t mt ln v, trong s u tin l s cnh c
v, tip theo l cc nh xut hin trn ng v tng ng.
V d:
GRAPH.INP
55
12
23
34
24
25
GRAPH.OUT
1
5123425
60
Mt s vn ng ch trong mn tin hc
Luyn tp:
Bi ton: Ct cy s (MSTONE)
Mt mng li giao thng gm n thnh ph v m tuyn ng xa l hai chiu.
Gia hai thnh ph bt k c nhiu nht l mt xa l ni trc tip t thnh ph ny ti
thnh ph kia. Trn mi xa l, ngi ta dng sn cc ct cy s ch ng cho hnh
khch.
in s km trn cc ct cy s, ngi ta s dng mt r-bt. Mun in cc
ct cy s trn mt tuyn ng (u, v) th r bt phi thc hin mt chuyn i t u ti v
v mt chuyn i t v v u, c sau mi km th dng li v ghi vo mt mt ca mt ct
cy s.
V d: in cc ct cy s trn tuyn ng H Ni - Hi Phng. u tin r
bt xut pht t H Ni, c i mi km th dng li v in vo ct cy s dng "H Ni
... km", tt nhin ch c th in vo mt quay v hng Hi Phng bi R bt khng bit
c t n Hi Phng cn bao xa. Mun in dng ch "Hi Phng ... km" ln mt
cn li ca cc ct cy s th r bt phi thc hin hnh trnh t Hi Phng tr v H Ni
Yu cu: Gi thit rng h thng giao thng m bo s i li gia hai thnh ph bt k.
Hy tm mt hnh trnh ca R bt xut pht t thnh ph 1, i vit y ln cc ct
cy s ri quay tr v thnh ph 1, sao cho mi mt ca ct cy s bt k no cng ch b
vit mt ln.
D liu: MSTONE.INP
Dng 1: Cha hai s n, m cch nhau mt du cch (2 n 200)
m dng tip theo, mi dng ghi hai s u, v cch nhau mt du cch: cho bit gia
hai thnh ph u v v c mt tuyn xa l ni chng
Kt qu: MSTONE.OUT
Ghi cc hnh trnh r bt phi i: Bt u t thnh ph 1, tip theo l cc thnh
ph i qua theo ng th t trong hnh trnh, kt thc l thnh ph 1. Cc s hiu
thnh ph phi ghi cch nhau t nht mt du cch hoc du xung dng.
61
Mt s vn ng ch trong mn tin hc
V d:
MSTONE.INP
78
12
23
34
42
25
56
67
62
MSTONE.OUT
12676
525624323421
4
1
2
6
5
Bi ton:
Ngi a th (POS)
Mt bu t vng qu cn chuyn th cho ngi dn cc ngi lng cng nh
trn cc con ng ni gia cc ngi lng. Bn cn gip bu t tm hnh trnh i qua mi
ngi lng v mi con ng t nht mt ln (d liu vo m bo mt hnh trnh nh vy
tn ti). Tuy nhin, mi hnh trnh cn c gn vi mt chi ph. Ngi dn cc ngi
lng u mun bu t n lng mnh cng sm cng tt. V vy mi ngi lng tha
thun vi bu in, nu lng i l lng th k phn bit c thm trn hnh trnh v k wi,
lng i s tr wi - k euros cho bu in. Nu k > wi , bu in ng tr k - wi euros cho
ngi lng. Ngoi ra, bu in cn tr bu t mt euro khi i qua mi con ng trn hnh
trnh.
C n ngi lng, c nh s t 1 n n. Bu in c t ngi lng s mt, do
hnh trnh cn bt u v kt thc ti ngi lng ny. Mi ngi lng c t giao
im ca hai, bn, hoc tm con ng. C th c nhiu ng ni gia hai ngi lng.
Con ng c th l mt vng ni mt ngi lng vi chnh n.
Yu cu: Vit chng trnh xc nh mt hnh trnh i qua mi ngi lng v mi con
ng t nht mt ln, sao cho tng li nhun ca bu in l ln nht (hay tng thit hi
l b nht).
D liu: POS.INP
Dng u tin cha 2 s nguyn n, m, cch nhau bi khong trng; n (1 n
200), l s ngi lng v m l s con ng.
Mi dng trong s n dng sau cha mt s nguyn dng. Dng th i+1 cha s
wi, 0 wi 1000, xc nh chi ph c tr bi lng i.
Mi dng trong s m dng sau cha hai s nguyn dng cch nhau bi khong
trng, m t mt con ng ni hai ngi lng.
Kt qu: POS.OUT
Dng u tin cha s nguyn dng k, di ca hnh trnh.
Dng th hai theo cha k+1 s cho bit cc ngi lng c thm theo th t trn
hnh trnh, cch nhau bi khong trng, trong v1=vk+1=1.
62
Mt s vn ng ch trong mn tin hc
V d:
POS.INP
67
1
7
4
10
20
5
2 4
1 5
2 1
4 5
3 6
1 6
13
POS.OUT
7
15421631
Gi : Xt mi ng i Euler (d) (hoc chu trnh Euler (c)) ca th. D dng chng
minh c th n thm ca cc ngi lng khng quan trng hay ni cch khc mi
ng i (d) (hoc chu trnh (c)) u c cng mt tng li nhun thu c. Do ch cn
chi ra mt ng i Euler (d) (hoc chu trnh Euler (c)) bt k.
Bi ton:
Thm him m cung (PCYCLE)
Mt m cung gm c N phng v M hnh lang ni cc phng, gia hai phng bt k
c khng qu mt hnh lang ni chng.
Mt ngi mun khm ph m cung, anh ta s xut pht t mt phng v i dc
theo tt c cc hnh lang sao cho mi hnh lang c i qua ng mt ln, ri li tr v
v tr xut pht. Mi hnh lang c mt gi tr c cho bit khi i qua n th nng lng nh
thm him s cng thm vi c (c c th m hay dng). Nh thm him bt u xut pht
vi nng lng bng 0, anh ta s cht nu sau khi i ht mt hnh lang no m mc
nng lng nh hn 0.
Yu cu: Hy gip nh thm him tm ra mt hnh trnh an ton tha mn cc yu cu
a ra.
D liu: PCYCLE.INP
Dng 1 l 2 s nguyn N, M. ( 1 N 200 )
M dng tip theo, dng th i gm 3 s nguyn u, v, c cho bit c 1 hnh lang ni
phng u vi phng v v gi tr nng lng l c. ( |c| 10000 ) .
Kt qu: PCYCLE.OUT
Nu c khng c hnh trnh no an ton th ghi ra -1. Ngc li ghi ra M+1 s
nguyn l ch s phng trn ng i. T phng xut pht, qua cc phng, hnh
lang ri quay tr v phng xut pht.
63
Mt s vn ng ch trong mn tin hc
V d:
PCYCLE.INP
33
122
1 3 -1
2 3 -1
PCYCLE.OUT
2132
Gi F[ i] = c[ uk 1,uk ] (F[1] = 0)
k=2
Tm nh s c F[s] nh nht.
- Nu F[s] < 0 th khng tn ti hnh trnh an ton
- Nu F[s] 0 th ly s l nh xut pht, i theo chu trnh (E) l mt hnh trnh an
ton.
(bn c t chng minh tnh ng n ca thut ton)
64
Mt s vn ng ch trong mn tin hc
65
Mt s vn ng ch trong mn tin hc
66
Mt s vn ng ch trong mn tin hc
67
Mt s vn ng ch trong mn tin hc
0.81
1.09
0.83
1.00
0.90
0.85
0.81
1.02
0.84
1.00
MONEY.OUT
YES
1 0.007160
124
68
Mt s vn ng ch trong mn tin hc
Ta c e1 + e2 + + em < 0
-ln(c1) - ln(c2) - - ln(cm) < 0
ln(c1) + ln(c2) + + ln(cm) > 0
ln(c1.c2..cm) > 0
c1.c2..cm > e0
c1.c2..cm > 1
Hay cc cung c1,c2,,cm to thnh mt chu trnh tng ng vi cch i tin mang li
li nhun.
Bi ton:
Vn chuyn hng (TRANS)
Cng ty MCA l mt cng ty vn ti ni ting ti t nc Peace, vi mng li
hot ng trong khp c nc. Sp n k nim 30 nm thnh lp, gim c cng ty
quyt nh m mt t khuyn mi ln cho tt c cc khch hng. C th l cng ty s m
mt s tuyn ng vn chuyn min ph cho khch hng.
Mi tuyn ng nh vy s xut pht t mt thnh ph, qua mt s thnh ph
(khng i qua thnh ph no 2 ln) ri quay v ni xut pht. Nu tnh chi ph vn
chuyn trung bnh trn tng tuyn ng th chi ph chi ra cho t khuyn mi ny s
khng nh nn gim c cng mun cc tuyn ng ny tha iu kin tng di
ng i chia cho tng s con ng trong tuyn ng (gi l chi ph ca tuyt
ng) l nh nht.
Cho mt mng li vn chuyn hng ca cng ty MCA hy tm ra tuyn ng
thch hp nht (tha c 2 iu kin trn) cho t khuyn mi. Xut ra chi ph ca tuyn
ng tm c.
D liu: TRANS.INP
Dng u tin ghi hai s nguyn N v M l s thnh ph v s con ng trong
mng li.
M dng tip theo, mi dng ghi ba s nguyn a b c vi ngha c ng i mt
chiu t a n b vi di l c.
D liu: TRANS.OUT
Dng th nht ghi mt s thp phn vi t nht 2 ch s sau du phy l chi ph
nh nht. Nu khng tn ti tuyn ng no tha mn ghi ra -1.
Dng th hai ghi s P l s lng thnh ph trn tuyn ng c chn.
Dng th ba ghi P + 1 s ln lt l cc thnh ph trn tuyn ng c chn.
Gii hn:
1 N 100
1 M 9000
1 c 223
V d:
TRANS.INP
33
121
231
311
TRANS.OUT
1.00
3
1231
69
Mt s vn ng ch trong mn tin hc
Luyn tp:
Bi ton:
Li nhun ti a (PROFIT)
Thuyn trng Sinbad c d nh a on tu cng thy th on i trao i hng
ho vng quanh cc hn o.Sinbad quyt nh s xut pht ti mt hn o bt k,sau
i qua mt s hn o v quay tr v hn a xut pht (mt hn o c th c
thm nhiu ln).L mt thuyn trng ti ba v y kinh nghim,Sinbad mun chn mt l
trnh sao cho li nhun thu c l ti a.Li nhun thu c i vi mt hnh trnh
c tnh da trn thng s gia tng lng hng ho bn c dc theo hnh trnh v
tng di hnh trnh.Cho bit bn ca vng bin gm N hn o c nh s t 1
n N v M tuyn hi trnh gia chng cng lng hng ho d kin s bn c C[I,J]
nu i t o I n o J (C[I,J]=C[J,I]) (Cc tuyn hi trnh xem nh hai chiu ).Bn hy
gip Sinbad lp l trnh ti u cho thu th on.
70
Mt s vn ng ch trong mn tin hc
D liu: PROFIT.INP
Dng u tin gm 2 s N,M (1<=N<=100) ln lt l s o v s hi trnh gia
chng.
M dng tip theo,mi dng gm
4 s nguyn A,B,C,D (1<=A,B<=N ;
1<=C,D<=255) cho bit tn ti hi trnh gia hai hn o A,B trong C l s
hng ho d kin s bn c v D l di ca hi trnh.
Kt qu: PROFIT.OUT
Gm mt s thc P duy nht l li nhun ti a ng vi phng n ti u m bn
tm c.(Yu cu ly chnh xc 3 ch s sau du phy).
V d:
PROFIT.INP PROFIT.OUT
56
2.520
1 4 172 100
4 5 184 100
5 1 252 100
1 2 12 100
2 3 10 100
3 1 6 100
71
Mt s vn ng ch trong mn tin hc
VN : T MU TH
Bi ton:
T mu cc nh.
Cho th v hng G. Tm cch t mu cc nh ca th (mi nh mt mu)
sao cho tha mn 2 iu kin sau:
- Hai nh c cnh ni trc tip c t bi 2 mu khc nhau.
- S mu cn dng l t nht.
(S mu cn dng t nht c gi l sc s ca th.)
2
5
3
7
8
th ban u
4
1
3
th c t bi 3 mu
72
Mt s vn ng ch trong mn tin hc
M t thut ton:
Function deg(u:integer):integer;
{Bc ca nh u}
Begin
D:=0;
For v:=1 to n do
If a[u,v] and C[v]=0
then inc(d);
deg:=d;
End;
Function canput(u,k:integer):boolean;
{c th t nh u bng mu k hay khng}
Begin
canput:=false;
For v:=1 to n do
If a[u,v] and c[v]=k then exit;
canput:=true;
End;
Procedure put(u,k:integer);
{T nh u bng mu k}
Begin
C[u]:=k;
End;
Procedure process;
Begin
color:=0;
Fillchar(c,sizeof(c),0);
Repeat
U:=0; maxdeg:=-1;
For v:=1 to n do
If C[v]=0 and deg(v)>maxdeg then
Begin u:=v; maxdeg:=deg(v); end;
If u<>0 then
begin
Inc(color);
Put(u,color);
Repeat
V:=0; maxdeg:=-1;
For t:=1 to n do
If (c[t]=0) and canput(t,color) and (deg(t)>maxdeg) then
Begin v:=t; maxdef:=deg(t); end;
If v <> 0 then put(v,color);
Until v = 0;
End;
Until u = 0;
Writeln(color); {s mu ti thiu cn dng}
For i:=1 to n do writeln(I, : ,c[i])
End;
73
Mt s vn ng ch trong mn tin hc
th y n nh (l th m gia 2 nh bt
k lun c cnh ni) c sc s bng n.
2
1
th vng vi s nh chn c sc s l 2.
th vng vi s nh l c sc s l 3.
1
3
B
C
th phng : l th c th biu th cc nh v
cc cnh trn mt mt phng sao cho cc cnh v
cc nh khng c im giao nhau no khc ngoi
cc u mt. Loi th ny c sc s khng ln
hn 4. Do c th dng khng qu 4 mu t
mu mt bn bt k sao cho 2 vng t khc
nhau c mu khc nhau.
th 2 pha bt k c sc s l 2. C th nhn ra
cch t mu n gin nht l t tp nh bn X bng
mu 1 v t tp nh bn Y bng mu 2. Ngoi ra
nu mt th v hng bt k c sc s l 2 th
th ny c th phn thnh th 2 pha.
A
E
4
4
3
2
3
Bi ton:
T mu cc cnh.
Cho th v hng G. T mu cc cnh ca th bi 2 mu sao cho:
- i vi mi nh, nu xt cc cnh c ni vi nh th chnh lch gia s
cnh c t mu ny v s cnh c mu kia khng qu 1.
- i vi ton b th, nu xt tt c cc cnh th chnh lch gia s cnh
c t mu ny vi s cnh c t mu kia khng qu 1.
Tm cch t mu tt c cc cnh tha mn 2 iu kin trn.
74
Mt s vn ng ch trong mn tin hc
7
1
75
Mt s vn ng ch trong mn tin hc
B2/Lp
Tm nh u c bc chn (khc 0) trn th.
Thc hin php color2(u).
B cc cnh c t ra khi th
Cho n khi no t ht tt c cc cnh.
Luyn tp:
Bi ton:
Xp lch thi (LICHTHI)
Mt s trng i hc t chc hc theo tn ch. Nu sinh vin tch ly s chng
ch cho mt s mn quy nh ca mt ngnh l c quyn nhn bng tt nghip ca ngnh
. i vi cc i hc nh th, vic hc v thi khng t cha theo lp m theo cc mn
hc. Hng nm nh trng thng bo cc mn s hc sinh vin t ng k hc cc
mn hc theo ngnh mnh chn. Cui nm nh trng t chc thi cho cc mn ging
trong nm. Mi mn thi trong mt ngy nhng trong mt ngy c th t chc thi nhiu
mn. Do mt sinh vin c th ng k thi nhiu mn nn lch thi cn phi b tr nu c
mt sinh vin ng k thi hai mn no th cc mn khng c thi cng ngy.
Yu cu: Hy xp lch thi sao cho tng s ngy thi cng t cng tt.
76
Mt s vn ng ch trong mn tin hc
D liu: LICHTHI.INP
M , N : ln lt l s th sinh v s mn hc ( M 1000, N 100);
M dng tip theo ghi thng tin v ng k thi ca mi sinh vin, mi dng gm N
s 0 hoc s 1 cch nhau mt du cch, s th j trong dng th i l 1 nu sinh
vin th i ng k hc v thi mn th j v bng 0 nu sinh vin th i khng ng
k thi mn th j.
Kt qu: LICHTHI.OUT
Gm N dng mi dng c mt s t nhin. S dng th i l ngy thi tng ng
i vi mn th i.
V d:
Mt s vn ng ch trong mn tin hc
Kt qu:
Dng u ghi s nh trong tp n nh trong cc i.
Dng tip theo ghi ch s cc nh trong tp.
Gi : Duyt nhnh cn l cch n gin gii quyt tuy nhin vi d liu ln th bi
ton nu trn cha c li gii ti u. Ta ch c th tm mt thut ton tham cho kt qu tt
nht c th.
Nu ta t mu cc nh ca th th cc nh c t cng mt mu s cho mt
tp n nh trong. Da vo iu ny ta tm tp nh cng mu c nhiu nh nht. Tuy
nhin, trong mt s trng hp, tp cc nh ny cha hn l tp n nh trong cc i
ca th. Nhng t nht n cho ta mt cn tt trc khi s dng phng php duyt.
Bi ton:
Trng cy(GTREE)
Mt khu vn hnh ch nht c chia thnh MxN t (M hng v N ct). Ngi ta
mun trng 2 loi cy cam v chanh ti mt s trong khu vn. Tm cch trng loi cy
no vo mi c trng sao cho m bo iu kin thm m: chnh lch gia s cy
cam v s cy chanh khng qu 1 khi:
- Khi nhn theo bt c hng no.
- Khi nhn theo bt c ct no.
- Khi nhn ton b khu vn.
D liu: GTREE.INP
Dng u 2 gi tr M,N cch nhau mt du cch.
Tip theo l ma trn 0,1 c kch thc MxN biu th cc v tr cn trng cy
(nhng v tr ny nhn gi tr 1) v nhng v tr khng c trng cy (nhn gi tr
0).
Kt qu: GTREE.OUT
Mt cch trng cy tha mn biu th qua Ma trn 0,1,2 c kch thc MxN trong
gi tr 0 biu th v tr khng c trng cy, gi tr 1 biu th v tr trng cy
cam, gi tr 2 biu th v tr trng cy chanh.
V d:
GTREE.INP
5 11
01010010001
10100001000
01010100001
00000001010
00001000000
GTREE.OUT
01020010002
10200001000
02010200001
00000002010
20000100000
78
Mt s vn ng ch trong mn tin hc
DEC.OUT
6
3200456010
0023000401
0002031000
0310004020
2435060100
Bi ton:
Sn ca (RPAINT)
Ph ng va mi xy dng xong to bit th ca mnh. Vic trc tin ph ng
mun lm l i sn cc cnh ca trong ngi nh ca mnh. To bit th c m t l
mt kiu kin trc k qui khng tun theo bt k quy lut t nhin no. N bao gm N
phng v 1 h thng hnh lang ni cc phng vi nhau. Mi mt cn phng thay v ch c
1 ca th li c ti Ai cnh ca. Mi cnh ca dn ra mt hnh lang ni ti mt phng
khc. Hin thi th trng ang khuyn loi sn mua 1 tng 1. C th l nu bn mua 1
hp sn mu trng bn s c tng 1 hp sn mu en v ngc li nu bn mua 1 hp
sn mu en, bn s c tng 1 hp sn mu trng. Ph ng va xy xong bit th nn
cng kh l tng tin. M c bn tnh kh cng kh l keo kit, ng ta quyt nh sn cc
cnh ca theo cch sau y:
Nu cnh ca X ca phng Y dn ra hnh lang thng vi cnh ca U ca phng V th 2
cnh ca ny phi sn 2 mu khc nhau.
Ngoi ra bn cnh l yu cu v thm m, trong mi phng th s lng cnh ca
sn mu trng v s lng cnh ca sn mu en khng c chnh lch qu 1.
79
Mt s vn ng ch trong mn tin hc
80
Mt s vn ng ch trong mn tin hc
D liu: MAYORS.INP
Dng u tin cha N (1 N 20000), s thnh ph ca t nc.
Dng th i trong s N dng tip theo cha hai s nguyn xi, yi l ta ca thnh
ph th i (xi, yi thuc phm vi s nguyn 32 bit).
Kt qu: MAYORS.OUT
In ra N dng, dng th i cha s nguyn 0 hoc 1 tng ng vi vic cn b
nhim th trng nam hay n cho thnh ph.
V d:
MAYORS.INP MAYORS.OUT
5
0
00
1
01
1
10
0
11
0
12
81
Mt s vn ng ch trong mn tin hc
82
Mt s vn ng ch trong mn tin hc
nh
ang c
Thut ton FORD BELLMAN kt hp Queue vng c thi gian hot ng rt hiu
qu so vi thut ton FORD BELLMAN n thun. N khng ch ng dng trong cc bi
tm ng i trng s nh nht m cn c dng trong cc bi ton s dng t tng
FORD BELLMAN ni chung.
Luyn tp:
Bi ton:
V tr tt nht (BESTSPOT)
Bessie, lun lun mun cuc sng ca mnh tt hn , thy r rng c ta tht s
rt thch gh thm F (1 <= F <= P) cnh ng yu thch F_i trong tng s P (1 <= P <=
500;1 <= F_i <= P) cnh ng (c nh s t 1-> P) thuc s hu ca nng dn John.
Bessie bit rng c y c th xc nh c C (1 <= C <= 8000) con ng hai chiu
(c nh s 1 .. C) kt ni tt c cc cnh ng trong ton b nng tri. ng vi mi
con ng P_i l thi gian i T_i (1 <= T_i <= 892) v ni 2 cnh ng a_i v b_i (1 <=
a_i <= P; 1 <= b_i <= P).
Bessie mun tm cnh ng tt nht ng tha mn bnh qun thi gian i n F
cnh ng yu thch ca c ta l nh nht.
D liu: BESTSPOT.INP
Dng 1: 3 s nguyn P,F,C
Dng 2..F+1: Dng i+2 cha 1 s Nguyn F_i
Dng F+2..C+F+1 : Mi dng cha 3 s Nguyn a_i, b_i, F_i m t 1 con ng
2 chiu l thi gian di chuyn gia chng.
83
Mt s vn ng ch trong mn tin hc
Kt qu: BESTSPOT.OUT
Gm 1 dng duy nht l cnh ng c chn . nu c nhiu kt qu , chn cnh
ng c ch s nh nht.
V d:
BESTSPOT.INP BESTSPOT.OUT
13 6 15
10
11
13
10
12
8
1
243
7 11 3
10 11 1
4 13 3
9 10 3
232
354
592
676
561
124
453
11 12 3
6 10 1
787
84
Mt s vn ng ch trong mn tin hc
85
Mt s vn ng ch trong mn tin hc
AIRLINES.INP
15 16 3 2 1 5
1 2 1
2 3 1
3 4 12
3 9 2
4 9 1
5 10 1 3
6 7 1
6 11 1
7 8 1
7 13 2
8 9 1
10 15 3
11 12 1
12 13 1
13 14 1 3
14 15 1 3
AIRLINES.OUT
37
121
231
341
491
981
871
7 13 2
13 14 3
14 15 3
15 10 3
10 5 3
1
1
1&2
1
3
4
1
2
1
1
6
10
1
1
11
1&3
1
8
1
12
1&3
13
1&3
14
15
86
Mt s vn ng ch trong mn tin hc
## # ## ## #
#
@
## # W
# ## ## *
$
D liu: CARGO.INP
Dng 1: Ghi hai s nguyn dng m, n cch nhau mt du cch (m, n 80)
m dng tip theo, dng th i ghi n k hiu trn hng th i ca bn theo ng
th t t tri qua phi. Cc k hiu c ghi lin nhau
Kt qu: CARGO.OUT
Dng 1: Ghi s bc di chuyn xe y thc hin mc ch yu cu, nu khng
c phng n kh thi th dng ny ghi s -1
Dng 2: Nu c phng n kh thi th dng ny ghi cc k t lin nhau th hin
hng di chuyn ca xe y R (East, West, South, North). Cc ch ci thng
(e,w,s,n) th hin bc di chuyn khng y hng, cc ch ci in hoa (E,W,S,N)
th hin bc di chuyn c y hng.
V d:
CARGO.INP
88
#.....@.
..###
#.#####*
.$...
CARGO.OUT
23
sswwwwwwNNNwnEseN
wnEEEE
CARGO.INP
5 9
@...
.##.###.#
...#..
.##$###.#
.*...
CARGO.OUT
22
eeNNNssseeeennnnwww
WWW
Mt s vn ng ch trong mn tin hc
Mt s vn ng ch trong mn tin hc
ERP.OUT
8
.#####..
.#...#..
.#...#..
.#E#####..
.#...
.##F#...
v d trn k t # ch ra on ng ph, cn k t . ch ra on ng
khng l ng. Cc on ng ph u c th i c 2 chiu. K t E ch ra v tr xut
pht ca xe t c u xe hng v pha ng, cn k t F ch ra v tr kt thc. L
trnh phi tr l 8$, trong ta phi thc hin 3 ln r tri v 1 ln r phi n ch. Ta
c th thc hin cch i r phi 2 ln n ch, nhng cch l ph phi tr l 10$.
Chiu cao v chiu rng ca bn t nht l 4 v khng qu 30. Bn c ng 1
im xut pht v 1 im kt thc. Lun c ng i t im xut pht n im kt
thc. Lun c mt khung gm ton k t . vin bn khng th vt ra ngoi bn
.
D liu: ERP.INP
Dng th nht cha 2 s nguyn dng h, w theo th t l chiu cao h v chiu
rng ca bn .
Mi dng trong h dng tip theo cha w k t. Mi k t ch l mt trong s cc
k t sau:
- .: v tr khng c ng
- #: v tr c ng ca bn .
- E: v tr xut pht, xe hng u v pha ng.
89
Mt s vn ng ch trong mn tin hc
Bi ton:
To xu
Cho hai tp A v B cha cc xu. A=(p1,p2,,pn); B=(q1,q2,,qm);
Mt xu S c gi l c th nhn c t A nu S c th to thnh bng cch ghp cc xu
trong A. Tng t, mt xu S c gi l c th nhn c t B nu S c th to thnh bng
cch ghp cc xu trong B. V d:
A=(12, 43,5), B=(124,31,25)
S=1254312 l xu c th nhn c t A nhng khng nhn c t B
S=12425 l xu c th nhn c t B nhng khng nhn c t A
Bi ton t ra l: Hy tm mt xu S nhn c t A v B vi di ngn nht.
Bi ton:
N thang my (LIFT)
Mt ta nh cao tng c N thang my, mi thang my ni lin ng 2 tng vi nhau v
khng dng li nhng tng nm gia 2 tng ny. Vn tc ca cc thang my l nh nhau: 5
giy qua mt tng.
Thi im bt u, mi thang my u tng thp nht v chng cng bt u di
chuyn ln tng trn. Sau khi ti tng trn, ngay lp tc li chuyn xung tng di, ri li
ln tng trn, c nh th
Minh ang tng 1 (tng thp nht) v mun nhanh chng ln tng trn cng ca
ngi nh. Anh ta thay i thang my ch trn nhng tng chung ca hai thang my v nu
thang my kia ti thi im ny cng ti tng ny, vic chuyn thang my khi coi nh
khng tn thi gian no.
Yu cu: Hy vit chng trnh tnh thi gian t nht m Minh c th ln ti tng trn cng
ca ta nh.
D liu: LIFT.INP
Dng u tin cha 2 s K v N, cch nhau du cch, l s tng v s thang my
ca ta nh (2<=k<=1000, 1<=N<=50000).
Trn mi mt trong N dng tip theo, m t mt thang my ghi hai s nguyn A
v B cch nhau du cch, (1<=A<=B<=K), ngha l thang my ny di chuyn
gia hai tng A v B.
Khng c hai thang my no khc nhau m li di chuyn gia 2 tng nh nhau.
Ch : D liu vo lun m bo c nghim.
90
Mt s vn ng ch trong mn tin hc
Kt qu: LIFT.OUT
Ghi trn dng mt, thi gian t nht (tnh theo giy) m Minh c th ln ti tng
trn cng ca ta nh.
V d:
LIFT.INP
10 4
15
5 10
57
7 10
LIFT.INP
10 3
15
35
3 10
LIFT.INP
20 5
17
7 20
47
4 10
10 20
LIFT.OUT
LIFT.OUT
LIFT.OUT
45
105
150
Bi ton:
Hnh trnh nhanh (JOURN)
Cho N thnh ph. C nhng con ng mt chiu ni mt s thnh ph vi nhau.
N thnh ph c nh s t 1 n N. Vo nhng ngy l, xe c i theo ng chiu giao
thng, v trong nhng ngy chn th phi i theo hng ngc li. di cc con ng
gia hai thnh ph l s nguyn c o bng khong thi gian i ht con ng
(khng ph thuc vo hng i, tc ca cc loi xe c trn mt con ng l nh
nhau). Vit chng trnh tm tuyn t thnh ph A ti thnh ph B m thi gian ti c
B cng sm cng tt. Bit ngy u tin ca hnh trnh l mt ngy l. Thi gian i trong
mi ngy khng vt qu 12 gi. m cn ngh trong mt thnh ph. Hnh trnh c th
c tip tc trong ngy hm sau.
D liu: JOURN.INP
Dng u tin cha hai s ln lt l s hiu ca thnh ph A v thnh ph B.
Dng th hai cha N l s thnh ph v K l s cc con ng (1<=K<=1000).
K dng cn li cha thng tin v cc con ng, mi dng cha ba s l s hiu
hai thnh ph c ni vi nhau bi mt con ng v khang thi gian tnh
bng gi i ht con ng , chiu ca con ng t thnh ph ghi trc n
thnh ph ghi sau.
Kt qu: JOURN.OUT
Mi dng th hin mt con ng ln lt i trn hnh trnh bng 4 s: s hiu
thnh ph bt u, s hiu thnh ph kt thc con ng , s ngy (l ngy th
my k t khi bt u xut pht t A) v thi gian i trn con ng .
91
Mt s vn ng ch trong mn tin hc
V d:
JOURN.INP
13
67
129
1 6 2
1 5 19
5 4 1
4 6 2
4 3 4
235
JOURN.OUT
1 5 1 10
5411
4334
Bi ton:
Sp xp (SORT)
Cho mt dy s. Bn cn sp xp dy s bng cch i ch cc cp phn t. Chi
ph i ch phn t hai v tr i v v tr j l Cij.
Nhim v ca bn l tm chi ph nh nht c th sp xp dy s theo th t tng
dn.
D liu: SORT.INP
Dng u tin cha dy s cn sp xp, c s phn t khng vt qu 7.
Dng th i trong s N dng tip theo cha N s nguyn, s th j cho bit Cij, chi
ph i ch phn t v tr th i v v tr th j. Bit N l s phn t ca dy s,
cc phn t c nh s t 1 n N t tri sang phi. 0 Cij 999, Cii=0 v
Cij=Cji.
Kt qu: SORT.OUT
In ra mt s nguyn dng duy nht: tng chi ph nh nht sp xp dy s theo
th t tng dn.
V d:
SORT.INP
123465
012345
101234
210123
321012
4 3 2 1 0 900
5 4 3 2 900 0
SORT.OUT
4
Mt s vn ng ch trong mn tin hc
Bi ton:
Tng s ng i ngn nht
Cho th v hng G vi cc cnh c trng s,2 nh s,t cho trc. Tnh s ng
i ngn nht t s ti t.( 2 ng i khc nhau nu th t cc nh trn 2 ng i khc
nhau)
Hng gii quyt: Kt hp DIJTRA v Quy hoch ng
Theo thut tan DIJTRA, d[i] l khong cch ngn nht t s n nh i. Ban u
d[v] = + ( v s) v d[s] = 0.
Quy hoch ng gi f[i] l s ng i ngn nht t s n nh i.Ban u f[v] = 0
(v s) v f[s] = 1.
Trong chng trnh DIJTRA:
Mi khi tm c ng i mi c di ngn hn (d[v] > d[u] + c[u,v]) ta tin
hnh thay i d[v] := d[u] + a[u,v] ng thi f[v] := f[u].
Mi khi tm c c 2 ng i c di bng nhau (d[v] = d[u] + c[u,v]) thay
i f[v]:=f[v] + f[u].
f[t] l kt qu cn tm.
93
Mt s vn ng ch trong mn tin hc
Bi ton:
K ng i ngn nht (PATHK)
Vng t X c N thnh ph (4N800) c nh s t 1 n N. Gia hai thnh
ph c th c ng ni trc tip hoc khng. Cc con ng ny c nh s t 1 n M
(1M4000). Ban lnh o th dc th thao vng X t chc cuc chy ua tip sc thng
minh theo quy lut sau:
- Thnh ph xut pht l thnh ph 1, thnh ph ch l thnh ph N.
- Mi i c K ngi d thi. Ln lt tng ngi chy t thnh ph 1 v thnh
ph N.
- Khi mt ngi chy v ti thnh ph N th ngi tip theo mi c php
xut pht. Ngi th K v ch ti thi im no th thi im c coi l
thi im v ch ca ton i.
- ng chy ca K i vin khng c ging nhau han ton.
- C th chy li nhng on chy qua.
Yu cu: Hy vit chng trnh tnh thi gian nh nht mt i hon thnh cuc chy
ua tip sc nu trn nu cc vn ng vin c tc chy nh nhau.
D li: PATHK.INP
Dng u ghi ba s K, N, M
M dng tip theo, mi dng ghi 3 s nguyn i, j, w th hin mt ng i trc tip
gia hai thnh ph i v j mt thi gian chy l w (n v thi gian 1w9500)
Kt qu: PATHK.OUT
Dng th nht cha mt s nguyn duy nht l thi gian chy nh nht ca mt
i.
K dng tip theo, mi dng th hin mt hnh trnh chy ca mt vn ng vin
trong i: l dy cc thnh ph lin tip trn hnh trnh .
94
Mt s vn ng ch trong mn tin hc
V d:
PATHK.INP
458
121
132
142
232
253
343
354
456
PATHK.OUT
23
1325
135
12125
125
Bi ton:
S ph thuc - Olympic Balan 2003 (SUMS)
Cho tp s nguyn A gm n phn t, A={a1, a2,..., an}. S k c gi l ph thuc vo
tp A, nu k c to thnh bng cch cng cc phn t ca tp A (mi phn t c th cng
nhiu ln).
V d cho A={2,5,7}. Cc s nh 2, 4(2+2), 12(5+7 hoc 2+2+2+2+2) c gi l ph
thuc vo tp A. S 0 cng gi l ph thuc vo tp A.
Yu cu: Cho mt dy B, hy kim tra xem bi c phi l s ph thuc vo tp A hay
khng .
D liu: SUMS.INP
Dng u tin cha s nguyn n (1 n 5000).
N dng tip theo cha cc phn t ca tp A, a1 < a2 < ... < an (1 ai 50000 ).
Dng th N+2 cha s nguyn m (1 m 10000 ).
M dng tip theo cha dy s nguyn b1, b2, ..., bm (0 bi 1000000000 ).
Kt qu: SUMS.OUT
Gm m dng, dng th i ghi ra TAK nu bi l s ph thuc vo tp A v NIE nu
khng phi l s ph thuc.
V d:
95
Mt s vn ng ch trong mn tin hc
SUMS.INP
3
2
5
7
6
0
1
4
12
3
2
SUMS.OUT
TAK
NIE
TAK
TAK
NIE
TAK
Mt s vn ng ch trong mn tin hc
MOVE.OUT
2
1257634
22
24
30
20
3
29
7 26
6
27
Bi ton:
ng n trng (SCHOOL)
Ngy 27/11 ti l ngy t chc thi hc k I trng H BK. L sinh vin nm th
nht, Hiu khng mun v i mun m gp trc trc phng thi nn chun b kh k
cng. Ch cn li mt cng vic kh gay go l Hiu khng bit i ng no ti trng l
nhanh nht. Thng ngy Hiu khng quan tm ti vn ny lm cho nn by gi Hiu
khng bit phi lm sao c . Bn thnh ph l gm c N nt giao thng v M con
ng ni cc nt giao thng ny. C 2 loi con ng l ng 1 chiu v ng 2
chiu. di ca mi con ng l mt s nguyn dng. Nh Hiu nt giao thng 1
cn trng H BK nt giao thng N. V mt l trnh ng i t nh Hiu ti trng
c th gp nhiu yu t khc nh l gp nhiu n , i qua cng trng xy dng, ...
phi gim tc cho nn Hiu mun bit l c tt c bao nhiu l trnh ngn nht i t
nh ti trng. Bn hy lp trnh gip Hiu gii quyt bi ton kh ny.
D liu: SCHOOL.INP
97
Mt s vn ng ch trong mn tin hc
Kt qu: SCHOOL.OUT
Ghi hai s l di ng i ngn nhn v s lng ng i ngn nht. Bit
rng s lng ng i ngn nht khng vt qu phm v int64 trong pascal hay
long long trong C++.
Gii hn:
1 N 5000
1 M 20000
di cc con ng 32000
V d:
SCHOOL.INP
32
1123
2231
SCHOOL.OUT
41
Bi ton:
Thnh ph trung tm (CENTRE)
Theo thng k cho bit mc tng trng kinh t ca nc Peace trong nm 2006 rt
ng kh quan. C nc c tng cng N thnh ph ln nh c nh s tun t t 1 n
N pht trin kh ng u. Gia N thnh ph ny l mt mng li gm M ng i hai
chiu, mi tuyn ng ni 2 trong N thnh ph sao cho khng c 2 thnh ph no c
ni bi qu 1 tuyn ng. Trong N thnh ph ny th thnh ph 1 v thnh ph N l 2 trung
tm kinh t ln nht nc v h thng ng m bo lun c t nht mt cch i t thnh
ph 1 n thnh ph N.
Tuy nhin,c 2 trung tm ny u c du hiu qu ti v mt dn s. V vy, c
vua Peaceful quyt nh chn ra thm mt thnh ph na u t thnh mt trung tm
kinh t th ba. Thnh ph ny s tm ngng mi hot ng thng nht, cng nh mi
lung lu thng ra vo tin hnh nng cp c s h tng. Nhng trong thi gian sa
cha y, phi bo m ng i ngn nht t thnh ph 1 n thnh ph N khng b thay
i, nu khng nn kinh t quc gia s b tr tr.
V tr v ng ni gia N thnh ph c m t nh mt th N nh M cnh.
Hy gip nh vua m s lng thnh ph c th chn lm trung tm kinh t th ba sao cho
thnh ph c chn tha mn cc iu kin trn
D liu: CENTRE.INP
Dng u tin ghi 2 s nguyn dng N v M l s thnh ph v s tuyn ng.
Dng th i trong s M dng tip theo ghi 3 s nguyn dng xi, yi v di vi
ngha tuyn ng th i c di di v ni gia 2 thnh ph xi, yi.
Output: CENTRE.OUT
Dng u tin ghi s t nhin S l s lng cc thnh ph c th chn lm trung
tm kinh t th ba.
S dng tip theo, mi dng ghi 1 s nguyn dng l s th t ca thnh ph
c chn ( In ra theo th t tng dn )
98
Mt s vn ng ch trong mn tin hc
Gii hn:
2 N 30000
1 M 100000
1 di 1000
V d:
CENTRE.INP
66
121
231
361
1 4 100
4 5 100
5 6 100
CENTRE.OUT
2
4
5
99
Mt s vn ng ch trong mn tin hc
VN : LUNG MINCOST
Bi ton:
Lung cc i vi chi ph nh nht (MINCOST)
Cho mt mng l th c hng n nh, m cung. Mi cung ca mng c mt kh
nng thng qua v mt cc ph vn chuyn nht nh.
Trong thc t c th hnh dung th nh mt mng li vn chuyn hng ha.
Mi cung (u,v) c kh nng thng qua au,v c ngha l lng hng ha thng qua cung
ny khng c vt qu au,v . Mi cung (u,v) c mt cc ph vn chuyn cu,v ngha l
nu vn chuyn k n v hng (k au,v) trn cung ny th mt mt chi ph k*cu,v.
Hy tm mt phng n vn chuyn, ngha l hy xc nh trn mi cung ca
mng cn vn chuyn bao nhiu hng (ph hp vi kh nng thng qua ca mng) sao cho
vn chuyn c lng hng ln nht t ngun (nh s cho trc) v ch (nh t cho
trc) vi tng chi ph vn chuyn l nh nht.
5;2
2
1;4
10;2
6;2
1;2
1;4
3;4
2;4
4
4;1
D liu: MINCOST.INP
Dng u l n, m, s, t : S nh, s cung, nh ngun, nh ch.
m dng tip theo mi bao gm u, v, c, d cho bit c cung (u,v) vi chi ph l c v
kh nng thng qua l a.
Kt qu: MINCOST.OUT
Dng u, ghi lng hng ti a vn chuyn c v tng chi ph vn chuyn.
Mt s dng tip ghi u, v, i cho bit vn chuyn i n v hng t trn cung(u,v).
Gii hn:
n 100
dij 30000
cij 109
Phm vi tnh ton l Longint.
100
Mt s vn ng ch trong mn tin hc
V d:
MINCOST.INP
6916
1 2 10 2
1434
2314
2552
4324
3214
3612
4641
5662
MINCOST.OUT
5 57
121
144
252
321
362
433
461
562
101
Mt s vn ng ch trong mn tin hc
Procedure CloseFile;
begin
close(fi);
close(Fo);
end;
Procedure Enter;
var i,x,y,m:ii;
begin
readln(fi,n,m,s,t);
fillchar(a,sizeof(a),0);
for i:=1 to m do
readln(fi,x,y,c[x,y],a[x,y]);
end;
function Getd(x:ii):ii;
begin
if x>=0 then Getd:=1 else Getd:=-1;
end;
function min(x,y:ii):ii;
begin
if x<y then min:=x else min:=y;
end;
function FindPath:boolean;
{Tm ng tng lung}
{s dng thut tan FORD BELLMAN tm ng tng lung c chi ph t
nht}
var u,v:ii;
stop:boolean;
begin
for v:=1 to n do d[v]:=maxc;
d[s]:=0;
repeat
stop:=true;
for u:=1 to n do
for v:=1 to n do
if a[u,v] - f[u,v] > 0 then
if d[v] > d[u] +
c[u,v]*Getd(f[u,v]) then
{cung (u,v) c trng s c[u,v] nu (u,v)
l cung thun f[u,v] 0}
begin
trace[v]:=u;
d[v] := d[u] + c[u,v]*Getd(f[u,v]);
stop:=false;
end;
until stop;
if d[t]<maxc then FindPath:=true else FindPath:=false;
end;
102
Mt s vn ng ch trong mn tin hc
function findel:ii;
{Tm lng lung c th tng trn ng i chi ph t nht tm c}
var u,v,mi:ii;
begin
v:=t;
mi:=maxc;
while v<>s do
begin
u:=trace[v];
if f[u,v] >= 0 then {Nu (u,v) l cung thun}
mi:=min(mi,a[u,v] - f[u,v])
else {(u,v) l cung nghch}
mi:=min(mi,-f[u,v]);
v:=u;
end;
findel:=mi;
end;
procedure IncFlow;
{tng lung}
var pp,u,v:ii;
begin
pp:=findel;
v:=t;
while v<>s do
begin
u:=trace[v];
inc(f[u,v],pp);
dec(f[v,u],pp);
v:=u;
end;
end;
Procedure Process;
var boo:boolean;
u,v,k,sum:ii;
begin
fillchar(f,sizeof(f),0);
repeat
boo:=FindPath;
if boo then IncFlow else break;
until false;
k:=0;
for v:=1 to n do
if f[s,v]>0 then inc(k,f[s,v]);
sum:=0;
for u:=1 to n do
for v:=1 to n do
if f[u,v]>0 then inc(sum,f[u,v]*c[u,v]);
writeln(fo,k,' ',sum);
for u:=1 to n do
for v:=1 to n do
if f[u,v]>0 then writeln(fo,u,' ',v,' ',f[u,v]);
end;
103
Mt s vn ng ch trong mn tin hc
begin
OpenFile;
Enter;
Process;
CloseFile;
end.
Luyn tp:
Bi ton:
Trao i thng tin (KWAY)
Cho mt mng thng tin gm n trm v m ng ni hai chiu gia cc trm. Trm s l
trm ch huy, trm f l trm iu khin. Sau mt ln b tin tc tn cng ly mt d liu t trm
ch huy chuyn n trm iu khin, ch huy mng quyt nh chia thng tin chuyn i thnh
k n v thng tin chuyn theo k ng n trm iu khin. M hai ng truyn bt
k khng c chung bt k mt ng no.
Hy tm cch truyn k n v thng tin sao cho tng chi ph l nh nht.
D liu: KWAY.INP
Dng u l n, m, k, s, f (n 100).
m dng tip l u, v, c cho bit c ng t u -> v v v -> u vi chi ph l c.
Kt qu: KWAY.OUT
Dng u ghi -1 nu khng th chuyn k n v thng tin theo cch trn, ngc
li ghi chi phi chuyn.
k dng tip ln lt ghi cch chuyn ca tng n v thng tin. S u l s lng
trm trn ng truyn, tip l dy cc trm trn ng truyn (bt u t s,
kt thc f)
Ch : Phm vi tnh ton l Longint.
V d:
KWAY.INP
8 11 3 1 8
121
141
151
2 3 1
2 4 1
2 7 1
3 8 1
3 6 1
3 5 1
6 8 1
781
KWAY.OUT
11
41238
515368
514278
104
Mt s vn ng ch trong mn tin hc
Gii hn
1.5e-45..3.4e38
2.9e-39..1.7e38
5.0e-324..1.7e308
3.4e-4932..1.1e4932
Ch s c ngha
7-8
11-12
15-16
19-20
Khai bo an thng
Type Line=record
P1,p2:point
End;
d:StrLine);
105
Mt s vn ng ch trong mn tin hc
(xx) +(yy)
1
2
1
2
Khong cch gia im (x0,y0) v ng thng ax + by + c = 0 l:
ax + by + c
d= 0 2 0 2
a +b
Gc gia 2 ng thng a1x + b1y + c1 = 0 v a2x + b2y + c2 = 0 l
a a +bb
1
2
1 2
cos =
2
2
2
2
a +b
a + b
1
min( y , y ) y max( y , y )
0
D
x
Dy
D
o Nu D = 0 th
D
- Nu Dx 0 hay Dy 0 th hai ng thng song song vi nhau
- Nu Dx = Dy = 0 th hai ng thng trng nhau
6. Giao im.
Hai an thng A1A2 v B1B2 ct nhau ti im khng phi l u mt khi v
ch khi:
- A1 v A2 khc pha so vi B1B2
- B1 v B2 khc pha so vi A1A2
D Dy
Hai ng thng ctt nhau khi D 0, giao im l ( x 0 , y 0 ) =
; )
x
D
(
D
106
Mt s vn ng ch trong mn tin hc
7. Hm r phi, r tri.
B
C
B
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Bi Ton : <ngun
spoj.pl/problems/TRT>
INPUT
Dng th nht : Mt s t nhin N duy nht.
Dng th 2 n N+1 : Dng th i cha gi tr ca V(i)
---------------------------------------------------------------------------------------------------------------------------109
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------OUTPUT
Mt s duy nht l gi tr ln nht m FJ thu c t vic bn bnh.
Sample :
Input:
5
1
3
1
5
2
Output:
43
Thut Ton : QH :
F[i,j] l s tin ln nht thu c ca on i -> j.
D thy s tui ca mi bnh 2 u lc l n - (j - i) = T
F[i,j] = Max(F[i,j - 1] + V[j] * T , F[i - 1,j] + V[i] * T).
C th ci tin thnh mng 1 chiu.
KQ : F[1,N]
Bi Ton LSFIGHT
< ngunhttp://vn.spoj.pl/problems/LSFIGHT/>
Trong k thi Marathon 08 nm nay cc vCoders phi tham gia mt mn thi u i khng gia 2
ngi. Sau vng loi, ban t chc s chn ra N th sinh c s im cao nht v nh s t 1 n N.
---------------------------------------------------------------------------------------------------------------------------110
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------Cc th sinh ny phi xp ln lt theo th t thnh 1 vng trn (ngi th N ng cnh ngi th
1). Sau s chn ra 2 th sinh bt k ang ng cnh nhau trong vng trn thi u, th sinh no
thua s b loi v buc phi i ra vng trn, tr v hng gh khn gi. Cuc u c tip tc nh th
n khi ch cn mt ngi li v cng chnh l ngi thng cuc.
Tuy nhin ban t chc mun bit trc xem c bao nhiu ngi c kh nng thng cuc v l
nhng ngi no. Bit trc ai s thng trong mi trn u, bn hy gip ban t chc nh ^^
D liu
- Dng u l s nguyn dng N (3 <= N <= 500)
- N dng sau l ma trn A[i, j], A[i, j] = 0 nu th sinh i thua th sinh j v A[i, j] = 1 nu ngc li.
Bit rng lun m bo A[i, i]=1 vi mi i v A[i, j] + A[j, i] = 1 vi i <> j. Cc s vit cch nhau
t nht 1 du cch.
Kt qu
- Dng u l s nguyn dng M - s lng th sinh c kh nng thng cuc
- M dng sau mi dng ghi mt s l ch s ca th sinh c kh nng thng cuc theo th t tng
dn ca ch s.
V d
D liu
7
1111101
0101100
0111111
0001101
0000101
1101111
0100001
Kt qu
3
1
3
6
Thut Ton :
Quy hoch ng
F(i, j) = true nu c th tn ti cch u sao cho cc i th gia i v j u b loi (tnh theo chiu
---------------------------------------------------------------------------------------------------------------------------111
Mt s vn ng ch trong mn tin hc
Bi Ton : OPTCUT
< Ngun http://vn.spoj.pl/problems/OPTCUT/>
Bn cn cht mt thanh g ra thnh n on, mi on c di ai. Cc on c cht phi c
di theo ng th t a1, a2, ..., an t tri sang phi.
Ti mi bc, bn c th cht mt nht chia mt thanh g lm hai, v chi ph cho nht cht ny
bng di ca thanh g trc khi cht.
Th t cht khc nhau s cho ra tng chi ph khc nhau khi cht thanh g thnh n on yu cu.
V d bn cn cht mt thanh g di 20 ra thnh 4 on di 3, 5, 2 v 10 theo th t.
Khi cht t tri sang phi:
20 cht thnh 3 v 17, chi ph 20.
17 cht thnh 5 v 12, chi ph 17.
12 cht thnh 2 v 10, chi ph 12.
Tng chi ph: 49
Khi cht t phi sang tri:
20 cht thnh 10 v 10, chi ph 20.
10 cht thnh 8 v 2, chi ph 10.
8 cht thnh 3 v 5, chi ph 8.
Tng chi ph: 38
Bn hy tm cch cht c tng chi ph nh nht.
D liu
---------------------------------------------------------------------------------------------------------------------------112
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------Dng 1: n (1 n 2000)
Dng 2: n s nguyn dng a1, a2, ..., an, bit rng di ca thanh g a1+a2+...+an 500000
Kt qu
Mt s vn ng ch trong mn tin hc
Output
D liu ra gm 1 dng duy nht ghi ra s ng tin vng ln nht c th v vt c.
Example
Input:
5
8
6
2
4
2
Output:10
Gii thch: u tin pirate chia m vng thnh 2 phn [1,2] v [3,4,5]. Xe i s san lp phn [1,2]
v pirate nhn c p_2 + p_3 + p_4 = 8 ng tin vng. Tip theo chia [3,4,5] thnh [3] v [4,5].
Xe i san lp [4,5] v pirate thu thm p_2 = 2 ng tin vng. Cng vic kt thc v ch cn 1 m,
vy tng cng thu c l 8 + 2 = 10 ng tin vng. Khng c cch no gip hn thu thm tin.
Luyn tp .
Bi Ton :NKPOLY < ngun http://vn.spoj.pl/problems/NKPOLY/>
c vua vng quc XYZ t chc kn r cho c cng cha duy nht ca mnh. V vy, ng t ra
nhng yu cu rt cao cho con r tng lai. c th tr thnh con r ca ngi, cc chng trai thi
nhau th hin mnh. Sau khi vt qua nhng phn thi i hi sc kho, lng dng cm, h s
gp phi mt th thch v cng kh khn, l phn thi v s nhanh nhy v thng minh. c
vua s cho mi ngi mt ming ba cho bt k khng c im chung khc cc u mt. Vi cch
v nh vy, chng ta s thu c N-2 hnh tam gic. c vua yu cu h hy tm 2 cch chia:
Mt cch chia sao cho tam gic c din tch ln nht trong N-2 tam gic l ln nht.
Mt cch chia sao cho tam gic c din tch ln nht trong N-2 tam gic l nh nht.
---------------------------------------------------------------------------------------------------------------------------114
Mt s vn ng ch trong mn tin hc
Kt qa
Dng th nht ghi din tch ca tam gic ln nht trong trng hp 1.
Dng th hai ghi din tch ca tam gic ln nht trong trng hp 2.
V d
D liu:
5
00
02
14
22
20
Kt qa
4.0
2.0
---------------------------------------------------------------------------------------------------------------------------115
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Hnh bn l 1 cy trie tng ng cho cc t "A", "to", "tea", "ted", "ten", "i", "in", and "inn".
Mt s bi tp ng dng
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------vt qu 250000 k t.
Kt qu
In ra mt s duy nht l di ca chui t di nht xy dng c t cc t trong tp cho.
V d
D liu
3
a
ab
abc
Kt qu
3
D liu
5
a
ab
bc
bcd
add
Kt qu
2
Thut Ton : Bi CHAIN2 em dng Trie cho cc t, sau ch cn QH trn Trie tm nhnh
c nhiu nt l kt thc ca cc t nhts. Code tham kho :
uses math;
const
FINP
FOUT
'';
'';
type
trie
node
^node;
record
u,f
longint;
array['a'..'z'] of trie;
end;
---------------------------------------------------------------------------------------------------------------------------117
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
var
f1,f2
text;
root
trie;
string;
procedure openF;
begin
assign(f1,FINP); reset(f1);
assign(f2,FOUT); rewrite(f2);
end;
procedure closeF;
begin
close(f1);
close(f2);
end;
---------------------------------------------------------------------------------------------------------------------------118
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------procedure inp;
var
n,i:longint;
p:trie;
begin
readln(f1,n);
add(root);
for n:=1 to n do
begin
readln(f1,s); p:=root;
for i:=1 to length(s) do
begin
if p^.c[s[i]]=nil then add(p^.c[s[i]]);
p:=p^.c[s[i]];
end;
p^.u:=1;
end;
end;
---------------------------------------------------------------------------------------------------------------------------119
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------a^.f:=max(a^.f,a^.c[c]^.f+a^.u);
end;
end;
procedure solve;
begin
dfs(root);
writeln(f2,root^.f);
end;
begin
openF;
inp;
solve;
closeF;
end.
Mt s vn ng ch trong mn tin hc
nhau bi du cch.
V D
45
3010
11
3100
3110
10
11
201
501001
211
GII THCH V D
C 4 tin nhn v 5 t m ha. Cc tin nhn thu c c phn u l 010, 1, 100 v 110. Cc t m
ha c phn u l 0, 1, 01, 01001, v 11.
QUY CCH GHI KT QU
Dng 1..M: Dng j: S lng tin nhn m c kh nng l t m ha th j
V D
1
3
1
1
2
GII THCH
0 ch c kh nng l 010 -> 1 tin nhn. 1 ch c kh nng l 1, 100, hoc 110 -> 3 tin nhn. 01 ch
c th l 010 -> 1 tin nhn. 01001 ch c th l 010 -> 1 tin nhn. 11 ch c th l 1 hoc 110 -> 2
tin nhn.
Bi Ton
NPR
(y l mt bi cc bn luyn tp v Trie )
---------------------------------------------------------------------------------------------------------------------------121
Mt s vn ng ch trong mn tin hc
Ch
Mt tin t ca mt t l mt chui c th thu c bng cch lp li vic xo k t cui cng ca
t. Tng t, mt hu t ca mt t l mt chui m c th thu c bng cch lp li vic xo k
t u tin ca t.
V d vi t: different.
T ny va l tin t, va l hu t ca chnh n. mt tin t di nht khc ca n differen, v mt
hu t di nht khc ca n l ifferent. Chui rent cng l mt hu t khc nhng ngn hn. Chui
eent v iffe u khng phi l tin t hay hu t ca t different.
Gi u v v l 2 t khc nhau. Ta ni rng u c th t t in nh hn v nu hoc u l mt tin t
ca v, hoc nu i l v tr u tin m chng khc nhau, v k t th i ca u ng trc k t th i
ca v trong bng ch ci.
V d, dog nh hn dogs, t ny li nh hn dragon (V o nh hn r).
D liu
C 2 phn. Phn th nht cha danh sch t L, mi t trn 1 dng. Mi t ch cha cc ch ci
thng ting Anh v khng c 2 no t ging nhau.
Phn th nht kt thc bng mt dng trng.
Tip theo l phn 2, vi mi cu hi cho t w trn mt dng.
Bn c th chc chn rng trong c 2 phn ca d liu vo, di ca mi t khng qu 30. V s
lng t trong mi phn khng qu 250000.
Kt qu
Vi mi cu hi, vit ra trn mt dng t m to thnh vn hon ho vi n. Kt qu phi vit bng
ch ci thng.
---------------------------------------------------------------------------------------------------------------------------122
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------V d
D liu
perfect
rhyme
crime
time
crime
rhyme
Kt qu
time
crime
Trong cu hi th 2, c 2 t c cng di hu t vi rhyme (l crime v time), t c th t t
in nh hn c chn.
Bi tp v d.
---------------------------------------------------------------------------------------------------------------------------123
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------Duyt phn 2, vi mi vc t tng (x, y) duyt c ca phn 2, tm xem c bao nhiu vc t tng
ng (U-x, V-y) trong phn 1. Ta c th tm bng chia nh phn.
phc tp O(2^(N / 2) * (N / 2))
B nh O(2^(N / 2))
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------Case #1: -1
Case #2: 2
Case #3: 2
Case #4: -1
Gi : Bi tp ny c nhiu im ging vi bi VECTOR , nhng do d liu bi nn ta s chia
cc ng xu cho thnh 2 phn .
Phn 1 : cc ng xu th 1,220.
Phn 2: cc ng xu th 21,22,34
Duyt phn 1 , c 2^20 tng , ta lu s ng tin nhiu nht t c
Mi tng vo mng F. Duyt phn : duyt tt c cc tng , vi mi tng sinh ra , gi l S , vi
mi test , ta tm s ng xu nhiu nht phn 1 m tng gi tr ca chng l (X-S). t tm c
kt qu .
Mt s vn ng ch trong mn tin hc
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------Input
Dng u cha s nguyn N
Dng tip theo cha N s : s th i l tin cy ca ngi th i
Output
Ghi ra hai s u v v vi u l chnh lch nh nht v v l s cch phn chia
Example
Input:
5
15678
Output:
13
Ch thch : chnh lch t nht ca 2 phn l 1
C 3 cch phn chia .3 cch phn chia nhm 1 l (3,5) ,(1,3,4) v (1,2,5)
---------------------------------------------------------------------------------------------------------------------------128
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Ch : Mt S Bi Ton V Cy Khung
Vi cc bi ton v cy khung , ta thng gp 2 dng bi ch yu , l cc bi ton c lien quan
n Cy khung nh nht , v cc bi ton c lin quan n cy khung ln nht .
Hai thut ton thng c s dung l PRIM v KRUSCAL ( bn c c th tham kho trong ti
liu ca thy L Minh Hong hoc H S m, xin ko nhc li l thuyt y)
Cc bi tp.
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------231
132
242
141
342
172
Output:
0
0
1
0
1
0
Gii hn
1 N 10000
1 P 50000
---------------------------------------------------------------------------------------------------------------------------130
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------131
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
D liu
Dng u tin cha 2 s nguyn n, m ( 1 n 10000, 1 m 100000) l s nt giao thng v s
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------454
564
633
523
Kt qa
6
Gi : Ta S Tm cy khung ln nht ca th (thut ton tng t thut ton tm cy khung nh
nht nhng sort cc canh ngc li),
tng trng s ca cc cnh khng thuc cy khung ln nht s l kt qu bi ton.
Vi d liu bi , thut ton tm cy khung ln nht s l kruskal.
Bi 3 S Mng in
Mt cng ty n thay th ton b h thng dy in mc ni tip gia N phng lm vic.Cho bit s
Mng li in hin c ca N cn phng c biu din bi ma trn A[i,j] trong A[i,j] chnh
l di dy in ni gia hau cn phng i,j.Nu ko c dy in th gia 2 phng (i,j) th A[i,j] =0
v a[j,i]=0. Hin ti N phng u c dy in ni n h thng nhng h thng ng dy ny qu
nhiu. Hy tnh
tng di t nht ca dy dn cn s dng sao cho c N phng u c in.
D liu vo cho trong file SD.INP
+ dng u tin l s N
+ N dng sau m t ma trn A(n,n) , mi dng n s cch nhau 1 du cch.
Kt qu ghi ra file SD.OUT
---------------------------------------------------------------------------------------------------------------------------133
Mt s vn ng ch trong mn tin hc
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------ nu.
D liu
Dng cha s N v M (1 N 1000; 1 M 10000).
M tip theo, mi dng cha ba s nguyn u, v v t cho bit c th xy dng tuyn ng ni gia
trng im u v trng im v trong thi gian t. Khng c hai tuyn ng no ni cng mt cp
trng im.
Kt qu
Mt s nguyn duy nht l thi gian sm nht hon thnh cc tuyn ng tha mn yu cu
nu.
V d
D liu
57
122
151
251
143
132
532
344
Kt qu
3
Gi : Xy dng cy khung theo thut ton KRUSKAL , sort cc cnh theo th t t b n ln ,
cho n khi np N thnh ph vo cy khung Th kt qu l cnh ln nht trong cch cnh trong
cy khung va tm c (ni cch khc l cnh cui cng c kt np vo Cy khung tr khi
tt c N thnh ph c np vo cy khung).
---------------------------------------------------------------------------------------------------------------------------135
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Trong thc t , ta thng gp dng bi ton tm thi im kt thc sm nht (hay mun nht) ca
mt cng vic , hay tm chi ph b nht (hay ln nht) , vi cc yu cu rang buc trong bi.
Khi ta c 1 thut ton rt hiu qu , l cht nh phn . N c m t nh sau.
Yu cu : Cn tm gi tr V tha mn yu cu bi.
Thut ton c m t nh sau : {V d sau m t vic tm V sao cho V min}
Output
Gm mt s nguyn duy nht l p s ca bi ton
Example
Input:
5
21435
Output:
3
---------------------------------------------------------------------------------------------------------------------------136
Mt s vn ng ch trong mn tin hc
Res:=1; H[1]:=1;
For i:=2 to n do
Begin
If A[i] < a[h[1]] then h[1]:=i
else if a[i] > a[h[res]] then
Begin
Inc(Res); H[res]:=i;
End
else
Begin
d:=1; c:=Res;
While d<>c do
begin
mid:=(d+c+1) div 2;
If A[i] > a[h[mid]] then d:=mid else c:=mid-1;
End;
Mid:=(d+c) div 2;
If (A[h[mid]] < a[i]) and (a[i]<a[h[mid+1]]) then
h[mid+1]:=i;
End;
End;
WRiteln(fo,Res);
Bi ton : ASSIGN1(https://vn.spoj.pl/problems/ASSIGN1/)
C n ngi, n vic (1 < n 200). Ngi th i thc hin cng vic j mt C[i,j] n v thi
gian. Gi s tt c bt u vo thi im 0, hy tm cch b tr mi cng vic cho mi
ngi sao cho thi im hon thnh cng vic l sm nht c th.
Input
- Dng u: N
- Tip theo l ma trn C[i,j]. (thuc kiu Integer)
---------------------------------------------------------------------------------------------------------------------------137
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Output
- Ghi thi im sm nht hon thnh.
Example
Input:
4
10 10 10 2
10 10 3 10
4 10 10 10
10 5 10 10
Output:
5
Gi : Cht nh phn thi m kt thc sm nht . vi mi gi tr ang xt , kim tra xem liu c
tn ti Mt cch ghp N th vi N vic hay ko.(S dng kin thc p ghp)
Bi ton : YUGI(https://vn.spoj.pl/problems/YUGI/)
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------Input
Dng u l 2 s N,K(2 K N 200)
N dng tip theo mi dng l N s a(i,j) (a(i,j) 32767; nu i = j th a(i,j) = 0)
Output
Gm 1 dng duy nht l S ln nht
Example
Input:
43
0123
1023
2203
3330
Output:
2
Gi : Cht nh phn , vi mi gi tr V(sc mnh) ang xt , nhm tt c cc qun bi (i,j) thnh 1
nhm nu
+ I # j.
+ a[i,j] <= V.
phn nhm c th s dng BFS.
Kim tra xem liu s nhm cn thit c gi tr V l bao nhiu ? Nh hn K hay ln hn K , t
gim dn khong cn xt .
bi ton : MTWALK(https://vn.spoj.pl/problems/MTWALK)
Cho mt bn kch thc NxN (2 <= N <= 100), mi mang gi tr l cao ca (0 <=
cao <= 110). Bc John v b Bessie ang trn tri (dng 1, ct 1) v mun i n cabin (dng
N, ct N). H c th i sang phi, tri, ln trn v xung di nhng khng th i theo ng
cho. Hy gip bc John v b Bessie tm ng i sao cho chnh lch gia im cao nht v thp
nht trn ng i l nh nht.
---------------------------------------------------------------------------------------------------------------------------139
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------D liu
Dng 1: N
Dng 2..N+1: Mi dng cha N s nguyn, mi s cho bit cao ca mt .
Kt qu
Mt s nguyn l chnh lch cao nh nht.
V d
D liu
5
11368
12255
44033
80234
43021
Kt qu
2
Gi : Ta c nhn xt cc gi tr cao nm trong khong [1,110] , v th ta c thut ton cht nh
phn nh sau :
Gi s ta ang xt gi tr V ( Chnh lch chiu cao)
- V chnh lch ti u ang xt l V , suy ra nu gi tr chi cao nh nht trong ng i tm
c l Min , th gi tr chiu cao ln nht phi nh hn hoc bng Max = Min + V.
- Do chiu cao cc <=110, nn vic th ln lut cc gi tr di (gi tr Min) c th chy trong
thi gian cho php .
-Vi mi gi tr V , ta loang tm 1 ng i tha mn 2 iu kin trn. phc tp M log M * N^2
( M l gi tr)
---------------------------------------------------------------------------------------------------------------------------140
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Bi ton xp lch cng vic l mt trng nhng bi ton ph bin nht trong thc t : xp lch thi
u, xp lch thi cng cng trnh ,xp lch sa cha my, xp lch hc tp
Yu cu ch yu ca bi ton lp lch l tm ra phng n ti u nht ph hp vi d liu trong
thi gian cho php.Cc phng php ch yu gii quyt bi ton lp lch ch yu l : sp xp
topo, thut ton Johnson, phng php heuritic,duyt c t cn , qhi hoch ng ,s dng lung
v th hai pha ..
Chng ta s cp n tng thut ton qua cc bi ton di y.
Phng php 1:
Duyt c t cn
Vic quan trong nht trong phng php ny chnh l tm cn. Vic tm cn hp l vi thi gian
cho php ta c th tm c kt qu tng i ti u.
c im ca phng php ny l thng sp xp d liu theo mt kha no thut li cho
vic duyt tm kt qu.
Bi ton 1:
Cho n cng vic , vi mi cng vic cho bit s tin thu Ci c khi
hon thnh , thi gian Ti thc hin cng vic, thi im Ri ti a kt thc. Hy xp lch thc
hin cng vic ti u.
D Liu: XL01.INP :
- Dng u l s n
- N dng sau l 3 s nguyn Ti , Ri, Ci.
Kt qu : XL01OUT :
---------------------------------------------------------------------------------------------------------------------------141
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
329
14 9
5 0 1 25
5 8 86
1 1 2 89
4 11 83
3 2 6 83
5 7 84
6 6 9 61
1 2 25
10 9 14
71
3 11 61
6 11 33
4 7 28
3 10 1
5 14 71
Hng dn :
Sp xp cc cng vic theo th t tng ca thi im kt thc.
Chng ta s duyt vi cn : Tng tin thu c khi thc hin thm cng vic th k + tng tin
cc cng vic cn li > kt qu ti u c .
Xy dng mt stack gm 4 trng: s hiu cng vic ti nh, thi gian bt u,kt thc, tin cng.
Nu tng tin > kt qu ti u th cp nht.
Gi s thc hin cng vic th k : np k vo stack,ta tnh s tin ca cc cng vic cn li = (tng
s tin cc cng vic cha thc hin s tin ca cc cng vic khng th thc hin c nu thc
hin cng vic k).
Nu tng tin + tin cn li > kt qu ti u th duyt tip ngc li g k ra khi stack v sa li
gi tr tin cn li .
---------------------------------------------------------------------------------------------------------------------------142
Mt s vn ng ch trong mn tin hc
Bi ton 2:
C N cng vic , mi cng vic thc hin trn mt trong 2 my A hoc B. Thi
gian thc hin trn my A l A[i],trn my B l B[i]. Hy thc hin hon tt cc cng vic sao cho
thi gian hon thnh l sm nht.
D Liu: XL02.INP
- Dng u l s N.
- N dng sau l mi dng l 2 s a[i],b[i].
Kt qu: XL02.OUT
- Dng u l thi gian hon thnh cng vic
- Dng th 2 l cc cng vic hon thnh trn my A
- Dng th 3 l cc cng vic hon thnh trn my B
Hng dn :
Xy dng mng mt chiu rest[i]= tng(min(a[k],b[k]) vi k=i+1..n vi ngha rest[i] l thi
gian t nht cn c thc hin cc cng vic cn li l i+1..n.
Gi s lm xong cng vic k, thi lm trn my A l sumA, thi gian lm trn my B l
sumB th iu kin c th chn cng vic k l :
(sumA+sumB+res[k+1])/2<lsum vi lsum l kt qu ti u c.
Chng minh: Gi thi gian lm ht cc cng vic cn li l T th T>=res[k+1],thi gian cn lm
trn my A l TA, thi gian cn lm trn my B k TB th T=TA+TB.Hai ln thi gian thc hin
cc cng vic l :
sumA+sumB+tA+tB=sumA+sumB+T>=sumA+sumB+res[k+1] => pcm.
Bi ton 3: Cho n cng vic cn c lm trn M my.Thi gian hon thnh cng vici l
t[i].Mi cng vic phi thc hin lin tc trn mt my. Mi my J khng th hot ng lin tc
qu Q[j] gi (1<=j<=M),nu mun my j hot ng tr li th phi cho n ngh R[j] gi. Tm thi
gian nh nht hon thnh N cng vic trn M my.
D liu: XL03.INP gm :
-
Mt s vn ng ch trong mn tin hc
XL03.OUT
10 3
14
1 2 3 4
5 4 3 4
5 3
8 04 65
9 4 10 14
4 3 8
1 1 2
10 0 3 7
4 7 3 8
11 2 12
14
1 01 91
6 5 8 13
Hng dn:
Duyt theo cng vic. To mt phng n n gin ban u vi thi gian thc hin xong N cng
vic l ltg lm cn ngay khi duyt phng n tip theo . Khi xy dng mt phng n nu
duyt xong k-1 cng vic ,tip tc chn mt my lm cng vic th k m thy thi gian lm cc
cng vic l t 1 n k l tg >ltg th khng thc hin tip phng n ny na. iu kin chn
my j nhn cng vic k l : thi gin lm cng vic k phi khng vt qu thi cho php lm lin
tc ca my j u tin chon nhng my I no va thc hin xong sm nht cng vic nay trc k
mt khc my I phi l my thc hin cng vic k tt nht ( khng c my no thc hin xng cng
vic k sm hn n). m bo thi gian chy cn t cn thi gian.
Bi ton 4:
Mt s vn ng ch trong mn tin hc
- Dng u l s kha hc
- Dng sau l s hiu cc kha hc.
V D:
XL04.INP
XL04.OUT
4 3
0 0 1
2 3
1 0 0
0 1 1
1 0 0
Hng dn:
Bi ton 5:
Robot qut vi
---------------------------------------------------------------------------------------------------------------------------145
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
D liu : XL05.INP
XL05.OUT
159
2455688
123
21
357
147
532
---------------------------------------------------------------------------------------------------------------------------146
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------369
456
789
258
XTVVXVTXT
Hng dn :
Duyt quy theo s ln qut lin tc ca 1 robot.
Nhn xt:
- mi robot ch c th gi lin tc 0 n 2 lt
- Nu m ha cc k t T l 0,X l 1 ,V l 2 .Mu mi phng s tr thnh mu trng khi s hiu
mu hin ti ca n + s lt phng c qut vi l 1 s chia ht cho 3.
T c th d dng gii quyt c bi ton ny.
Bi ton 6:
Xp vali
D liu: XL06.INP
- Dng th nht l 2 s N v W
- N dng tip theo : Dng i+1 ghi 2 s A[i],C[i].
Kt qu: XL06.OUT
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
XL06.INP
XL06.OUT
4 100
110
50 50
2 1
19 20
3 1
80 90
21 25
Hng dn :
---------------------------------------------------------------------------------------------------------------------------148
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Trong cc vi ton lp lch xut hin mt lp bi ton NP l nhng bi ton khng c thut gii tt
trong thi gian cho php. Chnh v vy vn t ra l tin gn st n kt qu ti u cng gn
cng tt . Vic on nhn iu kin thch hp (heuristic) l rt quan trng t c kt qu gn
st ti u.
Cc heuritics thng l sp xp d liu theo mt kha no , vi mi kiu sp xp tin hnh duyt
tham lam c kt qu ti u nht c th
Bi ton 7:
Cho N cng vic , cng vic I hon thnh trong thi gian t[i]. Cc cng vic c thc hin trn
M my cng sut nh nhau, mi my u c th thc hink c cng vic bt k trong N vic)
mi cng vic c lm lin tc trn mt my cho n khi xong .Hy t chc my thc hin N
cng vic sao cho thi gian hon thnh cng nh cng tt.
D liu: XL07.INP
M dng sau dng i+1 ghi cc s hiu cng vic thc hin trn my i
---------------------------------------------------------------------------------------------------------------------------149
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------V d:
XL08.INP
XL08.OUT
6 3
2 5 8 1
5 1
3
2
5 6
Hng dn:
Bi ton 8:
ng gi
Mt s vn ng ch trong mn tin hc
XL08.INP
XL08.O
UT
5 5
3 3 2 2
2
1 3
2 4
5
Hng dn:
Cch 1:
Heuristic 1 : Sp gim theo kch thc vt
- Theo th t ln lt cho xp vo gi. Mt gi tip tc nhn thm vt nu tng kch thc cc
vt trong n v d vt mi nhn cn cha vt qu Vo
- Nu mt my no khng th nhn tip cng vic th tng s my thm 1.
Heuristic 2: Tng t heuristic 1 nhng mi ln chn gi cn trng nhiu nht.Nu khng cn gi
no gi c na th tng thm 1 gi mi.
Cch 2:
Nhn xt s my lun <=s vt tc l M<=N
Cho nn ta c th cht nh phn gi tr ca M.Vi mi gi tr ang xt ta s tnh kch thc ln
nht .
---------------------------------------------------------------------------------------------------------------------------151
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Bi ton 9:
- Dng u l s N 100
- N dng sau : dng i+1 gm 2 s ,s th nht l thi hn cui cng phi np,s th 2 l tin thu lao
c hng nu np ng hn
Kt qu: XL09.OUT
- Dng u ghi hai s : tng tin thng v thi gian lm cc cng vic chn
- Cc dng sau l th t thc hin cc cng vic
V d:
XL09.INP
XL09
.OUT
10
111
7
4 4
5 1
2 21
3 5
12 27
5
24
2 18
8
3
10
7
9
2
5
---------------------------------------------------------------------------------------------------------------------------152
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------5 6
4 14
Hng dn:
Bc 1: Sp gim theo tin thng cng vic
Bc 2 : Ln lt ly cc cng vic sp xp a vo trc thi gian phn b cng vic theo
cch sau:
- T thi im kt thc mi cng vic I lui v 1 n v thi gian c on thi gian thc hin cng
vic i.Nu trn trc cn trng on ny th xc nhn on thi gian ny thc hin cng vic i.
- Nu on ny b tr cng vic khc th li n v pha gc mt v xp vo 1 on cn trng
- Nu khng c on cn trng no th b cng vic I xp cng vic khc
- Cui cng di cc on v pha gc thu c thi gian thc hin t nht
---------------------------------------------------------------------------------------------------------------------------153
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Phng php 3:
- Dng u l s N ( N<=10000).
- Dng th 2 gm n s A[i]
- Dng th 3 gm n s B[i]
Kt qu: XL07.OUT :
XL11.INP
XL11.OUT
26
3 3
1 4 2 5
3
4 3
6 2
5 7
6 3
---------------------------------------------------------------------------------------------------------------------------154
Mt s vn ng ch trong mn tin hc
Mt s vn ng ch trong mn tin hc
Kt qu
Dng u tin ghi s lng cng vic b hon thnh tr hn theo trnh t tm c.
Dng tip theo ghi n s nguyn dng l ch s ca cc cng vic theo trnh t thc hin tm c.
V d
D liu
6
241231
356678
Kt qu
2
134625
---------------------------------------------------------------------------------------------------------------------------156
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
D liu: XL14.INP
- Dng u ghi s nguyn dng N (N<100001).
- Dng th hai ghi N s nguyn dng P1,P2,,PN.
- Dng th ba ghi N s nguyn dng D1,D2,,DN.
- Dng th t ghi N s nguyn dng H1,H2,,HN.
Kt qu: XL14.OUT
- Dng u l s gi tr thng pht tm c.
- Dng th hai ghi N s nguyn dng l trnh t thc hin cng vic.
XL11.INP
XL11.OUT
-17
1 2 3 4
1 2 3 4
3 2 1 3
1 2 1 2
---------------------------------------------------------------------------------------------------------------------------157
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------XL11.INP
XL11.OUT
2 2 3
4 3
2 5 3 1 4
3 2 10
11 9
1 2 2
1 3
Hng dn: Gi V[1],V[2]V[N] l th thc hin cc cng vic.Gi gi tr thc hin thng pht
ca cng vic V[i] l Qv[i] v gi s cng vic V[k-1] kt thc ti thi im t th tng gi tr thng
pht l :
i-1
k=i+2
Khi tro th t hai cng vic V[i] v V[i+1] th tng gi tr thng pht ca N cng vic l :
i-1
k=i+2
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Bi ton 15:
Kt qu: XL15.OUT
mt s duy nht l gi tr nh nht tm c.
V d:
XL15.INP
XL15.OUT
---------------------------------------------------------------------------------------------------------------------------159
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------2
30
10 10
9000 10
XL15.INP
XL15.OUT
47
14 23 0
5
14 0
1000
9500 14
Hng dn:
Gi H l tp hp cc cng vic lm .C[H] l chi ph nh nht hon thnh H.Do s cc tp con
ca tp N cong vic l 2^N,N15 nn c th dng mt s nguyn 2 byte i din cho mt tp
con. Trong s nguyn ny ,bit th I ca n bng 1 ngha l cng vic I hon thnh ,ngc li bit
th i=0 ngha l cha hon thnh.Ta c th dng nht k hiu h l s nguyn tng ng vi tp H
ni trn .
Thc hin QH theo s h tng dn t 1 n 2^N -1:
- Khi tr C[h]=0 vi mi h=0..2^N-1.Ring C[2i-1]=s[i,i] v tp cng vic H tng ng vi h=2i-1
ch c mt cng vic duy nht l i.
- Gi s xt n s h , ln lt xt cc bt I l bt 1 t phi qua tri: Nu b bt I trong s h ( cho
bt i=0) ta c s k th :
C[h]=Min{C[k]+s[i,i]+s[j,i] j l s hiu cc bit 1 trong s k}
T ta s c c kt qu.
---------------------------------------------------------------------------------------------------------------------------160
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Yu cu: hy gip nh trng chn cc yu cu s dng hi trng sao cho tng thi gian
hi trng c s dng l ln nht.
D liu
Dng u tin cha mt s nguyn dng n (n 10000), s yu cu.
Mi dng trong s n dng tip theo cha 2 s nguyn dng p v k (0 p < k 30000), m t mt
yu cu bt u ti thi im p v kt thc ti thi im k.
Kt qa
Gm mt dng duy nht l tng thi gian ln nht m hi trng c s dng
V d
XL16.INP
XL16.OUT
12
12
1 2
3 5
0 4
6 8
7 13
4 6
9 10
9 12
11 14
15 19
14 16
18 20
---------------------------------------------------------------------------------------------------------------------------161
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------Hng dn:
- Sp xp cc cng vic theo tng dn ca thi im kt thc.
- S dng mng T[i] i=0...30001 l s hiu ca cng vic cui cng c thi im kt thc l i.
- S dng mng F[i] i=030001 vi ngha tnh n thi im I my thc hin c F[i]
gi.Ban u khi to bng 0.
- Gi D[i],C[i] ln lt l thi im bt u v kt thc ca cng vic i.
Ta QHD nh sau:
For i=130001 {xt cc thi im}
Begin
F[i]=Max(F[i-1],F[D[k]]+C[k]-D[k]) vi k l s hiu cc cng vic c C[k]=i.
End.
F[30001] l kt qu ca bi ton.
Bi ton 17: Dch bnh l mm long mng ang honh hnh v lo lng n b b bnh nn Farmer
John bn r tt c s b v quyt nh i ngh. Ly ton b s tin bn b farmer John m mt
ca hng cho thu my cy. Ti thi im 0 ,ng John nhn c n t hng thu s dng my
cy ca N khch hng .Cc khch hng c nh s t 1 n N.Khch hng I cn s dng my t
thi im Di n thi im Ci (Di,Ci l cc s nguyn v 0<Di<Ci<10^9) v s tr tin s dng my
l Pi( Pi<10^7).Hai n t hng I v J c nhn nu khong thi gian c nhn nu thi gian s
dng khng giao nhau. V mi bc vo ngh nn Farmer John khng bit nn nhn nhng n
no thu c li nhun ln nht,l mt lp trnh vin bn hy gip ng y tnh xem li nhun
ln nht l bao nhiu v danh sch cc n t hng c nhn.
D liu:
XL17.INP
- Dng u l s N (0<N1000)
- Dng th i+1 trong N dng sau l 3 s Di,Ci,Pi.
Kt qu:
XL17.OUT
- Dng u gm 2 s : s n t hng c nhn v tng tin cng thu c.
- Dng th 2 ghi s hiu ca cc n t hng c nhn.
---------------------------------------------------------------------------------------------------------------------------162
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------XL17.INP
XL17.OUT
2 180
150
150
500
1
100
200
400
80
800
2 3
XL17.INP
XL17.OUT
2 1100
400 821
800
2 4
200 513
500
100 325
200
600 900
600
Hng dn:
- Sp xp cc khong thi gian thu s dng my theo im u ca nhng khong ny.
- Gi Nh[i] l s tin ti u thu c khi xt xong cc cng vic t 1 n I ( theo th t sp xp).
- Sau sa nhn t NH[i] n Nh[n] nh sau : Gn Nh[i]=Pi . sa nhn NH[i] , tm cng vic j c
nh ln nht trong cc cng vic t 1 n i-1 m thi im hon thnh ca cng vic j sm hn
thi im bt u ca cng vic I , s dung cng thc:
Nh[i]=Max(NH[i],Nh[j]+Pi , Cj<Di
tm c th t thc hin cng vic th s dng thm mng trace[i] , gn trace[i]=j nu j l n
lm cho Nh[i] max.
---------------------------------------------------------------------------------------------------------------------------163
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Bi ton:
Xl18.INP
XL18.OUT
4 4
0 1 1 1
1 4
0 1 0 1
2 2
1 0 1 1
3 1
0 0 1 1
4 3
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
XL19.OUT
10 10 10
2
10 10 3
10
4 10 10
10
10 5 10
10
Hng dn:
- Cht nh phn thi im sm nht hon thnh cng vic gi l CM.
Left:=1;Right:=Maxint;
Repeat
Cm:=(left+right) div 2.
- Tin hnh tm cp ghp cc i vi iu kin: cnh I,j c th ghp vo nu C[I,j]Cm.
Nu c th tm c cp ghp c N cnh th gi tr lu gi tr kt qu bng Cm ng thi gim
Right:=Cm-1 ngc li Left:=Cm+1.
Until LeFt>Right.
---------------------------------------------------------------------------------------------------------------------------165
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
D Liu: XL20.INP
- Dng u ghi hai s M,N.
- M dng sau l ma trn A (mi dng ghi N s).
- Dng cui cng l M s P1,P2,PM.
Kt qu: XL20.OUT
- Dng u ghi s sinh vin theo chuyn c ng sinh vin tham gia nht.
- M dng tip theo : Dng th I (1iM) ghi Pi s l cc chuyn do lch xp cho sinh vin I theo
hc.
V d:
XL20.INP
XL20.OUT
8 8
20200
002
567
00220
200
2578
78
22000
000
1235
00020
022
136
02200
220
1458
348
3567
00200
000
02000
200
20020
---------------------------------------------------------------------------------------------------------------------------166
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------002
34244
334
Hng dn:
- Cht nh phn s hc sinh tham gia chuyn ong nht gi l k.
- Xt lung trn th hai pha ( pha tri N nh: mi nh l s hiu ca sinh vin ,pha phi M
nh : mi nh l s hiu nguyn vng),thm 2 nh T v S .Trng s trn cc cung (t,i) vi
i=1,2,,N nguyn vng ca sinh vin I.Trng s treen cc cung (j,S) vi j=N+1,N+2,,N+m) du
bng k.Cc cung (I,j) c trng s bng 1 nu a[I,j-N]=0 ,ngc li nu a[I,j-N]=2 th trng s cung
bng 0.
Nu th tm c lung cc i th tha mn .
Luyn tp:
Bi ton 21:
C N cng vic nh du t 1..N .Mi cng vic I c thi gian hon thnh l Ti, thi im bt u
thc hin l l Bi,thi im ti a phi kt thc l Ci.Hy lp lch thc hin c nhiu cng vic
nht.
D liu: XL11.INP.
---------------------------------------------------------------------------------------------------------------------------167
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------- Dng u l s N
- N dng sau mi dng gm 3 s Ti,Bi,Ci.
Kt qu: XL11.OUT
XL21.OUT
25 22 47
3 8 `12
3 22 47
4 16 41
4 8 20
2 41 44
25 16 41
5 45 54
45 63
24 47 71
16 27 47
24 39 63
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------ng ch c s sa cha quyt nh sa thi ton b cng nhn v thu nhn cng mi. Vi lc
lng mi ny, ng ta d nh rng sa chic xe th i s cn B[i] ngy. Vn t ra i vi
ng l phi lp lch sa tun t cc chic xe sao cho tng s tin b pht l t nht.
Yu cu: Hy lp lch sa xe gip cho ng ch c s sa cha t.
D liu
Dng 1: Cha s n (n 10000)
Dng 2: Cha n s nguyn dng A[1], A[2], ..., A[n] (1 A[i] 10000)
Dng 3: Cha n s nguyn dng B[1], B[2], ..., B[n] (1 B[i] 100)
Kt qu
Dng 1: Ghi s tin b pht ti thiu
Dng 2: Ghi s hiu cc xe s tin hnh sa cha, theo th t t xe c sa u tin n xe sa
sau cng
V d
Input:
4
1342
3231
Output:
44
4231
---------------------------------------------------------------------------------------------------------------------------169
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Bi ton 23:
n b ng nh
i dch l mm long mng qua i Farmer John li quay li ngh chn nui b sa cho
ng.La b ny ca ng c kh nng cho sa rt tt nhng cng rt ng nh.Chng ch n c
cnh ng chng thch v ch cho sa nu c n ngay ti cnh ng (chng khng n c kh).
Farmer john c N cnh ng c , hin ti c k con b ng nh ang trn k cnh ng.Hy gip
Farmer John a k con b n cc cnh ng m cc ch b thch n.
Hin ti Farmer John ang ng cnh ng th 0, v a con b th j n cnh ng I th
John phi n cnh ng j n con b ti ri a v ng c i.Trn ng Farmer John c th
mang theo nhiu con b.
L mt ngi rt qu trng thi gian nn Farmer John mun i tht nhanh.
Bn hy gip ng y tm cch a cc con b sao cho tn t thi gian nht.
D Liu: XL23.INP
- Dng u l 2 s N,K (K<N<1000);
- K dng sau mi dng gm 2 s l v tr ca con b ang ng v cnh ng c m n yu thch.
Kt qu: XL24.INP
- Dng u l thi gian ngn nht cn dng.
- Dng th 2 gm k s l th t cc con b n cnh ng n thch.
V d:
XL23.INP
XL23.OUT
10 5
12
1 3
2 4
4
5 10
7 10
---------------------------------------------------------------------------------------------------------------------------170
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Trong tin hc c nhiu lc chng ta phi lm vic vi nhng con s ln, thm ch l rt ln, khi
cc kiu d liu chun ca ngn ng lp trnh khng th biu din c, buc ta phi tm cc cch
biu din khc. biu din 1 s nguyn ln, cc bn c th dng xu hoc mng, mi phn t ca
xu hoc mng biu din 1 ch s ca s cn tm. y chng ta s xt trn mng. 1 s ln c
khi bo = 1 kiu record nh sau y.
Type bignum=record
D:longint;
CS:array[0..maxcs] of byte;
End;
D l s lng ch s ca n, mng cs biu din cc ch s ca s ang xt. thun tin, ta s lu
cc ch s ngc li so vi th t vit. VD s 123456 th mng CS s ln lt l
CS[1]=6;..CS[6]:=1. Lu cc ch s kiu ny s d dng khi thc hin cc php tnh trn s ln.
Bi ton:
Cho 2 s nguyn A v B c khng qu 1000 ch s, tnh A+B, A-B, A*B.
Hng dn:
1) Php cng, ta thc hin nh php cng c hc trng, tc l cng t hng n v n
hng chc Ta cn c 1 bin nh lu nh, sau khi n hng tip theo th phi cng c nh vo
na. Th tc mu:
Procedure cong(a,b:bignum);
Var n,I,nho:longint;
Begin
If a.d>b.d then n:=a.b else n:=b.d;
Nho:=0;
For i:=1 to n do
Begin
---------------------------------------------------------------------------------------------------------------------------171
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------Nho:=nho+a.cs[i]+b.cs[i];
c.cs[i]:=nho mod 10;
nho:=nho div 10;
End;
c.d:=n;
if nho>0 then
begin
inc(c.d);
c.cs[c.d]:=nho;
end;
End.
Kt qu l s C.
2) Php tr, gi s s b tr > s tr. Ta cng cn 1 bin nh thc hin php tr nh chng ta
thng lm. n hng I, nu nho+b[i]>a[i] th c[i]:=10+a[i]-nho-b[i] v gn nho:=1, ngc li, tc
l nho+b[i]<=a[i] th c[i]:=a[i]-nho-b[i] v nho:=0. Cc bn t vit th tc.
3) Php nhn: php nhn th c phc tp hn 1 cht.
Procedure nhan(a,b:bignum);
Var I,j:longint;
Begin
For i:=1 to a.d do
For j:=1 to b.d do
Inc(c.cs[i+j],a.cs[i]*b.cs[j]);
For i:=1 to a.b+b.d do c.cs[i]:=c.cs[i+1];
For i:=a.b+b.d downto 1 do if c.cs[i]<>0 then break;
c.d:=I;
End.
---------------------------------------------------------------------------------------------------------------------------172
Mt s vn ng ch trong mn tin hc
Bi ton: m dy
Gii hn
n<=4000
D liu vo
Ghi duy nht s n
D liu ra
Ghi ra s cch
V D
Input:
5
Output:
2
Gii thch: C 2 dy l (1,4)v (2,3)
Mt s vn ng ch trong mn tin hc
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
D liu
Gm mt s nguyn a duy nht.
Kt qa
In ra s nguyn duy nht l phn d ca s huyn b c s a khi chia cho 20122007.
V d
D liu:
10
Kt qa
7291779
Hng dn:
Vi bi ny th ta cn tm tt c cc c s ca a, sau ly s d ca (3^d-1) khi chia cho
20122007, sau p dng tnh cht 3 ly kt qu. Vn mu cht y l lm sao
tnh s d ca 3^d-1 cho 20122007. Nu dng 1 vng for t 1->d th s khng th m bo
thi gian v c nhng c rt ln. tnh cht 3, ta c 1 thut ton tnh trong log(d) nh
sau: Nu d chn l th 3^d=3^(d div 2)*3^(d div 2). Nu d l th 3^d=3*3^(d div 2)*3^(d
div 2). V vy ta ch cn phi tnh s d ca 3^(d div 2) l c th tnh c cho d, vy 1 th
tc quy l rt thch hp trong trng hp ny. Sau p dng tnh cht 2 ly phn d
ca (3^d-1) do y xut hin du tr.
Tree Num(TREENUM)
Mt s c gi l s tree_num khi n c l tng ca cc ly tha c s 3 vi s m
khng m tng dn.
V d 30=3^1+3^3; 325=3^0+3^4+3^5 l nhng s tree_num.
Yu cu :Tm s tree_num th n
Input
Dng u cha s nguyn dng ntest l s test(ntest<=30000)
Ntest dng sau:mi dng cha s nguyn dng n(0<=10^19).
Output
Ntest dng mi dng cha s tree_num th n
Sample
---------------------------------------------------------------------------------------------------------------------------175
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------Input:
5
1
2
7
3
6
Output:
1
3
13
4
12
Thut ton
Nhn vo nh ngha ca s TREE_NUM th n, ta nhn thy: Nu thay c s 3 bng c s
2 th s tree_num th n chnh l s n. T ta c thut ton sau:
Phn tch n ra h nh phn. Gi s n=2^x1+2^x2++2^xk th s tree_num c tnh bng
cng thc 3^x1+3^x2++3^xk. Nh vy ta c th s dng x l bit trong bi ton ny,
nu bit th j l 1 th cng 3^j v kt qu. Nhng bi ton cha dng li y.
N<=10^19 tc l n c ti a 64 bt. Ta li phi s dng s ln gii quyt bi ny, do khi
chuyn t 2 sang 3 th kt qu ln hn rt nhiu. Nu ta cng tr trn c s 10 th kh
c th chy trong thi gian cho php vi s lng test ln(<=30000). Vy bi ny chng
ta nn thc hin x l vi c s ln, mng ly tha ca 3 cn c tnh trc trnh tnh
trng tnh lp li nhiu ln, gy lng ph v lm chm chng trnh.
Space settlement(SPACESET)
lu lm ri, mt thin h xa xi ... Mt ch xy dng nn mt trm khng gian
v i. Trm khng gian ny c m tng, v mi tng gm c n khu vc. Cc khu vc c
ni vi nhau bi cc tuyn ng cc tu khng gian c th bay qua.
Mt tng l mt vng trn vi n khu vc c t trn . Vng trn cung cp cc tuyn
ng bay cho cc tu khng gian. Trong vng mt tng, vic di chuyn ch c thc
hin dc theo vng trn . Vng trn nh hng ng bay s lun tn ti, bt chp s
lng khu vc trong tng .
Cc tng c t chc thnh mt h thng. Mt s kt ni hon ho c cung cp gia
cc tng. Ti mi khu vc trong mt tng s c cc tuyn ng ni ti mi khu vc
tng ngay trn v ngay di n. Tng trn cng v di cng cng c ni theo cch
tng t.
---------------------------------------------------------------------------------------------------------------------------176
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Chng phi hnh gia thch phiu lu -- Han Solo mun ch mi ngi gia cc khu vc.
Tu khng gian ca Solo c th bay theo mt hnh trnh c chnh xc k im dng, khng
hn khng km.
Cho gi tr ca k, n v m. Bn phi tnh s hnh trnh trong trm khng gian m Solo c
th dng thc hin cng vic ca mnh.
Lu
Input
Dng u cha T, s lng test. Mi test cha cc gi tr ca m, n v k.
Output
Cha T dng, mi dng cho 1 test. Mi dng s ghi phn d ca tng s hnh trnh c th
s dng khi chia cho 12345678.
Example
Input:
5
111
121
---------------------------------------------------------------------------------------------------------------------------177
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
3 3 56
434
691 60 97764
Output:
1
2
8019378
6144
470730
Constraints
Dataset 1: T 100, m 1000, n 1000, k 100000 Time limit: 5s
Dataset 2: T 100, m 10^8, n 10^8, k 10^8 Time limit: 5s
Thut ton:
Mi hnh trnh c k im dng. im u tin trong hnh trnh c m*n kh nng chn, sau
t im th 2 tr i, mi im c (2*n+2) kh nng chn(s im vng k di +s im
vng k trn + s im k im trn vng trn hin ti).
T ta c cng thc tnh sau:Kt qu:=(m*n*(2*n+2)^(k-1))mod 12345678.
y l 1 trong nhng bi ton m p dng tnh cht th 3 ca hm mod rt nhiu ln. Da vo tnh
cht ny cc bn c th tnh ra kt qu khng my kh khn. Ch xin lu cc bn 1 vi trng
hp c bit khi m,n<=2. Lc ny th cng thc ca chng ta c 1 cht thay i(cc bn t tm
cng thc ca nhng trng hp ny). 1 iu na l nu cc bn p dng tnh cht 3 nhng khng
cn thn vi kiu d liu c th gy trn s.
---------------------------------------------------------------------------------------------------------------------------178
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Vn HEAP V ng Dng
-Heap l 1 trong nhng cu trc d liu c bit quan trng trong tin hc, n gip chng ta c th
gii c nhiu bi ton vi thi gian cho php. Sau y ta s tm hiu chi tit v HEAP.
-u tin heap l 1 cy nh phn c quan h gia nt cha v 2 nt con ca n. Loi heap max l
heap m mi c kha ln hn hoc bng cc nt con ca n( nu n khng phi l nt l). Trong
loi heap ny th ta c th d dng nhn thy kha ca gc l kha ln nht. Loi heap min th c
nh ngha tng t nhng ngc li. Sau y l hnh nh ca 1 heap max.
-T y chng ta ch xt trn heap max, heap min lm tng t, ch l vi heap min th nt cha
c kha b hn nt con nn khi thc hin cc so snh th phi o chiu.
-Do heap l 1 cy nh phn, nn cch n gin nht biu din n l dng 1 mng 1 chiu n phn
t( vi n l s lng phn t ln nht cn qun l). 2 nt con ca nt k l 2*k v 2*k+1, nt cha ca
nt k l k div 2. Gi nheap l s phn t hin ti ca heap.
Ta cn thc hin nhng thao tc sau vi 1 heap:
a) Upheap: Khi c 1 nt c gi tr kha tng ln th c th cu trc heap khng cn c bo ton na,
n c th phi 1 v tr khc( do n ln hn nn c th phi gn gc hn). Cn c 2 bin cha v
con thc hin qu trnh chnh sa heap, ta tng tng nt con lc u l v tr cn chnh sa,
nu nt cha ca n c gi tr kha < gi tr kha ca n th i ch nt con cho nt cha, nt con mi
---------------------------------------------------------------------------------------------------------------------------179
Mt s vn ng ch trong mn tin hc
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------H[cha]:=h[con];
Cha:=con;
End;
H[cha]:=v;
End.
Nu trong qu trnh x l, cc bn cn bit s hiu cc phn t th thm vo 1 mng sh na, lu
l khi no c s thay i v tr ca 1 nt th cng thay i gi tr ca mng sh theo m bo
sh[h[v]]:=v;
Khi cc bn c trong tay 2 th tc upheap v downheap th cc thao tc cn li c th quy v 2
th tc ny:
-Thm 1 phn t vo heap: Cho phn t ny nm v tr nheap+1 ri thc hin thao tc upheap.
-Ly 1 phn t ra khi heap( thng l ta cn ly phn t gc v y l phn t nh nht hoc
ln nht trong 1 on): Gn phn t cui vo phn t cn loi b, ng thi dec(nheap), sau coi
nh phn t ny b thay i gi tr, gi tr kha m tng ln th thc hin upheap cn khng th thc
hin downheap.
Sau khi ta ci t c cc th tc cn c ca 1 heap, ta s tm hiu ng dng ca n khi gii
cc bi ton trong tin hc. Nh ta thy, heap max hay heap min c th cho ta ly phn t ln nht
hoc phn t nh nht trong 1 on. V vy n rt hu dng trong cc bi ton m ta cn phi truy
vn cc phn t ln nht hoc cc phn t nh nht trn 1 on( chng hn nh cc bi ton QH
th ta thng cn tm nhng gi tr ny). Hn na, mi th tc ca heap c phc tp khng qu
0(logn) (iu ny cc bn c th t chng minh), v vy heap gip nhng bi ton loi ny c th
gii quyt n gin hn trong thi gian cho php.
ng i ngn nht
Thut ton:
Bi ny vi d liu nh(n<=5000) th cc bn dng thut ton Dijkstra tm ng i ngn nht
t nh s. Nhng vi n<=10^5 m thut ton Dijkstra c in c phc tp n^2 th khng kh thi,
vy ta phi tm cch ci tin.
---------------------------------------------------------------------------------------------------------------------------181
Mt s vn ng ch trong mn tin hc
Input
Dng 1 : 1 s nguyn dng T l s b test .
T nhm dng tip theo m t cc b test , mi nhm dng gm 2 dng :
Dng 1 : s nguyn dng N ( 1 N 20000 ) .
Dng 2 : N s nguyn dng A[1] ,, A[N] . ( 1 A[i] 50000 )
Output
Kt qu mi test ghi ra trn 1 dng , ghi ra 1 s nguyn dng duy nht l chi ph ti thiu
cn ct tm g .
Example
Input:
1
4
1234
Output:
19
Thut ton:
---------------------------------------------------------------------------------------------------------------------------182
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------u tin cho tt c cc phn di trn vo 1 heap min, thc hin vng lp n-1 ln nh sau: Ly 2
phn t u tin( tc l 2 phn t c gi tr nh nht trong heap hin ti) ra, sau thm 1 phn t
mi c gi tr = tng 2 phn t va ly ra cho vo heap. Nh th sau n-1 ln, heap ch cn 1 phn
t v gi tr ca phn t ny chnh l kt qu cn tm, phn chng minh xin nhng bn c. Mt
lu na l phi khai bo mng heap kiu int64 v kt qu c th vt qu longint.
KMIN
Input
Dng u tin gm 3 s: M, N, K
M dng tip theo gm M s m t dy A
N dng tip theo gm N s m t dy B
Output
Gm K dng tng ng l K phn t u tin trong dy C
Example
Input:
446
1
2
3
4
2
3
4
5
Output:
3
4
4
5
5
5
Gii hn
1 M, N, K 50000
1 Ai, Bi 10
---------------------------------------------------------------------------------------------------------------------------183
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Thut ton:
Vi m,n<=50000 th ta khng th to 1 mng 50000^2 ri sp xp li c, v vy chng ta cn
nhng thut ton tinh t hn, 1 trong nhng thut ton n gin m hiu qu nht l dng heap.
u tin ra sp xp 2 mng A v B khng gim, d nhin phn t u tin chnh l A[1]+B[1], vn
l phn t th 2 l A[2]+B[1] hay A[1]+B[2], ta x l nh sau:
Trc ht ta to 1 heap min gm cc phn t A[1]+B[1], A[1]+B[2],A[1]+B[n], mi khi ly ra
phn t gc( tc l phn t c gi tr nh nht trong heap hin ti), gi s phn t l A[i]+B[j],
ta li y vo heap phn t mi l A[i+1]+B[j]( nu i=m th khng y thm phn t no vo
heap). C th cho n khi ta ly ra k phn t cn tm.
phc tp thut ton trong trng hp ln nht l 0(50000*log(50000)), c th chy trong thi
gian 1 s, b nh lu tr t l vi n.
Ball game
Hm qua AnhDQ mi mi c gi ca mnh i n mn g KFC (vn l s trng ca hai
ngi). Hai ngi quyt nh gi phn n Chicky (dnh cho tr em :d), va tit kim, m
cn c tng km mn chi ng nghnh c tn l "Bt g" :d Sau mt hi loay hoay,
AnhDQ pht hin ra rng tr chi ca bn tr con nc ngoi ny kh l ging vi tr chi
g ca tr con Vit Nam :d (tt nhin l hin i hn ^^). Sau AnhDQ quyt nh r
nng i xem phim MegaStar :"> trn ng gh qua khu StarBowl, cm trn tay mn
"Bt g", AnhDQ cht ny ra mt tr chi th v kt hp gia nhng qu bng bowling v
tr chi g dn gian, v chng quyt nh hai nhc Alice v Bob s l nhng v khch u
tin tham gia tr chi mi ny! Chng tm t tn cho tr chi l "Tr chi vi nhng tri
bng":
AnhDQ lm sn mt ci mng c N l xp lin nhau c nh s t 1..N v mt ng
rnh gip a cc qu bng vo cc l ny. ng rnh ny c thit k c bit nh sau:
- Ch c th nm bng vo t mt trong hai u ca ng rnh.
- Ti mt thi im ch c mt qu bng c nm vo ng rnh.
- Nu bng c nm vo t u no th ng rnh s a qu bng ti l trng gn u
nht.
- Thi gian a bng ti mt l bt k l khng ng k.
AnhDQ lm ra M qu bng c bit cho Alice v Bob chi, nhng qu bng ny c c
im nh sau:
- Chng c cng hnh dng, kch thc; vy nn c th ri vo bt k l no trn mng.
- Mi qu bng c mt xoy (c th ging hoc khc nhau); nu mt qu bng c
xoy l x th n s xoy trn ming l m n ri vo trong x pht trc khi ri hn xung
l.
---------------------------------------------------------------------------------------------------------------------------184
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Li ni v ci mng:
- Mi l trn mng c sc cha v hn.
- Mt l c gi l trng nu khng c qu bng no ang xoy trn ming l ; ti thi
im mt qu bng dng vic xoy v bt u ri vo l th l cng c coi l trng.
- Tr chi bt u thi im 0, Alice ng u rnh pha bn tri (gn l th nht) cn
Bob ng u rnh pha bn phi (gn l th N).
- Ti cc thi im khc nhau, Alice hoc Bob nm mt trong M qu bng vo rnh.
- Tr chi kt thc khi mt trong cc trng hp sau xy ra:
++ Alice v Bob nm ht M qu bng; khi hai nhc ha nhau; thi gian ca vn
chi l thi im m qu bng cui cng ngng xoy v ri xung l.
++ Alice hoc Bob nm mt qu bng vo rnh trong lc khng c l no trn mng cn
trng; khi nhc no nm qu bng s l ngi thua cuc :d; thi gian ca vn chi
l thi im m nhc thua cuc nm qu bng .
AnhDQ i chi v v thy hai nhc ang ngi th hn hn v nm bng :)) AnhDQ lin hi
hai nhc xem ai thng th hai nhc ci toe tot ni l.. khng nh @) B tay, AnhDQ lin
gng hi chng v din bin vn chi, hai nhc chanh che nhau k ra cc ln nm bng
ca mnh, c m t bi hai s u, v, trong u l thi im nm qu bng v v l xoy
ca qu bng .
Nhng chng k cng chng c th t g ht, cng lm AnhDQ au u hn, chng c ghi
li thng tin m chng k v nh cc VOJ-er(s) ti gii gip chng phn nh kt qu ca
vn chi xem sao. Chng rt hi hp v tr chi mi ny ca mnh.
D liu
- Dng u tin cha hai s N, M.
- M dng tip theo, mi dng bt u bi mt ch ci 'A' hoc 'B', tng ng vi li k ca
Alice hoc Bob; tip theo l hai s u, v tng ng.
Kt qu
- Nu vn chi kt thc vi kt qu ha, in ra nh sau:
++ Dng u tin in ra DRAW.
++ Dng th hai in ra Game lasts: T minute(s); trong T l thi gian ca vn chi.
++ M dng tip theo in ra "bin bn" ca vn chi; mi dng ghi Alice takes the hole:
H hoc Bob takes the hole: H tng ng vi mt lt nm bng ca Alice hoc Bob;
trong H l l trng tng ng m qu bng ca lt nm ri vo. Bin bn ny vit
ra theo th t thi gian.
- Nu vn chi kt thc vi mt nhc thua cuc, in ra nh sau:
++ Dng u tin in ra Alice loses at her turn: R nu Alice thua cuc, hoc in ra Bob
loses at his turn: R nu Bob thua cuc; vi ngha: nhc tng ng thua cuc sau ln
nm th R ca mnh.
++ Dng th hai in ra Game lasts: T minute(s); trong T l thi gian ca vn chi.
V d
---------------------------------------------------------------------------------------------------------------------------185
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------D liu:
22
A 1 10
B 2 20
Kt qu:
DRAW
Game lasts: 22 minute(s)
Alice takes the hole: 1
Bob takes the hole: 2
D liu:
12
A 1 10
B 2 20
Kt qu:
Bob loses at his turn: 1
Game lasts: 2 minute(s)
Gii hn
- N, M 105.
- u, v 109.
Thut ton:
u tin ta sp xp li th t thi gian ca cc cuc nm bng. Bi ny ta dng 3 heap vi
cc ngha nh sau: 1 heap min, 1 heap max lu ch s cc l cn trng. 1 heap qun l cc
ang c bng xoy trn, heap ny l 1 heap min vi gi tr kha l thi gian qu bng
ri xung l. u tin 2 heap min v max y( tt c cc cn trng). Cho 1 vng for qua
cc th t nm, n 1 lt ta phi lm 2 vic sau:
1: Loi b t heap qun l cc c bng nhng no c thi gian bng ri xung l
<=thi gian nm bng ca lt ny, sau thm vo heap min v heap max nhng tm
c, nhng ny ln lt c ly ra t gc ca heap ang xt.
2: Thc hin nm: Nu nm t bn tri, da vo heap min tm ra trng c ch s nh
nht, nm bn phi th ngc li. Khi tm c th ta tin hnh loi b khi 2 heap ny
phn t tm c( do n bt u c bng xoy pha trn) v thm vo heap kia 1 phn t
gm 2 thng tin, ch s ca l v thi gian bng ri xung l.
Nu n 1 lt nm m tt c cc u c bng th tr chi dng li. C 1 lu l ta cn
qun l s hiu ca cc trong 2 heap tin cho vic loi b.
---------------------------------------------------------------------------------------------------------------------------186
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
INTERVAL TREE
Bi vit ny mun gii thiu vi cc bn 1 cng c rt hu dng c s dng nhiu trong cc bi
ton trn dy s, hoc c quy v cc bi ton x l trn dy s, c bit l cc bi ton c nhiu
cng vic cn x l v nhiu truy vn xen k nhau. Cng c c ni n y chnh l
INTERVAL TREE( hay cn gi l segmet tree), tc l cy on.
Interval tree l cy on, vy th n l 1 cy, v cc nt ca n th lu thng tin ca 1 on xc
nh. Interval tree l 1 cy nh phn m mi nt khng phi l l u c ng 2 nt con. Nu nt A
lu thng tin ca on t i..j th 2 nt con ca n, A1 v A2, ln lt lu thng tin ca cc on
i..m v m+1..j, vi m=(i+j) div 2 l phn t gia ca on.
V y l cy nh phn, li c y 2 nt con, n gin th ta c th biu din cy ch = 1
mng 1 chiu, vi ngha nh sau:
Nt 1 l nt gc, nt k( nu khng phi l nt l) th c 2 con l cc nt k*2( nt con tri) v
k*2+1(nt con phi).
Nt 1 s lu thng tin ca on 1..n ( vi n l di dy s).
Vy nt 2 s lu thng tin on 1..(n+1) div 2 v nt 3 s lu thng tin on (n+1) div 2+1..n.
Tng t theo nh ngha th ta c th bit c nt th k s lu thng tin ca 1 on xc nh no
y. Sau y l hnh nh 1 cy INTERVAL TREE vi n=7:
Mt s vn ng ch trong mn tin hc
Mt s vn ng ch trong mn tin hc
Mt s vn ng ch trong mn tin hc
Xp hng(NKLINEUP)
Hng ngy khi ly sa, N con b ca bc 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 cc 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.
Bc 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 xc 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 th i trong s N dng sau cha 1 s nguyn duy nht, l cao ca con b th i.
---------------------------------------------------------------------------------------------------------------------------190
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------
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 qa
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.
V d
D liu:
63
1
7
3
4
2
5
15
46
22
Kt qa
6
3
0
Thut ton:
y l 1 bi ton x l trn dy s v cn truy cp n nhng on A..B bt k trong dy, v vy
interval tree l 1 trong nhng la chn khng ti. Bi ny chng ta c 1 iu may mn l khng cn
phi cp nht li chiu cao ca cc con b, v vy thng tin trong cy interval tree l c nh v ta
s to cy interval tree da trn mng chiu cao ca cc con b. Mi on th ta cn in ra chnh
lch cao con b cao nht v con b thp nht, v vy chng ta cn tm c gi tr ln nht v
gi tr nh nht trong cc phn t t A n B. Ta c th dng 1 cy interval tree vi mi nt lu 2
thng tin, gi tr ln nht v gi tr nh nht trong on m n biu din, cng c th dng 2 cy
---------------------------------------------------------------------------------------------------------------------------191
Mt s vn ng ch trong mn tin hc
Gi tr ln nht(QMAX)
Cho mt dy gm n phn t c gi tr ban u bng 0.
Cho m php bin i, mi php c dng (u, v, k): tng mi phn t t v tr u n v tr v ln k n
v.
Cho q cu hi, mi cu c dng (u, v): cho bit phn t c gi tr ln nht thuc on [u, v]
Gii hn
n, m, q <= 50000
k>0
Dng 1: n, m
Dng th m+2: p
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------62
132
463
1
34
Output:
3
Thut ton:
Bi ny th ta c m php bin i tng dy trc ri mi yu cu tm gi tr ln nht trong cc on
ch khng phi xen k nhau, v vy ta s tm cch xy dng dy s sau m php bin i. Khi c
c mng gi tr sau m php bin i, cng vic cn li ca ta l to 1 cy interval tree vi mi
nt lu gi tr ln nht ca on m n qun l trong khi cc phn t ca mng xc nh, vi mi
truy vn tm GTLN th ta c th lm khng my kh khn.
Vn by gi l xy dng dy s sau m php bin i.
Ta c th s dng 1 k thut n gin nhng rt hiu qu nh sau.
Gi s mng ta cn c l mng A[0..n+1], lc u A[i]=0 vi mi i.
Mi yu cu u,v,k tc l tng cc phn t t v tr u n v tr v ln k n v, ta lm nh sau:
A[u]:=A[u]+k;A[v+1]:=A[v+1]-k;
Sau khi c xong m php bin i v lm nh trn, cui cng l tnh mng A:
For i:=1 to n do
A[i]:=A[i]+A[i-1];
Cc bn c th t chng minh tnh ng n hay c th vit on chng trnh ny ra v kim
nghim li. Nh vy ta c th gii quyt trn vn bi ton.
Gi tr ln nht ver2(QMAX2)
Ging bi "Gi tr ln nht" trn.
---------------------------------------------------------------------------------------------------------------------------193
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------Input
- n: s phn t ca dy (n <= 50000).
- m: s lng bin i v cu hi (m <= 100000).
+) bin i c dng: 0 x y value
+) cu hi c dng : 1 x y.
Output
Ghi ra tr li cho ln lt tng cu hi.
Example
Input:
63
0133
0464
116
Output:
4
Thut ton:
Bi ny khc bi QMAX trn l cc php bin i v cc cu hi xen k nhau, v vy ta khng
th to trc 1 cy interval c. gii quyt bi ton ny, ta cn phi thc hin cp nht cng
nh ly kt qu xen k nhau. Nhng y th cc cng vic ny khng h n gin.
Va c c kt qu, ta cng cn phi m bo 2 cng vic ny khng c c phc tp vt
qu log(n).
lm bi ny, ta gi F[k] l gi tr ln nht trong on m nt k qun l, trong lc cp nht, mun
m bo th tc ny khng vt qu log(n) th khi i n 1 nt m nm gn trong on x..y th ta
khng c i vo cc nt con ca n na( nu khng s i n tt c cc on c trong on x..y
v phc tp t l vi n). Nu nh vy, ta cn c 1 mng ph T lu li gi tr cn tng ln cho
tt c cc phn t ca on ny, khi ta truy vn n 1 nt k ng thi ta tng T[k] ln cho T[k*2],
T[k*2+1] v F[k]. (do T[k] l gi tr cn tng ln cho tt c nhng phn t ca on nt k qun l,
nn cc nt con ca n cng phi tng ln T[k]). Sau khi cp nht cho mng F v cc nt con, ta
gn li T[k]=0 trnh trng hp cng li nhiu ln. Nu n on nm gn trong on x..y
th ta tng mi bin F[k], T[k*2], T[k*2+1] ln v. Khi mun ly kt qu, ta vn lm nh bi
QMAX, nhng n mi nt con, ta vn cn thc hin tng gi tr T[k] cho T[k*2], T[k*2+1] v
F[k] ly c kt qu. Tc l khi n c 1 nt no ( trong bt k thao tc no, cp nht hay
---------------------------------------------------------------------------------------------------------------------------194
Mt s vn ng ch trong mn tin hc
Bt n(LITES)
Bc John gi cho n b thng minh bng cch chng chi cc chi pht trin tr tu. Mt
trong cc tr chi l cc ngn n trong chung. Mi trong s N (2 <= N <= 100,000) con b c
nh s t 1..N c treo mt ngn n mu.
Vo u bui ti, tt c n u tt. n b iu khin cc ngn n bng N cng tc; bm cng
tc i i trng thi ca n i t tt sang bt hoc ngc li.
n b c v thc thi mt danh sch gm M (1 <= M <= 100,000) thao tc m t bi mt trong
hai s nguyn (0 <= thao tc <= 1).
Thao tc th nht (m t bi s 0) theo sau bi hai s nguyn S_i v E_i (1 <= S_i <= E_i <= N)
cho bit cng tc u v cng tc cui. n b s bm mi cng tc t S_i n E_i ng mt ln.
Thao tc th hai (m t bi s 1) yu cu n b n xem c bao nhiu ngn n gia S_i v E_i (1
<= S_i <= E_i <= N) ang bt. Hy gip bc John m bo rng n b tr li ng bng cch x
l danh sch v tr v cc kt qu ng.
D liu
* Dng 1: Hai s nguyn cch nhau bi khong trng: N v M
* Dng 2..M+1: Mi dng cha mt thao tc vi ba s nguyn cch nhau bi khong trng: thao
tc, S_i, v E_i
Kt qu
* Dng 1..s truy vn: Vi mi truy vn, in ra kt qu l mt s nguyn trn mt dng.
V d
D liu:
45
012
024
123
024
114
Kt qu:
1
2
---------------------------------------------------------------------------------------------------------------------------195
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------Thut ton:
Ta c th s dng INTERVAL TREE lm nh sau:
Bi ny c t tng kh ging vi bi QMAX2, thng tin c truyn t nt cha xung nt con
bt c khi no c th. Ta c 1 mng B kiu logic, B[i]=true ngha l nhng n trong on m nt
th i qun l cn thay i trng thi. Khi n 1 nt, nu b[i]=true th cn thay i trng thi ca
B[i*2] v B[i*2+1] ng thi gn li B[i]=false( thc hin thay i ri th phi gn li false),
nu gi mng sl[i] l s lng n ang bt trong on do nt i qun l th nu gp b[i]=true phi
tin hnh sa sl[i], sl[i] hin ti l gi tr ca s n ang tt( do khi thay i trng thi th bt
chuyn thng tt). Vy ch cn 1 php tr l c th tnh c s lng n ang bt trong on.
Cc cng vic ny cn lm u c 2 th tc cp nht v ly kt qu.
Khi thc hin thao tc cp nht kt qu cho on x..y th nu gp nhng on nm gn trong x..y
th ta li thc hin thay i trng thi nh trn. Phn ly kt qu th khng kh, cc bn ch cn nh
l trong th tc ly kt qu cng cn thc hin truyn thng tin t nt cha cho nt con( bt c khi
no c th).
A Marble Game(MARBLE)
Trong nhng ngy h rnh ri, ktuan thng chi bn bi trn mt bng hnh vung gm NxN
vung nh. Tr chi c thc hin nh sau:
Ban u, ktuan t K vt cn vo K vung ca bng.
Sau , ktuan thc hin ln lt Q lt chi. lt chi th i, ktuan ln lt bn Di vin bi t ngoi
bng vo mt trong 4 ng bin ca bng. Kch thc ca mi vin bi ng bng kch thc ca
mt vung nh. Vin bi s i qua cc thuc cng mt hng / ct cho n khi i ra ngoi bng
hoc gp mt vt cn hay vin bi khc. Nu c vt cn hay vin bi khc ngay u tin th vin
bi khng c a vo bng.
---------------------------------------------------------------------------------------------------------------------------196
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------ Q dng sau, mi dng ghi 4 gi tr c, D, u, v. K t c c th l 'L', 'R', 'T', hoc 'B' cho bit vin bi
c a vo t bin tri, phi, trn hoc di ca bng. (u,v) th hin to u tin m vin bi
c a vo. y phi l mt nm trn bin ca bng ng vi k t c. D l s lng vin bi s
bn lt chi ny.
Kt qu
V d
D liu
513
33
L231
T111
B555
Kt qu
3
2
25
Gii thch
Vin bi u tin ca lt 1 s i qua 2 (3,1) v (3,2) trc ghi gp vt cn (3,3)
Vin bi tip theo ca lt 1 s i qua (3,1) trc khi gp vin bi (3,2). Vy tng s b i qua
lt ny l 3.
Gii hn
N 50000, K 10, Q 100000
Trong 1/3 s test, N v Q khng vt qu 1000.
Thi gian: 3-10s/test.
Thut ton:
-Vi mi ln bn, ta cn phi tm c chng ngi vt u tin. Bi ny cng c t tng tng
t bi QMAX2, thng tin truyn t nt cha xung nt con, nhng 1 iu c bit l chng ta ch
cn thng tin ca nhng on 1 phn t( do bn ch trn 1 ng thng). V vy thng tin ch c
truyn xung m khng truyn ln. Thao tc tm chng ngi vt u tin trn ng bn th khng
c g kh khn.( c i mi cho n nt qun l hng/ct hin ti). Phn cn li l phi cp nht sau
---------------------------------------------------------------------------------------------------------------------------197
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------khi bn, thao tc ny lm nh QMAX2, phi truyn thng tin cho cc nt con bt c khi no c th.
Vy ta cn 4 cy INTERVAL TREE, H1,H2,C1,C2 vi ngha:
H1: Qun l theo hng, gi s nt k qun l t hng i n hng j th H1[k] l ch s ct nh nht
trong cc ch s ct c chng ngi vt t hng i n hng j. H1 dng xc nh chng ngi
vt u tin trong thao tc bn L.
H2: Tng t H1 nhng thay bng ch s ln nht. H2 dng xc nh chng ngi vt u tin
trong thao tc bn R.
C1: Tng t H1 nhng C1 qun l cc ct v C1[k] l ch s hng nh nht c chng ngi vt t
ct i n ct j. C1 dng xc nh chng ngi vt u tin trong thao tc bn T.
C2: Tng t C1 nhng l ch s hng ln nht. C2 dng xc nh chng ngi vt u tin
trong thao tc bn B.
Cc bn cng c th thay 4 cy bng 2 cy(H v C) nhng mi cy c 2 thng tin l ch s nh nht
v ln nht ca ct/hng.
Mi khi c thao tc bn L v R, sau khi xc nh c hng i s thm nhng vin bi t v tr no
n v tr no th thc hin cp nht trn 2 mng H1, H2.Tng t vi 2 thao tc cn lai, lc ny ta
cp nht trn 2 mng C1, C2.Cui cng xin lu cc bn nhng trng hp m khng c chng
ngi vt trn hng hoc ct, khi ta khng cn cp nht, v kt qu chnh l d*n. Cc bn cng
cn ch nhng trng hp m s a vo nhiu hn s ti a c th a vo hng/ct, lc
ny ta ch kt qu cho nhng a c vo bng thi( 1 s b bn ra ngay khi gp chng ngi
vt bin). Bi ny cc bn nn khai bo kt qu kiu int64 trnh b trn s.
---------------------------------------------------------------------------------------------------------------------------198
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Mt s vn ng ch trong mn tin hc
Hng dn:
Nu lm theo cch thng thng, d dng nhn ra phc tp thut ton trong trng hp xu nht
l 0(n*m), khng th thc hin trong thi gian cho php.
By gi ta s tm hiu cch s dng cy BIT vo cho bi ny.
Gi T l mng cha cy BIT, lu thng tin, A l mng gi tr cc phn t.
---------------------------------------------------------------------------------------------------------------------------200
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------- Vi thao tc 1. Gi s gi tr hin ti ca a[i] l u th ta coi nh thao tc ny tng a[i] ln v-u. Khi
cp nht ta phi cp nht cho nt i v tt c cc t tin ca i, cho n khi vt qu n. Th tc
update nh sau:
Procedure update(i,v:longint);
Begin
While i<=n do
Begin
T[i]:=T[i]+v-a[i];
I:=i+i and(-i);
End;
End;
- Vi thao tc th 2, do cy BIT ch c th ly thng tin ca on 1..i, nn tnh tng ca a[i] n
a[j], ta s tnh tng t 1 n j, sau tr i tng t 1 n i-1. Sau y l th tc tnh tng t 1
n v tr i bt k.
Procedure getsum(i:longint);
Begin
Sum:=0;
While i>0 do
Begin
Sum:=sum+T[i];
I:=i- i and(-i);
End;
End;
Vy l ta c trong tay 2 th tc chnh, phn cn li cc bn c th d dng ci t. phc tp
thut ton l 0(m*log(n)).Qua y ta thy cy BIT rt d ci t, cc th tc nhn rt sng sa,
nhng cng thc tnh cng d nh, v vy m n rt hay c dng trong nhng trng hp c th
thay th cho INTERVAL TREE. Ta cng d dng nhn thy, nhng bi no lm c bng cy
BIT th cng lm c = INTERVAL TREE, nhng iu ngc li th khng ng. V vy phi
cn nhc tht k trc khi cc bn nh la chn 1 trong 2 kiu cu trc d liu ny.
---------------------------------------------------------------------------------------------------------------------------201
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Coder Rating(CRATE)
Cho danh sch N lp trnh vin (1 N 300000), nh s ln lt t 1 n N. Mi ngi
u tham gia c hai gii thi u: Gii THPT v gii M rng. Vi mi lp trnh vin, bn
s c cung cp im s ca gii M rng Ai v im s ca gii THPT Hi (Cc im s
u l s nguyn khng m v khng vt qu 100000). Lp trnh vin i c coi l gii
hn lp trnh vin j khi v ch khi c 2 im s ca lp trnh vin i u ln hn hoc bng
im s tng ng ca lp trnh vin j, trong c t nht 1 im s phi ln hn. Hy tnh
xem vi mi lp trnh vin i th c bao nhiu lp trnh vin m i gii hn.
Input
Dng u tin cha s nguyn N.
N dng tip theo, dng th i+1 cha 2 s nguyn Ai v Hi.
Output
Dng i cha s lng lp trnh vin m lp trnh vin i gii hn.
Example
Input:
8
1798 1832
862 700
1075 1089
1568 1557
2575 1984
1033 950
1656 1649
1014 1473
Output:
6
0
2
4
7
1
5
1
Thut ton:
Bi ny chng ta c th s dng cy BIT gii quyt nh sau:
-Sp xp c mng A v mng H theo chiu tng dn ca mng H.( tc l khi so snh th ch so snh
trn mng A nhng khi i ch th phi i ch c 2 mng m bo A[i] v H[i] lun l im
ca cng 1 ngi). Nu H[i] =H[j] th sp tng theo A[i] v A[j].
---------------------------------------------------------------------------------------------------------------------------202
Mt s vn ng ch trong mn tin hc
Dy nghch th di K(KINV)
Cho dy N s nguyn dng A[1] , A[N] l mt hon v ca 1 , 2 , 3 , N .
Mt dy nghch th di k l 1 dy A[j1] > A[j2] > A[j3] > A[jk] vi j1 < j2 < j3 <
jk . Hy m xem c tt c bao nhiu dy nghch th di k .
Input
Dng 1 : 2 s nguyn dng N v k ( 2 N 10000 , 2 k 10 ) .
Dng 2 : N s nguyn dng A[1] A[N] .
Output
Gi s T l s lng dy nghch th c di k , hy ghi ra T mod 10^9 .
Example
Input:
32
321
Output:
3
Thut ton:
Bi ny c th gii quyt = quy hoch ng kt hp s dng cu trc d liu, y ta s dng cy
BIT. Gi F[i,j] l s lng dy nghch th di i v kt thc v tr j. Vy F[i,j] s c tnh t
cc F[i-1,j1] vi j1 t 1 n j-1 tha mn a[j1]>a[j]. Khi tnh F[i,j] th lm tng t NKINV, nhng
lc cp nht th khng phi l cng thm 1 m cng thm F[i,j].
Kt qu l tng ca cc F[k,i] vi i t 1 n n.
---------------------------------------------------------------------------------------------------------------------------203
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
D liu
Dng u ghi s nguyn dng N.
N dng sau mi dng ghi mt s ai ( 1 i N ).
Kt qa
Ghi trn mt dng s M duy nht l s nghch th.
Gii hn
1 N 60000
1 ai 60000
V d
D liu:
3
3
1
2
Kt qa
2
Thut ton:
Bi ny cc bn c th s dng INTERVAL TREE hoc BINARY INDEX TREE gii quyt
u c, y chng ta tm hiu cch s dng cy BIT.
n 1 v tr i no , ta cn tnh c c bao nhiu v tr j thuc on t i+1 n n m a[j]<a[i].
Cho 1 vng for downto t n v 1, n mi v tr i , u tin ta tnh s v tr bng cch ly thng tin
vi nt ban u l nt th a[i]-1( do ta tm tt c nhng v tr c a[j]<a[i]), cp nht gim dn v 0,
n mi nt li cng vo kt qu gi tr nt . Khi cp nht, ta cp nht vi nt ban u l nt
a[i], tin hnh cp nht n khi no qu gi tr max trong dy( y c th ly max=60000 cng
c), ti mi nt ta cng thm 1 vo gi tr nt .
Bi ny cc bn cng c th va c va x l, vi mi v tr i, tnh s v tr j t 1 n i-1 c
a[j]>a[i]. lm iu ny, vi mi v tr i, cc bn phi lm ngc vi cch u tin, tc l khi ly
kt qu th nt ban u l a[i]+1 v ta truy vn n cha ca n, n khi qu gi tr max, cn khi cp
nht th nt ban u l a[i] v cp nht gim dn v 0.
---------------------------------------------------------------------------------------------------------------------------204
Mt s vn ng ch trong mn tin hc
NKBOBILE
Cc trm di ng th h 4 Tampere hot ng nh sau. C khu vc c chia thnh cc
vung. Cc vung to thnh mt bng SxS vi cc dng v ct nh s t 0 n S-1.
Mi vung cha mt trm di ng. S in thoi di ng hot ng trong mt vung
c th thay i v in thoi c th chuyn sang vung khc hoc thay i trng thi
bt/tt. Khi c thay i, mi trm di ng s thng bo cho trung tm. Ti mt s thi
im, trung tm cn truy vn tng s in thoi ang hot ng trong mt vng din tch
hnh ch nht no .
Hy gip trung tm nhn cc thng bo t trm v tr li cc truy vn.
D liu
Gm nhiu dng, mi dng cha cc ch th cho chng trnh. C 3 loi ch th 0, 1, 2, 3
nhn cc tham s v thc hin cc nhim v tng ng nh sau:
Ch th Tham s ngha
0
Khi to bng SxS cha ton b s 0. Ch th ny ch c cho mt ln duy nht u chng trnh.
XYA
LBRT
Kt qa
Vi mi ch th loi 2, in ra mt dng gm mt s nguyn dng tr li cho truy vn tng
ng.
Gii hn
1
S 1024
Gi tr
-32768
S
Tng s
V d
---------------------------------------------------------------------------------------------------------------------------205
Mt s vn ng ch trong mn tin hc
------------------------------------------------------------------------------------------------------------------------------D liu
0 4
1 1 2 3
2 0 0 2 2
1 1 1 2
1 1 2 -1
2 1 1 2 3
3
Kt qa
3
4
Thut ton:
Chng ta s tm hiu thut ton dng BIT2D( dng cy BIT 2 chiu) cho bi ny.
Nu cy BIT thng thng l 1 chiu th BIT2D dng 1 mng 2 chiu, khi cp nht hay ly kt
qu ta thc hin trn c 2 chiu. Lc cp nht hay ly kt qu, u tin ta i n nhng nt thuc
chiu th nht, vi mi nt ny, ta li i n nhng nt thuc chiu th 2. C th hiu n gin l
BIT2D l 1 cy BIT, mi nt ca cy BIT ny qun l 1 cy BIT khc.
Tr li vi bi ton, d dng v thun tin hn, ta s nh s li ch s dng v ct bt u t s
1 ch khng phi s 0.
-Vi mi thao tc cp nht X,Y ta li cp nht 2 chiu v pha S, n mi nt li cng gi tr
nt thm A.
-Ly kt qu: Do c im ca cy BIT l ch ly kt qu bt u t 1. V vy vi mi thao tc ly
kt qu L,B,R,T ta li tnh trung gian nh sau:
Kq[L,B,R,T]:=Kq[1,1,R,T]-Kq[1,1,R,B-1]-Kq[1,1,L-1,T]+Kq[L-1,B-1]( cc bn c th t chng
minh tnh ng n). Vi mi thao tc ly kt qu t 1,1 n X,Y ta cng ly theo 2 chiu i v 0,
n mi nt li cng vo kt qu gi tr nt . Cc bn c th tham kho chng trnh mu
hiu r hn.
Nh vy ta thy, BIT2D khng khc nhiu so vi BIT thng thng, ch khc l cc bn qun l
trn 2 chiu lng nhau.
---------------------------------------------------------------------------------------------------------------------------206
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Team Selection(NKTEAM)
Cc trng on i tuyn tin hc vng Balkan mun chn ra nhng th sinh mnh nht
trong khu vc t N th sinh (3 N 100000). Cc trng on t chc 3 k thi, mi th
sinh s tham d c 3. Bit rng khng c 2 th sinh no c cng im s trong mi k thi.
Ta ni th sinh A gii hn th sinh B nu A c xp hng trc B trong c 3 k thi. Mt
th sinh A c gi l xut sc nu nh khng c th sinh no gii hn A.
Yu cu: Hy gip cc trng on m s th sinh xut sc.
D liu vo
Dng th nht cha 1 s nguyn dng N.
3 dng sau, mi dng cha N s nguyn dng cch nhau bi khong trng, l ch s ca cc th sinh
Kt qa
Gm 1 s nguyn duy nht cho bit s th sinh xut sc.
V d
D liu mu
3
231
312
123
Kt qa
3
---------------------------------------------------------------------------------------------------------------------------207
Mt s vn ng ch trong mn tin hc
-------------------------------------------------------------------------------------------------------------------------------
Thut ton:
Nu tip cn trc tip bi ton vi cc thng s ca cho th rt kh khn. Sau y ta s
chuyn d liu v 1 dng tng ng m ta c th gii quyt bi ton d dng hn:
Gi A,B,C l 3 mng 1 chiu vi ngha nh sau: A[i],B[i],C[i] l th t ca ngi th i
trong 3 k thi tng ng. Ta c th xy dng 3 mng ny rt d, chng hn nh A[i]=j khi
s th j ca hng cha im mn thi u tin l i, cc mng B v C xy dng tng t. Sau
khi xy dng c 3 mng ny, bi ton c pht biu li l tm s th sinh m khng c
th sinh no c gi tr ca c 3 mng nh hn n. T ta c thut ton s dng Binary
Index Tree nh sau:
-Gi mng T l mng lu thng tin ca cy BIT.
-u tin sp xp tng dn 1 mng bt k, 2 mng cn li cng phi i ch theo m
bo A[i],B[i],C[i] lun l th t ca 1 hc sinh trong 3 k thi. y gi s ta sp xp mng
A. Sau khi sp xp mng A, ta ch cn tm s v tr i m khng c v tr j no t 1 n i-1 c
B[j]<B[i] v C[j]<C[i]( Do A[j]<A[i] nn nu c v tr i tha mn iu kin trn th c 1
th sinh xp cao hn th sinh v tr i trong c 3 k thi.
-Lc cp nht, ta cp nht gi tr min ca mng B, nhng li cp nht trn mng C. Ngha
l ta s cp nht vi nt bt u l C[i], cp nht n khi qu n, khi n mi 1 nt no x
m gi tr T[x]>B[i] th gn li T[x]:=B[i]. Vy lc u ta gn T[i]=n+1 vi mi i t 1 n
n.
-Lc ly kt qu, ta s c nt bt u l C[i], bt u i v 0, nu n 1 nt x no m c
T[x]<B[i] th th sinh v tr th i khng l th khoa c. Ta s chng minh i khng phi
l th khoa: Do khi tm c nt x c T[x]<B[i], gi s T[x]=B[j] no th ta c j<i(
th mi cp nht c ln, do ta cho for t 1 n n), v vy A[j]<A[i]. Thm na, C[j]<C[i]
do qu trnh cp nht trn cy BIT ca ta, nu C[j]>C[i] th khi i t C[i] i v pha 0 s
khng bao gi c th n 1 nt x c T[x]=B[j]( do khi cp nht th ta cp nht ln, tc l i
v pha n). Vy c 1 th sinh j c c 3 ch s u nh hn ca th sinh i nn th sinh i khng
phi l th khoa.
-Khi c th tc kim tra xem i c phi th khoa hay khng th bi ton c bn hon
tt, ch c thm 1 lu nh, khi sp xp mng , c th dng thut ton 0(n) sp, do cc
phn t c gi tr khc nhau v u khng vt qu n.
---------------------------------------------------------------------------------------------------------------------------208
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
23. Set base type of range: Kiu tp c s vt qu gii hn. Gii hn ca kiu on
dng lm tp c s l 0 ... 255, gii hn ca kiu lit k dng lm tp c s l 256
phn t. Th d khai bo sau y s sinh li 23: Var S: set of -8 .. 300;
24. File components may not be files: Thnh phn ca tp khngth l tp. Th d, khai
bo TYPE FTEXT = FILE OF TEXT; Li 24 v TEXT l kiu tp vn bn cho nn
FTEXT s l kiu tp ca tp.
25. Invalid string length: Chiu di xu khng hp l. Chiu di hp l nm trong khong
0 .. 255. Li khuyn: Trong TP mi xu x dng phn t x [0] cha chiu di ca x.
Khng nn thay i tu tin gi tr ca x[0]. on trnh sau y d c li cho bn
cng khng bao gi nn lm dng. ( *Ly 3 k t u ca xu x *) VAR x: string;
BEGIN X: = 'abcdef'; x[0]:= chr(3); writeln (x); readel; END.
26. TYPE mismatch: Kiu khng tng thch. cc nguyn nhn sinh li c th l: - Biu
thc c gn cho bin khng ng kiu. Th d
VAR x: char;
BEGIN
x: = 127 * 8
END.
- Truyn tham tr c th khng ng kiu khi gi th tc v hm. Th d
FUNCTION F ( x: integer ): string;
BEGIN
Writeln (F ('ERROR')) ( * sinh li 26 *)
END.
- S dng ch cn mng sai kiu4
- Dng ton hng khng ng kiu trong biu thc. Th d: x: = 5 + chr ;
27. Invalid subrange base type: Kiu c s cho kiu on khng hp l. Ch c dng
cc biu thc bc hm kiu c s.
28. Lower boundgreater than upper bound: Gii hn di ln hn gii hn trn. Th d a;
ARRAY [5.. -5] of ...
29. Ordinal type expected: Cn mt kiu th bc. Trong trng hp ny khng c
dng cc kiu Real, string, Record, PROCEDURE hoc pointer.
30. Integer constant expected: Cn mt hng nguyn
31. Constant expected: Cn mt hng
32. Integer or rcal constant expected: Cn mt hng nguyn hoc thc
33. Type identifier expected: Cn mt nh danh kiu
34. Invalid function resunt type: Kiu kt qu ca hm khng hp l. Hm ch cho kt
qu v thuc kiu n, string v pointer. Trng hp sau y s l li:
TYPE
Phn s = RECORD
T: integer;
Mu: Integr
END;
FUNCTION Rt gn ( x: phn s): phn s;
-----------------------------------------------------------------------------------------------------------------------211
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
35. Label identifier expected: Cn chn nhn Li khuyn: Tt nht l nn trnh dng ton
t GOTO v do bn khng phi dng n nhn.
36. BEGIN expected: Thiu BEGIN
37. END expected: Thiu END
38. Integer expression expexted: Cn biu thc nguyn
39. Ordinal expression expected: Cn biu thc th bc
40. Boolean expression expected: Cn biu thc kiu BOOLEAN
41. Operand types do not match operator: Kiu ton hng khng ph hp vi ton t
42. Error in expression: Biu thc sai. Thng gp trng hp s dng k t l hoc
qun vit du php ton trong biu thc.
43. Illegal assigment: Gans Gn khng hp l. Khng c gn tr cho bin tp hoc bin
khng nh kiu. Khng c gn tr cho nh danh hm ngoi thn ca hm .
44. Field identifier expected: Cn mt nh danh thng. Li pht sinh khi s dng bn
ghi (RECORD) khng c trng hp i km.
45. Object file too large: Tp ch qu ln. TP khng th ghp cc tp kiu OBJ ln hn
64 KB (1kilo byte = 1024 bytes)
46. . Undsfined external: Cha khai bo cc hm hoc th tc ngoi. Cc hm hoc th
tc ngoi cn c khai bo mc PUBLIC trong cc tp OBJ hoc trong cc tp
hp ng ASM. Trong ch { $ L ... } cn lit k y tn cc tp OBJ.
47. Invalid object file record: Tp OBJ khng c cu trc chun mc theo quy nh ca
TP.
48. Code segment too large: on m qu ln. Cc chng trnh hp thnh phi c kch
thc khng qu 65520 bytes.
49. Data segment too large: on d liu qu ln.
50. Do expected: Thiu Do trong cc cu trc FOR hoc WHILE hoc WITH
51. Invalid PUBLIC definition: Khai bo sai trong mc PUBLIC
52. Invalid EXTRN definition: Qu nhiu khai bo EXTRN. TP khng s l qu 256
khai bo EXTRN trong mi tp OBJ.
53. Too many EXTRN definitions Qu nhiu nh ngha EXTERN
54. OF expected:Thiu OF trong TYPE, CASE, FILE, SET, ARRAY
55. INTERFACE expected: Thiu mc INTERFACE
56. Invalid relocatable reference: Tham chiu khng hp l
57. THEN expected:Thiu THEN trong IF
58. TO or DOWN TO expected: Thiu To hoc DOWN TO trong FOR
59. Undefined forward: cha khai bo trc.
60. Too many procedures: Qu nhiu th tc (hoc hm). TP cho php ti a 512 th tc
(PROCEDURE) v hm (FUNCTION) trong mt module. Nu c qu nhiu bn cn
tch chng trnh thnh hai hoc nhiu module.
61. Invalid typecast: chuyn i kiu khng ng
62. Divion by zero: cha c 0
63. Invalid file type: Kiu tp khng ng. Mi kiu tp lm vic vi mt s th tc dnh
ring cho kiu . Th d tp TEXT lm vic voi th tc readln, tp nh kiu lm
vic vi th tc seek. Nu gi th tc readln cho tp nh kiu hoc gi th tc seek
cho tp text s sinh li 63.
-----------------------------------------------------------------------------------------------------------------------212
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
64. Can not Read or write vaziables of this type: Khng th c hoc ghi bin thuc kiu
ny. Lu rng - Read v Readln c th c t tp vo cc bin kiu char, integer,
real, Boolean hoc string.
65. Pointer variable expected: Cn mt bin con tr.
66. String variable expected: Cn mt bin string.
67. String expression expected; Cn mt biu thc string.
68. Unit not found: Khng tm thy n th (Unit). Cn khai bo chng trong mc USES
v t ng dn trong mc OPTIONS ca mi trng TP.
69. Unit name mismatch: Tn n th khng ng.
70. Unit version mismatch: version n th khng ph hp.
71. Duplicate Unit name: Tn n th trgn lp
-----------------------------------------------------------------------------------------------------------------------213
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
72. LUnit file format error: Tp n th (c ui TPU) khng c dng quy nh.
73. Implementation expected: Thiu phn IMPLEMENTATION trong n th.
74. Constant and case types do not match: Kiu hng v kiu biu thc trong CASE
khng ph hp vi nhau.
75. Record variable expected: Cn mt bin kiu RECORD.
76. Constant out of range: Hng vt qu min. Li c th gp trong cc tnh hung sau:
- Ch dn mng vt ra ngoi gii hn ca mng - Gi th tc v hm vi cc tham tr c
th vt ra ngoi gii hn khai bo.
77. File variable expected: Cn bin tp.
78. Pointer expression expected: Cn mt biu thc kiu con tr.
79. Integer or Real expssion expected: Cn mt biu thc kiu INTEGER hoc REAL.
80. Labelnot within current block: Nhn khng c trong khi ang xt.
81. Label alrealy difined: c nhn.
82. Undefined label in processing statement part: Khng thy nhn hiu trong on x
l. Nhn c khai bo, thy ton t GOTO c tham i l nhn nhng
khng thy nhn trong on vn bn. Mi nhn cn xut hin t nht l 3 ln theo s
sau:
LABEL L; (* 1 *)
... (* 2 *) L: FOR i:= TO ...
GOTO L; (* 3 *)
Nu nhn L khng c mt (* 2 *) s sinh li 82.
83. Invalid @ argument: Dng cc ton t @ vi ton hng khng hp l. Ton hng hp
l cho @ l cc nh danh ca bin, th tc v hm.
84. Unit expected: Cn c t kho UNIT.
85. ";" expected: Cn c du chm phy.
86. ": " expected: Cn c du hai chm.
87. " , " expected: Cn c du phy
88. " ( " expected: Cn c du m ngoc n
89. " ) " expected: Cn c du ng ngoc n
90. " = " expected: Cn c du bng.
91. ":= "expected: Cn du gn
92. " [ " or " (. " expected: Cn m du ngoc vung khi khai bo hoc ch nh phn t
ca mng, tp.
93. " ] " or " .) " expected: Cn du ng ngoc vung khi khai bo hoc ch nh phn t
ca mng hoc tp.
94. " ." expected: Cn du chm khi ch nh mt trng trong bn ghi
95. " .." expected: Cn du nhiu chm khi lit k gii hn mng, tp.
96. Too many variables: Qu nhiu bin. Nguyn nhn xut hin li c th l: - Tng
kch trc ca cc bin ton cc vt qu 64 KB - Tng kch thc ca cc bin cc b
m t trong th tc hoc hm vot qu 64 KB.
97. Invalid FOR control variable: Bin iu khin trong ton t FOR khng ng. Phi
dng bin kiu lit k.
98. Integer variable expected: Cn bin nguyn.
-----------------------------------------------------------------------------------------------------------------------214
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
99. Files are not allowed here: Khng c dng tp y. Hng nh kiu khng th l
tp.
100. String. length, mismatch: Chiu di xu khng ph hp vi s lng cc phn t
ca mng k t.
101. Invalid ordering of gields: Trt t cc trng (trong bn ghi) khng ng.
102. String constant expected: Cn mt hng kiu xu.
103. Integer or real variable expected: Cn bin nguyn hoc thc (bin s).
104. Ordinal variable expected: Cn bin (kiu) th t.
105. INLINE error: Li khi s dng ton t INLINE ( < ). Ton t ny khng c dng
vi cc con tr ti bin. Cc con tr loi ny lun lun c kch thc bng mt t.
106. Character expressionexpected: Cn biu thc kiu k t.
107. Too manyrebocation items: Qu nhiu phn t ng. Kch thc ca bng ng
cho tp. EXE vt qu 64 KB.
108. Not enough memory to run progam:Khng min nh thc hin chng trnh.
109. Can not find EXE file: Khng tm thy tp EXE.
110. Can not run a Unit: Khng c php thc hin mt modul. Modul l mt th vin
cc khai bo (bin, th tc, hm) ghp vi cc chng trnh s dng chng ch
khng dng thc hin c lp.
111. Compilation abozted: Hu vic dch (bng lnh ^ BREAK).
112. CASE constant out of range: Hng ca ton tCASE khng nm trong gii hn. 32768 dn 32767
113. Error in statement: Cu lnh sai. Li khng sy ra khi vit sai k t u tin ca cu
lnh.
114. Can not call an interrupt procedure: Khng th gi th tc ngt.
115. Must have an 8087 to compile this: Cn c b s l 8087 dch chng trnh ny
nu c khai bo ch dch { $ N + }.hy th dng t hp { $ N +, E + }.
116. Must be in8087 mode compile this: Phi dng ch 8087 dch chng trnh
ny. Khng c s dng cc kiu SINGLE, DOUBLE, EXTENDEN, v COMP
trong ch { $ N - }.
117. Target address not found: Khng tm thy a ch cho.
118. Include files are not allwed here: Khng c dng tp hng y.
119. TMP file format error: Li khun dng tp TMP. Tp c ui ng lTMP nhng
ni dung khng ng dng .
120. NIL expected: Cn gi tr bng NIL.
121. Invalid qualifier: nh dabnh khng hp l. C th do cc nguyn nhn sau: -Vit
mt bin n c km ch dn nh bin mng. - Vit mt bin n hoc mng theo
trng nh bin bn ghi. - S dng bin khng thuc kiu con tr nh mt bin con
tr.
122. Invalid variable reference: Tham chiu khng hp l ti bin. Bn thn bin c
khai bo ng kiu con tr nhng ni dung ca n khng phi l a ch. Thng gp
trong khi gi mt hm kiu mt con tr nhng qun dng k hiu ^.
123. Too many symbols: C qu nhiu k hiu. Chng trnh c tng s k hiu ln hn
64 KB. Cn chia thnh nhng module nh hn nu dch trong ch { $ D + }.
124. Statement part too large: Phn lnh ton t qu ln. Turbo Pascal dnh khong 24
KB cho phn ton t. Nu phn ny qu ln th nn ct chng thnh nhiu th tc
-----------------------------------------------------------------------------------------------------------------------215
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------216
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
t sinh li. Nn dch li chng trnh theo ch { $ D +} hoc s dng mc COMPILER/FIND ERROR
tm li.
126. Files must be var parameters: Tham bin hnh thc kiu tp trong th tc hoc hm
phi c khai bo theo ch truyn theo bin (c tip u VAR).
127. Too many conditional symbols: Khng min nh xc nh cc k hiu iu
kin. Th b bt mt s k hiu hoc gim chiu di ca chng.
128. Misplaced conditional directive: Thiu cc khai bo iu kin, chang hn trong
chng trnh c { $ ELSE }hoc {$ ENDIF} nhng li khng c { $ IFDEF },
{$IFNDEF } hoc {WIFOPT }.
129. ENDIF directive missing: Thiu khai bo $ENDIF}.
130. Error in inital conditonal defines: nh ngha iu kin sai. Cc iu kin ban u
t trong OPTIONS/COMPILER/CONDITIONAL DEFILES khng ng. Nu vit
nhiu iu kin cn ngn chng bng du chm phy.
131. Header does not match previous definitio: Phn u khng ph hp vi khai bo
trc . C th do cc nguyn nhn sau: - u ca th tc v hm ca phn
INTERFACE v phn IMPLEMENTATION khng ph hp vi nhau. - u ca th
tc v hm khai bo trc (bng t ch th FORWARD) khng ph hp vi phn m
t.
132. Criticaldisk error: Li nng v a, th d a cha ng hoc cha c lp
a.
133. Can not evaluate this expression: khng th tnh c g tr ca biu thc, th d
CONTS C = SIN (2); s sinh li v khi khai bo hng dng hm SIN.
134. Exprsseion incorrectly terminated: Biu thc kt thc sai.
135. Invalid format specifier: Dng thc t t sai.
136. Invalid inderect reference: Khng s dng ng phng thc truy nhp trc tip. 137.
Structured variable arenot allowed here: Khng c dng bin cu trc y. Li
pht sinh khi lp trnh vin thc hin cc php ton khng c php dng cho cc
bin cu trc, th d nh nhn hai bn ghi.
138. Can not evaluate withut system unit: Cm tnh ton biu thc khi cha gi module
SYSTEM. Mun lm iu ny ta phi a module SYSTEM vo tp TURBO.TPL.
139. Can not access this symbol: Khng truy nhp c ti k hiu ny.
140. Invalid floating-point operation: S dng sai thao tc vi s thc. C th xy ra
hin tng trn nh (kt qu tnh ton vt qu kh nng biu din ca nh) hoc
php chia cho s 0.
141. Can not compile overlay to memory: Khng th dch overlay trn min nh RAM
(m phi t ch dch ra a (Disk)).
142. Procedure or function variable expected: Cn s dng bin dng th tc hoc hm.
Tham bin hnh thc ca mt th tc hoc hm c th l mt th tc hoc hm.
Cc m li v ngha khi lm vic vi file:
1. File not found: Khng thy tp. Li pht sinh khi s dng cc th tc RESET,
APPEND, RENAME hoc ERASE m khng tm thy tp cn thao tc
3. Path not found: Khng thy ng dn. Li xut hin khi:
-----------------------------------------------------------------------------------------------------------------------217
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------218
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
Cc li rt nng:
200. Division by zero: chia cho s 0.
201. Range chek error: Li kim tra gii hn.
202. Stack overflow error: Ngn xp y.Khi chng trnh thc hin cn c vng nh
t chc bin ng v gi cc th tc v hm. Vng nh ny c t chc theo nguyn
tc ngn xp. Nu thiu ch th sinh li 202.
203. Heap overflow error: Chm u. Khi chng trnh thc hin cn cp pht vng nh
ng cho cc th tc new hoc getmem. Cc vng nh ny c qun l theo nguyn
tc chm (nh b r ca mt cy). Nu thiu ch s sinh li 203.
204. Invalid pointer operation: Thao tc con tr khng ng. Li xut hin khi gi
DISPOSE hoc FREEMEM vi gi tr NIL hoc vi a ch nm ngoi gii hn dnh
cho phn b nh thao tc.
205. Floating point overflow: Ton gi tr thc (real)
206. Floating point underflow: Lch hng gi tr thc (Real). Li ny xut hin khi s
dng cc b ng x l loi 8087/80287/80387
207. Invalid floatingpoint operation: Thao tc sai vi cc gi tr thc (Real). Li xut
hin trong cc trng hp:
- Tham tr ca cc hm TRUNC hoc ROUND khng th bin i c trong phm vi
ca kiu LONGINT (t -2147483648 n +2147483647)
- hm ly cn bc 2 SQRT c tham tr m
- Hm logarit LN cha tham tr khng dng
- Ngn xp ca b ng x l b trn.
208. Overlay manager not installed: Cha t phn h iu khin Overlay. Thng l
thiu th tc OVRINIT (khi to - t ch Overlay) hoc th tc ny khng c
thc hin y .
209. Overlay file read error: Li khi c tp overlay.
-----------------------------------------------------------------------------------------------------------------------220
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------221
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
Mt s vn ng ch trong mn tin hc
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------223
Mt s vn ng ch trong mn tin hc
-----------------------------------------------------------------------------------------------------------------------
Mt s vn ng ch trong mn tin hc
----------------------------------------------------------------------------------------------------------------------Sa li chng trnh
Khi chng trnh chy cho ra kt qu sai, cn sa li (debug) chng trnh. Cn tn dng hiu qu
cc cng c debug ca Free Pascal nh watches, break point, s dng tt cc phm tt F4, F7, F8.
Thng thng chng trnh s b mt vi li nh nh vit sai tn bin trong mt biu thc, thiu
mt on x l,
C th xy ra trng hp pht hin c thut ton sai, nht l i vi nhng bi c thut ton ng
n th iu ny l hon ton c th. Khi ng ht hong! Cn bnh tnh tnh ton xem xc sut
ng n ca chng trnh c cao khng, c nn lm tip bi ton hay khng? ng bao gi
b vng vo mt bi ton qu lu, nu thy lo lng v dnh nhiu thi gian cho mt bi m vn
cho kt qu sai, hy tm thi chuyn sang bi khc.
Trong trng hp cn thay i ton b chng trnh, nh backup chng trnh c vo mt bn
khc, phng khi cn s dng li.
Phong cch vit chng trnh
Phong cch vit chng trnh l iu rt quan trng khi i thi. Vi phong cch vit chng trnh tt
s c li th hn. Nhng iu ny li ch c th c khi luyn tp nhiu. Phong cch vit chng
trnh tt khng c ngha l nhng cch vit cho chng trnh chy nhanh, m l m bo lm
bi nhanh, sa li nhanh, gim xc sut sai ca chng trnh v gim xc sut nhm ln cho ngi
vit.
ng i hi perfect
Trong trng hp khng th ngh ra thut ton ng n cho mt bi ton (hoc bn thn bi ton
cng khng c thut ton ng n, iu ny rt c th xy ra trong k thi quc gia), c gng tm
cch t c mt s im nht nh. Mt chng trnh t 80 hay 90 im hu nh khng khc g
nhiu so vi mt chng trnh perfect. i khi khng ng vit thm mt on chng trnh rt
di ch t thm 10-20 im, nhng i khi ch cn thm mt hai dng cn hay iu kin th
thm ch c th t thm mt s im rt ln. iu quan trng l cn bnh tnh nh gi nhng g
nn lm v khng nn lm.
t c 50% s im
Cc bi ton thng a ra 50% (hoc 30-40%) s test c gii hn nh, c th dng nhng thut
ton n gin hoc duyt. Tt nht nn thm mt iu kin kim tra nu d liu thuc gii hn
ny th dng chng trnh n gin hoc duyt chy.
Sao lu bi lm
Thnh thong hy sao lu bi lm vo nhiu th mc, nhiu a khc nhau phng khi c s c k
thut. Hy to 3 th mc cho 3 bi lm. Lu cc bi s np vo mt ni ring, trnh np nhm bi.
nh gi, quyt nh thng minh
C nhiu th cn nh gi: mc kh ca mi bi, xc sut ng n ca thut ton ngh ra, thi
gian cn thit lm mt bi, kim tra kt qu v to test c kh khng? T quyt nh lm bi
no trc, c nn tip tc ci tin mt bi khng, ci tin nh th no s hiu qu hn, kim tra
chng trnh nh th no chc chn nht. Hy linh hot
-----------------------------------------------------------------------------------------------------------------------225
Mt s vn ng ch trong mn tin hc
----------------------------------------------------------------------------------------------------------------------Khi lp trnh
Khi i thi thng s s dng compiler v IDE Free Pascal.
t ch dn b nh
Trong trng hp chng trnh lp vo th tc quy nhiu ln, cn tng kch thc stack bng
cch t ch dn b nh:
{$M 2000000,0,2000000}
Phong cch vit chng trnh
Nu chng trnh s dng t bin, c th t tn cc bin, mng ngn gn n gin tng tc
lm bi, v d a, b, x, y, mng quy ng l f. Tuy nhin nu chng trnh s dng nhiu bin, cc
bin mang ngha khc nhau th hy t tn cc bin di v mang ngha ca chng trnh nhm
ln. Nn nh vic nhm ln gia cc bin l vn rt kh chu. Nn t tn cc bin bng ting
Vit v vit chng trnh bng ch in thng tng tc lm bi.
Gia cc cu lnh, nn xung dng tn dng cc cng c debug ca Free Pascal nh cc phm
F4, F7, F8.
S dng chui
Nu cn s dng chui c di vt qu 255 k t cn t ch dn {H+} u chng trnh.
Ct dn
s dng cc phm tt Ctrl-C,X,V cho ct dn ch nh Windows, chn Options Keyboard &
mouse nh du Microsoft convention.
-----------------------------------------------------------------------------------------------------------------------226