You are on page 1of 52

Mt s vn c s

ca Tin hc
Bui 3:
Cu trc d liu v thut gii

Gio vin: T Thc Nhu


Khoa CNTT trng H Lc Hng
QUI
RECURVE

2 M ha
Khi nim Qui

Mt i tng c gi l qui nu n hoc 1 phn ca n


c nh nghi thng qua khi nim v chnh n.
V d: nh nghi php ton giai tha, k hiu: N!
(a) Nu N = 0, th N! = 1
(b) nu N > 0 th N! = N*(N-1)!
V d: nh nghi UCLN ca 2 s x v y, k hiu: UCLN(x, y)
(a)UCLN(x,y) = x nu y = 0
(b)UCLN(x,y) = UCLN(y, phn d ca x/y) nu y<>0

3 M ha
Chng trnh qui

Mt chng trnh l qui nu trong chng trnh c li


gi n chnh n.
V d: nh ngha hm tnh N! theo qui.
int GiaiThua(int N)
{
if (N == 0) return 1;
return N * GiaiThua(N - 1);
}

4 M ha
Mt nh nghi qui phi c 2 thnh phn:

Thnh phn dng: Khng cha khi nim ang nh nghi


V d: N! = 1
Thnh phn qui: c cha khi nim ang nh nghi

5 M ha
V d: Tnh UCLN(x,y) theo thut ton Euclide
(a)UCLN(x,y) = x nu y = 0
(b)UCLN(x,y) = UCLN(y, phn d ca x/y) nu y<>0

int UCLN(int x, int y)


{
if (y == 0) return x;
return UCLN(y, x % y);
}

6 M ha
THUT GII QUAY LUI
BACK TRACKING

7 M ha
Tng quan thut gii Quay lui (Back Tracking)

Dng gii bi ton lit k cc cu hnh


Mi cu hnh c xc nh bng cch xy dng tun t tng thnh
phn trong cu hnh.
Mi thnh phn c xc nh bng cch chn la d liu trong tp kh
nng c xut.

Cu hnh mt li gii X1 X2 X3 Xn

Tp kh nng K1 K2 Km

8 M ha
M hnh thut gii quay lui:
Xc nh phn t Xi bng quy
void Try( int i )
{
If (Xi l phn t cui cng trong cu hnh)
< Thng bo cu hnh tm c>;
else
for ( mi Kj thuc tp kh nng c cho Xi)
[ if ( Chp nhn Kj ) ]
{
Th chn Kj cho Xi;
Try( i+1); //Gi quy xc nh phn t Xi+1
B ghi nhn Kj chn cho Xi chn kh nng khc;
}
}

9 M ha
Hai im mu cht quyt nh phc tp ca bi ton l:
1. Xc nh tp kh nng c: Ph thuc vo vic phn tch
nhu cu d liu ca tng thnh phn trong cu hnh
2. Kim tra kh nng c phi ph hp vi thnh phn cn
xc nh.

10 M ha
Bi ton: Lit k cc dy nh phn c di n
Phn tch:
Biu din cu hnh dy nh phn di dng: X[1..n]
Tp kh nng c cho mi phn t Xi l {0, 1}
Thut gii xc nh phn t Xi ca dy nh phn nh sau:
void Try(int i)
{
if ( i > n ) <Thng bo cu hnh tm c>;
else
for (int j =0; j<= 1; j++)
{
X[ i ] = j;
Try( i + 1 );
}
}
11 M ha
M i tun: ch ra hnh trnh ca qun M xut pht
t mt trn bn c i qua tt c cc cn li ca
bn c, mi ng 1 ln.
Phn tch:
Cu hnh li gii l BC[1..n][1..n]
cha s th t hnh trnh ca 2
(u, v)
qun M.
Tp kh nng cha cc gi tr
dng tnh ta cc k tip 1
(x, y)
dx[1..8] = {-2,-1, 1, 2, 2, 1, -1, -2}
dy[1..8] = { 1, 2, 2, 1, -1, -2, -2, -1}
iu kin chn kh nng cho
bc i th i l c chn
phi :
Thuc bn c
V cha i qua

12 M ha
Thut gii xc nh bc i th i ca qun M
void Try(int i)
{ int j,u,v;
if (i > n*n) <Thng bo cu hnh tm c>;
else
for ( j =1; j <= 8 ; j++)
{
u =x+dx[j]; v = y+dy[j];
if (u >= 1 && u <= n && v >= 1 && v<=n && BC[u,v] = 0)
{
x = u; y = v;
BC[u,v] = i;
Try(i+1);
x = u-dx[j]; y = v-dy[j];
BC[u,v] = 0;
}
}
}

