Sở Giáo Dục Đào Tạo
Tổngquan
Kì Thi Chọn HsG LớP 9 thcs Năm Học 2008-2009
Đề thi môn :Tin học
(Thời gian 150 phút không kể thời gian giao đề)
(Đề thi gồm 2 trang )
Tên bài Tên fie chơng trình Tên file dữ liệu Tênfile kết quả thời gian
Bài 1 Xếp diêm hms.pas hms.inp hms.out 1s/test
Bài 2 Chu kỳ xâu cyc.pas cyc.inp cyc.out 1s/test
Bài 3 Hoán vị có điều kiện per.pas per.inp per.out 1s/test
Lập trình giải các bài toán sau:
Bài 1: Xếp diêm (4 điểm)
Với các que diêm có thể xếp đợc các số nguyên không âm, các chữ số thập phân có cách xếp nh hình vẽ
Bờm có N que diêm và muốn xếp diêm thành bộ số chỉ giờ dạng hh:mm:ss( chuẩn 24 giờ ) sao cho dùng hết
đúng N que diêm và thời điểm biểu diễn đợc là muộn nhất trong ngày .
Dữ liệu (file hms.inp) : Ghi duy nhất số nguyên N (1=<n<=42)
Kết quả (file hms.out): Ghi thời điểm biểu diễn đợc theo định dạng hh:mm: ss(ghi số -1 nếu không có cách sắp
sếp )
Ví dụ:
hms.inp hms.out
12 11:11:11
Bài 2:Chu kì xâu(4 điểm )
Một xâu P đợc gọi là tiền tố của xâu A nếu tồn tại xâu B sao cho xâu PB (ghép B vào sau P) bằng xâu A. Một
tiền tố P của A đợc gọi là tiền tố thực sự nếu Pp PA
Xâu Q đợc gọi là xâu chu kì của xâu A nếu Q là một tiền tố thực sự cáu A và A là tiền tố của xâu QQ.Chẳng
hạn abab và ababab là hai xâu chu kì của xâu abababa.Chu kì cực đại của A là xâu vhu kì dài nhất của hoặc xâu
rỗng nếu A không có sâu chu kì .
cho một xâu S chỉ gồm các chữ cái a...z hãy tính tổng dộ dài chu kì cực đại của tất cả các tiền tố của S .
Dữ liệu (cyc.inp)
- Dòng 1 số nguyên N( 1<=N<=250 ) - đọ dài của xâu S
- Dòng 2 xâu S
Kết quả (per.out):
- Dòng 1: N số nguyên là hoán vị thỏa mãn đề bài
- Ví dụ:
per.inp per.out
4 3 2 1 4 3 2
Giải thích ví dụ:
Còn có các hoán vị khác, chẳng hạn (2,4,3,1) cũng thỏa mãn độ dài dãy con tăng dài nhất bằng 2 , độ
dài dãy con giảm dài nhất bằng 3 nhng hoán vị (1,4,3,2) có thứ tự từ điển nhỏ nhất .
....Hết .......
Cán bộ coi thi không giải thích gì thêm
const f:array[0..9]of byte=(6,2,5,5,4,5,6,3,7,6);
fo='hms.inp';
go='hms.out';
var i:array[1..6]of byte;
n,j:byte;
f1,g:text;
s:array[1..6]of string;
s1,max:string;
t1:longint;
t2:longint absolute $00:$46c;
begin
t1:=t2;
assign(f1,fo);reset(f1);
assign(g,go);rewrite(g);
readln(f1,n);
if n<12 then write(g,-1)
else
begin
max:='';
for i[1]:=0 to 9 do
assign(g,go);rewrite(g);
readln(f,n,p,q);
if p+q-1= n then
begin
for i:=1 to n-q do
begin
write(g,i,' ');
if i mod 255 =0 then writeln(g);
end;
for I:=n downto n-q+1 do
begin
write(g,i,' '); inc(d);
if d mod 255 =0 then writeln(g);
end;
end;
close(f);close(g);
end.
const fo='per.inp';
go='per.out';
var i,n,p,q:longint;
kt:boolean;
f,g:text;
a,b,c:array[1..10000]of integer;
procedure xuat;
var max1,max2,j:integer;
begin
max1:=0;max2:=0;
c[1]:=1;
for i:=2 to n do
begin
begin;
a[i]:=j;
b[j]:=1;
thu(i+1);
b[j]:=0;
end;
end;
end;
end;
begin
assign(f,fo);reset(f);
assign(g,go);rewrite(g);
readln(f,n,p,q);
kt:=false;
thu(1);
close(f);close(g);
end.