Professional Documents
Culture Documents
S1 S2 F1 S3 F2 F3
CuỘC HỌP 1
CuỘC HỌP 2
CuỘC HỌP 3
void nhapDuLieuCuocHop();
void sapXep();//sắp xếp tăng theo
thời gian kết thúc
void boTriLichHop();
void xuatLichHop();
HÀM BỐ TRÍ LỊCH HỌP
void boTriLichHop()
{
//dem=0;
luu[dem]=0;
for(int i=1; i<n; ++i)
{
if(s[i]>=f[luu[dem]])
{
dem++;
luu[dem]=i;
}
}
}
THÍ DỤ
i si fi
1 1 3
2 5 7
3 8 10
4 6 11
5 11 14
6 15 17
7 17 19
8 19 26
9 23 25
10 24 29
NHẬN XÉT
Ví dụ:
i 0 1 2 3 4 5 6 7
s[i] 1 4 3 12 11 10 14 27
f[i] 3 6 9 13 18 22 27 31
L[i] 1 2 2 3 3 3 4 5
truoc[i] -1 0 0 1 1 1 3 6
TẠO BẢNG
HÀM TẠO BẢNG
void taoBangLichHop()
{
//TH i=0
L[0]=1;
truoc[0]=-1;
//TH i>0
for(int i=1; i<n; ++i)
{
LMax=0;
for(int j=0; j<i; ++j)
if(f[j]<=s[i] && LMax<L[j])
{
LMax=L[j];
luuj=j;
}
L[i]=LMax+1;
truoc[i]=luuj;
}
}
TRA BẢNG
Chiều dài dãy cuộc họp được sắp dài nhất là
Max{L[i]} với i=1..n-1
Dựa vào mảng truoc[] ta tìm được dãy cuộc
họp cần tìm.
Ví dụ: