Professional Documents
Culture Documents
De Thi Chon HSG Tin Hoc Cap Tinh 2017-2018
De Thi Chon HSG Tin Hoc Cap Tinh 2017-2018
Hãy lập trình giải các bài toán sau đây và đặt tên tệp chương trình lần lượt là BAI1.*,
BAI2.*, BAI3.*.
Bài 1. Xâu ngoặc (6 điểm)
Qui ước : C(A) gọi là cấp của xâu ngoặc A;
L(A) gọi là độ dài xâu ngoặc A;
Xâu rỗng là xâu không chứa ký nào.
Xâu ngoặc được tạo đệ qui như sau:
+ Xâu rỗng A là một xâu ngoặc có L(A) =0, C(A)=0;
+ Nếu A là xâu ngoặc thì tạo ra được xâu ngoặc X = (A) có L(X) = L(A) +1 và
C(X) = C(A)+1;
+ Nếu A, B là xâu ngoặc thì tạo ra được xâu ngoặc X=AB có L(X) =L(A)+L(B) và
C(X) = max (C(A), C(B)).
Ví dụ : Xâu ngoặc A = () khi đó L(A) =1 và C(A) =1;
Từ A tạo ra xâu B = (A) = (()) có L(B)= 2 và C(B)=2;
Từ A tạo ra xâu D = AA = ()() có L(D)=2 và C(D)=1;
Từ A và B tạo xâu X = AB = ()(()) có L(X)=3 và C(X)=2.
Gọi S là tập các xâu ngoặc khác nhau được tạo ra theo qui tắc đệ qui trên. Cho trước
2 số nguyên dương N và k. Hãy cho biết trong tập S có bao nhiêu xâu ngoặc có độ dài bằng
N và có cấp bằng k.
Dữ liệu vào: Đọc từ tệp văn bản XN.INP có qui cách như sau:
+ Dòng đầu tiên chứa 1 số nguyên dương M ( M≤10) ứng với M bộ dữ liệu;
+ Trong M dòng tiếp theo, dòng thứ i (bộ dữ liệu thứ i) chứa 2 số nguyên dương N và
k (N≤30, k≤ N), hai số cách nhau ít nhất một dấu phân cách.
Dữ liệu ra: Ghi ra tệp văn bản XN.OUT gồm M dòng, dòng thứ i ghi một số nguyên duy
nhất là số lượng xâu ngoặc có độ dài N và có cấp bằng k trong S. Trong đó N, k tương ứng
với bộ dữ liệu thứ i trong tệp văn bản XN.INP.
Trang 1/4
Ví dụ:
XN.INP XN.OUT Giải thích các xâu được tạo ra
2 3 (())(); ()(()); (()())
32 5 ((()())); ((())()); ((()))(); (()(())); ()((()))
43
xxxx
4 8 25 52
Chú ý: Các số trên cùng một dòng trong tệp dữ liệu vào/ ra cách nhau ít nhất một dấu cách.
----------------Hết----------------
4 2
6 2
5 3
Trang 3/4
7 3
Trang 4/4