13 M ha
Bi ton:
Lit k cc hon v ca dy s {1, 2, .., n}

Biu din cu hnh mt hon v: X[1..n]


Tp kh nng c: { 1, 2, .., n }
Nhng do Xi <> Xj vi i <> j. Nn phi kim tra gi tr c
cho Xi phi khc vi cc gi tr chn cho cc thnh phn
trc .
Hng gii quyt chung l t chc cc bin trng thi lu
tr thng tin phc v cho vic kim tra:
Dng mng F[1..n] ghi nh tnh trng s dng ca tng
kh nng trong tp S={1, 2, .., n}, vi qui c:
F[ j ] = 0 nu j cha s dng
F[ j ] = 1 nu j s dng

14 M ha
Thut gii xc nh phn t Xi ca mt hon v

void Try(int i)
{ if ( i > n ) <Thng bo cu hnh tm c>;
else
for (int j = 1; j<= n; j++)
if (F[j] = 0)
{
X[i] = j;
F[j] = 1;
Try( i + 1 );
F[j] = 0;
}
}

15 M ha
V d: Lit k cc tp con k phn t
ca tp S = {1, 2, .., n}. Trong (k <= n)

Biu din cu hnh mt tp con K phn t: X[1..K]


Tp kh nng c: { 1, 2, .., n }
Nhng do Xi <> Xj vi i <> j. Nn cc gi tr c cho Xi
phi khc vi cc gi tr c cho cc thnh phn trc
Hng gii quyt:
Dng mng F[1..N] ghi nh tnh trng s dng ca tng
kh nng trong tp S={1, 2, .., N}, vi qui c:
F[ j ] = 0 nu j cha s dng
F[ j ] = 1 nu j s dng

16 M ha
Thut gii xc nh phn t Xi ca mt tp con

void Try(int i)
{ if ( i > K ) <Thng bo cu hnh tm c>;
else
for (int j = 1; j<= N; j++)
if (F[j] = 0)
{
X[i] = j;
F[j] = 1;
Try( i + 1 );
F[j] = 0;
}
}

17 M ha
Mt cch gii khc ca bi ton tp con

a ra iu kin cho mi tp con l :


1 <= X[1] < X[2] < .. < X[ i ] < .. < X[K-1] < X[K] <= N
Nhn xt:
X[K] <= N
X[K-1] <= X[K] - 1 <= N - 1

X[ i ] = X[K-(K-i)] <= N - (K - i)
Do , ta c th gii hn gi tr c cho thnh phn X[i]
trong khong t : X[i-1]+1 n (N K + i)
iu ny cng ng cho c trng hp i = 1, ta thm vo
X[0] = 0.

18 M ha
Thut gii xc nh phn t Xi ca mt tp con

void Try(int i)
{
if ( i > K ) <Thng bo cu hnh tm c>;
else
for (int j = X[i-1]+1; j<= N-K+i; j++)
{
X[i] = j;
Try( i + 1 );
}
}

19 M ha
K THUT NHNH CN

20 M ha
Cng dng

Dng gii quyt bi ton tm cu hnh tt nht trong cc cu


hnh lit k bng thut ton quay lui.
Gim thi gian thc hin ca thut ton quay lui.
K thut nhnh cn thm vo cho thut ton quay lui kh nng nh
gi cu hnh tng bc.
Nu ti bc th i nh gi c cu hnh khng ti u th quay lui
ngay khng cn phi gi quy tm tip cc thnh phn khc ca cu
hnh.

21 M ha
M hnh nh gi nhnh cn
trong thut ton quay lui:
// Khi to cu hnh BESTCONFIG xu nht
void Init()
{
<Khi to mt cu hnh BESTCONFIG xu nht>
}
//M hnh thut ton quay lui xc nh X[i] c nh gi nhnh cn
void Try( int i )
{
If (Xi l phn t cui cng trong cu hnh)
<Cp nht BESTCONFIG>;
else
for ( mi Kj thuc tp kh nng c cho Xi)
[ if ( Chp nhn Kj ) ]
{
Th chn Kj cho Xi;
if (cn hy vng tm ra cu hnh tt hn BESTCONFIG) Try( i+1);
B ghi nhn Kj chn cho Xi chn kh nng khc;
}
}
22 M ha
Bi ton ngi du lch

C n thnh ph (c nh s t 1 n n). Mt ngi i du lch xut pht t


mt thnh ph mun i thm cc thnh ph khc, mi thnh ph ng mt ln
ri quay v ni xut pht. Gi thit bit c chi ph i t thnh ph i n thnh
ph j l C[i,j], 1 i, j < n.
Hy tm 1 hnh trnh cho ngi du lch tng chi ph theo hnh trnh ny l t
nht.

2
1 3 0 3 2 1
3 3 0 1 2
1
1 2 1 0 4
2
1 2 4 0
2 4
4 Ma trn chi ph C

23 M ha
Phn tch:

Cu hnh li gii : X[1..n]


X[1] = 1 c xem l thnh ph xut pht.
Mt hnh trnh l mt hon v ca cc thnh ph 2, .. ,n.
Tp kh nng c : {2, 3,.., n}
Cu hnh BESTCONFIG:
Smin l tng chi ph thp nht chn trong cc hnh trnh tm
c. Khi to ban u cho Smin = Cmax * (n + 1), trong Cmax
l chi ph ln nht trong cc chi ph C[i, j] cho
BestWay[1..n] : cha hnh trnh c chi ph thp nht.

24 M ha
Cc vn cn thc hin khi xc nh thnh phn X[i]:
1. Kim tra kh nng c cho thnh phn X[i] hp l: kh nng
cha c chn cho cc thnh phn trc X[i].
2. Ghi nhn tng chi ph cho hnh trnh t X[1] n X[i].
3. D on cu hnh li gii tt hn hay xu hn BESTCONFIG

25 M ha
2- Ghi nhn tng chi ph
cho hnh trnh t X[1] n X[i]

Mng T[1..n] ghi nhn tng chi ph ti mi bc


T[i] cha tng chi ph cho hnh trnh t X[1] n X[i]
Nu thnh ph j c c cho thnh phn X[i] th:
T[i] = T[i-1] + C[X[i-1], j]
Tng chi ph ca hnh trnh t X[1] n X[n] v tr v X[1]
l: T[n] + C[X[n], 1]
2
1 3
3
1
1
2

2 4
4

26 M ha
3- D on cu hnh li gii
tt hn hay xu hn BESTCONFIG

Gi Cmin l chi ph thp nht trong cc chi ph C[i, j] cho.


Sau khi xc nh X[i], nu i tip (n i +1) thnh ph na th chi
ph ti thiu phi l T[i] + Cmin*(n-i+1).
Nu T[i] + C[i,j]*(n-i+1) < Smin th c kh nng tm c hnh
trnh tt hn BESTCONFIG, ngc li th hnh trnh tm c
s khng tt hn BESTCONFIG.

27 M ha
Thut gii xc nh thnh phn X[i]

void Try(int i)
{ if ( i > n )
if ( T[n] + C[x[n] , 1] < Smin )
{
Smin = T[n] + C[x[n] , 1];
Ghi nhn X l hnh trnh tt nht: Bestway = X;
}
else
for (int j = 2; j <= n; j++)
if (F[ j ] = 0)
{
X[ i ] = j; F[ j ] = 1;
T[ i ] = T[i -1] + C[ x[i -1], j];
if ( T[ i ] + (n-i+1)*Cmin < Smin) Try( i + 1 );
F[ j ] = 0;
}
}
28 M ha
Bi ton chui 123

Tm mt chui c di n (n <= 100) ch gm cc s 1, 2, 3


tha mn iu kin:
1. Hai chui con bt k lin nhau u khc nhau
2. C t s 3 nht

V d: n = 9. Chui no sau y hp l?
131213212
123212313
123212321

29 M ha
Phn tch

Cu hnh li gii: X[1..n]


Tp kh nng c: { 1, 2, 3 }
Cu hnh BESTCONFIG:
1. Min3: cha s lng s 3 t nht. Khi to Min3 = n
2. BestStr[1..n]: cha chui c s lng s 3 t nht.

30 M ha
Cc vn cn thc hin khi xc nh thnh phn X[i]:
1. Kim tra kh nng c cho thnh phn X[ i ] hp l: ngha l
chui X[1..i] khng c 2 chui con lin k ging nhau.
2. Ghi nhn s lng s 3 c trong chui X[1..i]
3. D on cu hnh li gii tt hn hay xu hn BESTCONFIG

