Professional Documents
Culture Documents
C[i,j] = Max{C[i,j-1],C[i-1,j],C[i-1,j-1]+x}
( Vì : nếu A[i]=B[j] thì C[i,j]= C[i-1,j-1]+1
nếu A[i] không có trong B(j) thì C[i,j]= C[i-1,j]
nếu B[j] không có trong A(i) thì C[i,j]= C[i,j-1] )
Bài 2: ( Bài Mã vạch )
Cho bộ 3 số (N,M,K) nguyên không âm (N<=100,M,K<=33) . Người ta định
nghĩa mỗi bộ 3 số trên ứng với 1 mã là một xâu kí tự dạng nhị phân thoả mãn :
+ Chứa đúng N chữ số
+ Các chữ số 0 liền nhau hoặc các chữ số 1 liền nhau gọi là 1 vạch , phải có đúng M vạch
+ Số chữ số trong 1 vạch gọi là độ rộng của vạch . Độ rộng tối đa của vạch là K
+ Vạch đầu tiên của mã phải là vạch gồm các chữ số 1.
Giải thuật
Cho bộ 3 số (N,M,K) nguyên không âm (N<=100,M,K<=33) . Người ta định
nghĩa mỗi bộ 3 số trên ứng với 1 mã là một xâu kí tự dạng nhị phân thoả mãn :
+ Chứa đúng N chữ số
+ Các chữ số 0 liền nhau hoặc các chữ số 1 liền nhau gọi là 1 vạch , phải có đúng M vạch
+ Số chữ số trong 1 vạch gọi là độ rộng của vạch . Độ rộng tối đa của vạch là K
+ Vạch đầu tiên của mã phải là vạch gồm các chữ số 1.
Lập trình thực hiện các yêu cầu sau :
1) Dữ liệu tổ chức như sau :
- Dòng đầu là 3 số N,M,K
- Dòng thứ 2 là số p
- P dòng tiếp theo : mỗi dòng là một mã M i (0< i <P+1) của bộ mã (M,N,K)
2) Thông tin ra:
- Dòng đầu là số nêu tổng số mã của bộ mã (N,M,K)
- Tiếp theo gồm p dòng , mỗi dòng ghi 1 số là vị trí của mã M i trong tự điển
xếp tăng các mã của bộ mã (N,M,K) .
15
Thí dụ 16
743 1001000 12
6 1000100 3
1110100 1101110 1
1101100 1110110 13
16
Giải thuật
Bài 3. Cho một dãy n số nguyên. Tìm tất cả các dãy con không giảm dài nhất.
a) Dãy con kề nhau.
b) Dãy con không kề nhau.
Bài 4. Cho mô ̣t dãy n số nguyên, tìm tất cả các dãy con (không kề nhau) có tổng bằng M.
Bài 6. Cho hai chuỗi ký tự C1 và C2, tìm chuỗi con chung (kề nhau) dài nhất của hai
chuỗi C1 và C2. Ví dụ C1=ABCAXTYAB, C2=QUABAXTBCA.
Bài 7. Cho hai chuỗi ký tự C1 và C2, tìm chuỗi con chung (không kề nhau) dài nhất của
hai chuỗi C1 và C2. Ví dụ
a) C1=AKLDEMGNIJ, C2=KALDMNEGOI.
b) C1=KZEIAOLHNM, C2=KEZAIOHLMN.
8. Bài tam giác vui vẻ
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Hình trên biểu diễn mô ̣t tam giác số. Hãy tính tổng lớn nhất của các số trên con đường
bắt đầu từ đỉnh và kết thúc đâu đó ở đáy. Cho biết mỗi bước có thể đi chéo xuống phía
trái hoặc đi chéo xuống phía phải. Giải bài toán này bằng phương pháp quy hoạch động.