Còn một vài trường hợp đặc biệt khác chúng ta cũng không cần quan tâm. ---HẾT---.[r]
(1)SỞ GD&ĐT BẠC LIÊU KỲ THI HSG ĐBSCL LẦN THỨ 16 - NĂM 2012
Đề thi đề nghị Môn: Tin học
(Gồm câu) Thời gian: 180 phút (Không kể thời gian giao đề)
HƯỚNG DẪN CHẤM: Câu (6 điểm) - Cặp số song sinh
Ta đặt c= a xor b đặt c= |a-b| (mặc dù kết khơng giống nhau, tính chất cần xét giống nhau)
Xét c: Nếu c = 2k a, b cặp số song sinh Ngược lại không. Cách tạo test:
- Cho số a b
- Cộng vào a b số dạng 2k (rất dễ tính nhẫm) ta cặp số song sinh
- Cộng vào a b số dạng <> 2k ta số là cặp số song sinh
Cách chấm:
- Vì lúc tạo input ta nhẫm tính kết nên việc chấm so sánh kết
Câu (7 điểm) - Điền khuyết xâu kí tự
Ta xóa bớt a b vài ký tự để thu xâu kí tự giống dài Sau ta điền khuyết ký tự dư bên a vào bên b ngược lại
Bài khó tạo test khó Ngoại trừ ta cho xâu viết chương trình kiểm tra lại Cịn việc nhẫm tính tạo test đơn giản
Chương trình kiểm tra gợi ý: cho trước xâu sinh kết
Var a:array[0 100,0 100] of byte; s1,s2,s3,s4:string;
i,j:byte; Begin
s1:='121212qqw12121212'; s2:='121wer21212121212'; s3:='';
For i:=0 to length(s1) a[0,i]:=0;
For i:=1 to length(s2) a[i,0]:=0;
For i:=1 to length(s1) For j:=1 to length(s2) Begin
If s1[i]=s2[j] then a[i,j]:= a[i-1,j-1]+1 else If a[i-1,j]>a[i,j-1] then a[i,j]:= a[i-1,j] Else a[i,j]:= a[i,j-1];
End;
i:= length(s1); j:= length(s2); Repeat
Begin
If (s1[i] = s2[j]) and (a[i,j] = a[i-1,j-1]+ 1) then Begin
(2)dec(j); dec(i); End else
If a[i,j] = a[i-1,j] then dec(i) else dec(j); End;
Until (i*j=0); s4:='';
For i:=1 to length(s3) Begin
s4:=s4+ copy(s1,1,pos(s3[i],s1)-1); delete(s1,1,pos(s3[i],s1));
s4:=s4+ copy(s2,1,pos(s3[i],s2)-1); delete(s2,1,pos(s3[i],s2));
s4:=s4+s3[i]; End;
s4:=s4+s1+s2; Write(s4); Readln; end
Chú ý chấm cho xâu kết khác nhau, nên ta xét chiều dài xâu sinh tính nhẫm trường hợp khác đáp án
Câu (7 điểm) - Dãy đặc biệt
Để giải học sinh cần phải nắm kỹ thuật tạo ma phương chẵn, ma phương lẻ, vào số phép toán biến đổi số học
Cách tạo test
- Để tạo dãy không thỏa mãn có cách sau:
o N khơng số phương có trùng lặp phần tử dãy
o N số phương Tổng phần tử dãy khơng chia hết cho bậc n
Còn số trường hợp đặc biệt khác không cần quan tâm
- Để tạo dãy dãy đặc biệt thì:
o N số phương
o Tạo dãy an cấp số cộng tùy ý cơng sai =1
o Hốn đổi phần tử an
Còn vài trường hợp đặc biệt khác không cần quan tâm