31 M ha
1- Kim tra chui X[1..i] khng c 2 chui con
lin k ging nhau.
V d: int ChuoiHopLe(int i)
123212321 {
123212321 for (L = 1; L <= i / 2; L++)
123212321 if ( X[(iL+1) .. i] = X[(i2L+1) .. (i- L)] )
123212321 return 0;
123212321 return 1;
}

32 M ha
2- Ghi nhn s lng s 3 trong chui X[1..i]

Mng T[1..n] ghi nhn s lng s 3 ti mi bc


T[i] cha s lng s 3 trong chui X[1..i ]
Nu gi tr c l 3 th T[i] = T[i-1] +1,
ngc li th T[i] = T[i-1]

33 M ha
3- D on cu hnh li gii
tt hn hay xu hn BESTCONFIG
131213212 Do 2 chui con k phi khc nhau nn:
131213212 Trong 4 s lin tip phi c mt s 3.
131213212 Do , mt dy con c di l k phi c t nht (k / 4) s 3.
131213212 Sau khi xc nh thnh phn X[i] v ghi nhn s lng s 3
trong T[i], ta cn (n i) thnh phn cn xc nh.
131213212
Do , cu hnh tm c phi c t nht (T[i] + (n-i)/4) s
131213212 lng s 3.
Nu (T[i] + (n-i)/4) < Min3 th c kh nng tm c cu hnh
tt hn BESTCONFIG, ngc li th cu hnh tm c s
khng tt hn BESTCONFIG.

34 M ha
Thut gii xc nh thnh phn X[i]
void Try(int i)
{ if ( i > n )
{
Min3 = T[n];
Ghi nhn X l chui tt nht: BestStr = X;
}
else
for (int j = 1; j <= 3; j++)
{
X[i] = j;
if (ChuoiHopLe( i ))
{
if (j == 3) T[i] = T[i -1] + 1;
else T[i] = T[i -1];
if ( T[ i ] + (n - i)/4 < Min3) Try( i + 1 );
}
}
}
35 M ha
Gii thut chia tr
(Devide and conquer)

36 M ha
Tng quan gii thut chia tr

K thut chia tr bao gm hai qu trnh:


Phn chia bi ton cho thnh cc bi ton con cng loi,
ln lt gii tng bi ton con mt cch c lp.
Tng hp kt qu t bi ton con c li gii ca bi ton
ban u.

Thng thng, chia b d liu u vo thnh cc phn ring


r, sau gi 2 th tc qui vi b d liu u vo l cc
phn va chia.

37 M ha
Mt s bi ton tiu biu

Tm nh phn
QuickSort
Nhn s nguyn ln

38 M ha
Tm nh phn trn mng sp th t

Bi ton : Cho mng A[1..n] c sp xp theo th t khng


gim v x. Tm i sao cho A[i] = x.
Phn tch:
Do mng A sp th t tng nn x:
Hoc l bng phn t nm v tr gia mng A
Hoc l nm na bn tri (x<phn t gia mng A )
Hoc l nm na bn phi (x>phn t gia mng A )

39 M ha
Thut gii: Tm nh phn trn mng sp th t

int Bsearch(x, A[ ], int L, int R)


{
if (L > R) then return -1;
else
{
M = (L + R)/2;
If (x = A[M]) return M;
If (x < A[M]) return Bsearch(x, A, L, M-1)
return Bsearch (x, A, M+1, R)
}
}

40 M ha
Bi ton tng t:
Tm ng i cho xe c ti trng ln nht
C N thnh ph, cho bit mi con ng ni t thnh ph i n thnh ph j
(vi i <> j) c th cho xe vi trng ti khng qu C[i, j] i qua.
Cho thnh ph xut pht x v thnh ph ch y. Hy tm mt ng i t
thnh ph x ti thnh ph y m trng ti ln nht c th c.
tng:
Khi to: Cmax = MAX{Cij} vi mi i khc j; Cmin =Min{Cij}
Xt on [ Cmin , Cmax]
1. t Cm = (Cmax+Cmin) div 2.
2. Ta kim tra xem c tn ti ng i t x ti y cho xe c trng ti Cm hay
khng?
a) Nu tn ti ng i, ta ghi nhn kt qu v xt tip on [Cm+1,Cmax].
b) Nu khng tn ti ng i, ta chuyn sang xt on [Cmin ,Cm -1].
3. Lp li cho ti khi on c gi tr u ln hn gi tr cui.

41 M ha
Thut gii chn l trnh c ti trong ln nht
void Chon(int Cmin, int Cmax)
{
if (Cmin <= Cmax)
{
Cm = (Cmin + Cmax)/2;
d = 0; // di l trnh
LoTrinh[0] = x; // Mng ghi nhn l trnh i t x n y
if (TonTai(LoTrinh, d, x, Cm ) )
{
GhiNhan(LoTrinh, d, Cm);
Chon(Cm+1, Cmax);
}
else Chon(Cmin, Cm-1) ;
}
}
42 M ha
Thut gii kim tra tn ti l trnh cho xe
c ti trng Cm i qua
int TonTai(LoTrinh[ ], int &d, int i, int Cm)
{
int j;
if ( i = y ) return 1;
for (j = 0; j < n; j++)
if (F[ j ] = 0 && C[ i ][ j ] >= Cm)
{
F[ j ] = 1;
d++;
LoTrinh[d] = j;
if (TonTai(LoTrinh, d, j, Cm)) return 1;
d--;
F[ j ] = 0;
}
return 0;
}
43 M ha
Bi ton tng t

Cho N v S l 2 s nguyn dng.


Trong , N<= 100 v S <= 10100
Bit rng cn bc N ca mt s S l mt s nguyn < 106.
Hy tm cn bc N ca S
V d:
S = 30517578125
N = 15
KQ = 5

44 M ha
Thut ton sp xp mng Quick Sort
tng thut ton sp xp tng cho dy X[L .. R]
Bc 1: Phn chia dy X[L .. R] thnh 2 dy con bng cch:
Chn gi tr P ca 1 phn t trn dy X[L .. R] lm mc phn
hoch.
i ch cc phn t X[i]>= P vi cc phn t X[j]<= P, vi i < j
Khi i > j, dy ban u c phn thnh 2 phn:
1. X[ L .. j ] cha gi tr <= P
3. X[ j .. i ] cha gi tr = P
2. X[ i .. R ] cha gi tr >= P
Bc 2:
Nu X[L .. j] c hn 1 phn t th sp xp tng dy X[L .. j]
Nu X[i .. R] c hn 1 phn t th sp xp tng dy X[i .. R]
45 M ha
Minh ha thut ton
5 1 7 5 3 6 2 9
i j
2 1 7 5 3 6 5 9
i j

2 1 3 5 7 6 5 9
i=j
2 1 3 5 7 6 5 9
L j i R

2 1 3 7 6 5 9
1 2 3 5 6 7 9
L=j i=R L=j i R

7 9
7 9
j L i=R

1 2 3 5 5 6 7 9
46 M ha
Thut gii Quick Sort
void QuickSort(X[L .. R])
{
int i = L;
int j = R;
P = X[i];
while (i <= j)
{
while (X[i] < P) i++;
while (X[j] > P) j--;
if (i <= j)
{
if (X[i] <> X[j]) Hoanvi(X[i], X[j]);
i++; j--;
}
}
if (L < j) QuickSort(X[L ..j ]);
if (i < R) QuickSort(X[i .. R]);
}
47 M ha
Nhn hai s nguyn X.Y c n ch s
Phn tch:
Chia X thnh 2 s nguyn c n/2 ch s: X=A.10n/2+B
Chia Y thnh 2 s nguyn c n/2 ch s: Y=C.10n/2+D
X.Y = A.C.10n+(A.D+B.C)10n/2+B.D
Mt khc: R = (A + B)(C + D) = A.C + A.D + B.C + B.D
A.D+B.C = R A.C B.D
Khi : X.Y = A.C.10n+(R-A.C-B.D)10n/2+B.D
Php nhn vi 10n thc cht l thm n ch s 0
3 php nhn s nguyn ln n/2 ch s :A.C, B.D, (A+B)(C+D)
tip tc c phn chia cho n khi 2 ton hng ch c mt ch
s.

48 M ha
V d: nhn X=981 vi Y=1234.

Trc tin chng ta in thm vo ton hng ngn hn cc s 0 v ngha


lm cho hai ton hng c cng di: 981 tr thnh 0981.
Sau tch tng ton hng thnh hai na:
X = 0981 cho ra A = 09 v B = 81 981 = A.102 + B
Y = 1234 thnh C = 12 v D = 34 1234 = C.102 + D
Do , tch cn tm c th tnh c l:
P = A.C = 09 * 12 = 108
Q = B.D = 81 * 34 = 2754
R = (A + B)(C + D) = 90 * 46 = 4140
v cui cng
981 x 1234 = P.104 + (R P Q).102 + Q
= 1080000 + 127800 + 2754 = 1210554.

49 M ha
Thut gii: Nhn 2 s nguyn c n ch s

SoLon Nhan(SoLon X, SoLon Y, int n)


{
If ( n = 1) return X*Y;
A=left(X,n/2);
B=right(X,n/2);
C=left(Y,n/2);
D=right(Y,n/2);
P = Nhan(A,C,n/2);
Q = Nhan(B,D,n/2);
R = Nhan(A+B,D+C,n/2);
return (P*10n +(R-P-Q)*10n/2 + Q);
}
50 M ha
Mt s bi ton bui 3

1. Mi ht x ngu c 6 mt, mi mt cha t 1 n 6 du chm. Lit k cc kt


qu phn bit c th c khi cng lc 3 ht x ngu, khng k th t xut
hin trn cc ht x ngu, v d {1, 2, 3} v {2, 3, 1} l nh nhau.
2. Cho 1 mng gm n cc s nguyn a[1], a[2],.., a[n] v mt s nguyn S. Hy tm
tt c cc dy con : 1 <= x1 < x2 < .. < xk <= n sao cho: a[x1] + a[x2] + ..+ a[xk] =
S
3. Tnh s cch v in tt c cc cch phn tch s t nhin N >1 thnh tng cc s
t nhin nh hn n (mi phn tch ch k ng mt ln: 4+3+1 v 1+4+3 ch l
mt)
4. Hy tm tp hp cc du '+, - v khng du gia dy s 123456789 sao cho
c mt biu thc c gi tr bng = N cho trc. V d: N = 280 ta c cc t
hp sau: 1+2+345-67+8-9; 1+234-5+67-8-9; 123-4+5+67+89
5. Cho mt dy N s nguyn. Hy loi b khi dy mt s phn t c mt
dy con, c t nht 2 phn t, khng gim v di nht. In ra dy con .
V d: N = 10
2 6 -7 5 8 1 -3 5 15 9
Kt qu tm c dy con khng gim di nht c 4 phn t:
-7 -3 5 9

51 M ha
6. Trn bn c vung 4x4 xp 8 qun c gm 4 qun mu en v 4 qun mu trng sao
cho trn mi hng v mi ct c ng mt qun mu en v 1 qun mu trng. Th hin
trn mn hnh cc cch sp xp ny
7. Mt ngi cha mang theo s tin l M vo mt ca hng mua K mn qu tng cho
cc con. Trong ca hng c N mt hng, mt hng th i c gi tin l Ai. Ngi cha cn
chn K (K < N) mt hng khc nhau lm qu sao cho tng s tin ca K mt hng ny
khng ln hn s tin mang theo v chnh lch gi tin ca K mt hng l thp nht.
8. Mt dy chuyn sn xut c N (N<=100) v tr. C N cng nhn, cho bit nng sut ca
cng nhn th i m lm v tr th j l Cij (Cij : Integer). Hy sp xp N cng nhn vo N
v tr sao cho t nng sut cao nht.
9. Cho ma trn vung cp 8 cha cc s nguyn. Tm gi tr ln nht ca tng 8 s hng
trn ma trn s trn sao cho 2 s hng bt k trong 8 s hng trn khng nm trn cng
mt hng, khng cng nm trn mt ct v khng cng nm trn ng cho .
10. Cho mt bng A c M hng, N ct (3 M, N 50), Mi phn t ca bng l mt s nguyn
nhn gi tr t 0 n 99. Cho mt s K (2 K Min(M, N)). Tm K phn t trong bng A
tng ca K phn t ny l ln nht, vi iu kin l trn mi hng chn nhiu nht mt
phn t, mi ct chn nhiu nht mt phn t.
11. Mt c s sn xut cn phn cng M nhn vin tham gia thc hin N hp ng sn xut
sn phm (M >= N). Mi nhn vin ch tham gia thc hin mt hp ng. Ngi ta d
tnh rng, nu phn cng i nhn vin tham gia thc hin hp ng j th c thi gian hon
thnh hp ng l T[i,j]. Hy tm phng n phn cng mi hp ng bao nhiu nhn
vin sao cho tng s thi gian hon thnh N hp ng l t nht.

52 M ha

You might also like