Tải bản đầy đủ (.pdf) (9 trang)

Tài liệu Đề thi học sinh giỏi lớp 12 THPT tỉnh DakLak năm 2012 môn Tin học docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (195.02 KB, 9 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI HỌC SINH GIỎI TỈNH NĂM HỌC 2011-2012
ĐẮK LẮK MÔN : TIN HỌC 12 - THPT
(Thời gian: 180 phút, không kể thời gian giao đề)
Ngày thi: 10/11/2011

Ghi chú : Đề thi này gồm 2 trang.


Bài File bài làm Dữ liệu vào Kết quả
Bài 1:
Tính t
ổng

BAI1.PAS BAI1.INP BAI1.OUT
Bài 2:
Siêu nguyên t


BAI2.PAS Nhập từ phím Xuất ra màn hình
Bài 3:
Tô màu

BAI3.PAS BAI3.INP BAI3.OUT


Bài 1: Tính tổng (5 điểm).
Trên một màn hình lớn, người ta lần lượt cho hiện ra các số của một dãy gồm N số
nguyên không âm a
1
, a
2


, …, a
N
và cứ lặp đi lặp lại như thế (nghĩa là sau khi a
i
xuất hiện vài
giây đến lượt a
i+1
xuất hiện, số xuất hiện sau a
N
là a
1
).
Yêu cầu: Bạn được đề nghị tính tổng của K số nguyên liên tiếp xuất hiện trên màn hình bắt
đầu từ số nguyên thứ B.
Dữ liệu vào: Chứa trong file BAI1.INP gồm hai dòng:
+ Dòng đầu tiên ghi ba số nguyên N, K, và B, 1  N 10
4
; 1  K  2. 10
4
; 1  B  10
9
.
+ Trong N dòng sau, dòng thứ i chứa số a
i
(a
i
< 2.10
9
).
Dữ liệu ra: Ghi ra file BAI1.OUT một số là tổng tìm được.

Ví dụ:
BAI1.INP BAI1.OUT
5 7 6
2
3
6
7
9
32

Bài 2(6 điểm) - Siêu nguyên tố
Số siêu nguyên tố là số nguyên tố mà khi bỏ một số tuỳ ý các chữ số bên phải của nó thì
phần còn lại vẫn tạo thành một số nguyên tố.
Ví dụ 7331 là một số siêu nguyên tố có 4 chữ số vì 733, 73, 7 cũng là các số nguyên tố.
Viết chương trình nhập dữ liệu vào là một số nguyên N (0< N <10) và đưa ra kết quả là các
số siêu nguyên tố có N chữ số cùng số lượng của chúng.

Bài 3(9 điểm) -Tô màu
Cho một bảng gồm các ô vuông kích thước M x N (M, N 100), trong đó có một số ô đen,
còn lại là các ô trắng.
Yêu cầu: Hãy tô màu tất cả các ô trắng bằng hai màu xanh và vàng sao cho trên mỗi dòng
cũng như trên mỗi cột số các ô màu xanh và vàng lệch nhau không quá 1.
Đ
Ề CHÍNH THỨC

Dữ liệu vào: Được cho trong file văn bản BAI3.INP
- Dòng đầu ghi hai số M, N
- M dòng tiếp theo mỗi dòng ghi N số, gồm các số 0 hoặc 1 biểu diễn bảng ô vuông, với 0
biểu thị ô trắng, 1 biểu thị ô đen.
Kết quả: Ghi ra file văn bản BAI3.OUT gồm M dòng, mỗi dòng gồm N ký tự viết liền nhau

biểu diễn trạng thái màu đã tô của bảng với D: màu đen, X: màu xanh, V: màu vàng.
Ví dụ:
BAI3.INP
6 4
1 0 1 0
1 0 0 0
0 1 0 1
1 1 0 0
0 1 0 1
1 0 1 0

BAI3.OUT
DVDX
DXXV
XDVD
DDVX
VDXD
DXDV


Hết

Ghi chú: Giám thị coi thi không giải thích gì thêm.
SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI HỌC SINH GIỎI TỈNH NĂM HỌC 2011-2012
ĐẮK LẮK MÔN : TIN HỌC 12 - THPT
(Thời gian: 180 phút, không kể thời gian giao đề)
Ngày thi: 10/11/2011

Ghi chú : Đề thi này gồm 2 trang.



Bài File bài làm Dữ liệu vào Kết quả
Bài 1:
Tính t
ổng

BAI1.PAS BAI1.INP BAI1.OUT
Bài 2:
Siêu nguyên t


BAI2.PAS Nhập từ phím Xuất ra màn hình
Bài 3:
Tô màu

BAI3.PAS BAI3.INP BAI3.OUT


Bài 1: Tính tổng (5 điểm).
Trên một màn hình lớn, người ta lần lượt cho hiện ra các số của một dãy gồm N số
nguyên không âm a
1
, a
2
, …, a
N
và cứ lặp đi lặp lại như thế (nghĩa là sau khi a
i
xuất hiện vài
giây đến lượt a

i+1
xuất hiện, số xuất hiện sau a
N
là a
1
).
Yêu cầu: Bạn được đề nghị tính tổng của K số nguyên liên tiếp xuất hiện trên màn hình bắt
đầu từ số nguyên thứ B.
Dữ liệu vào: Chứa trong file BAI1.INP gồm hai dòng:
+ Dòng đầu tiên ghi ba số nguyên N, K, và B, 1  N 10
4
; 1  K  2. 10
4
; 1  B  10
9
.
+ Trong N dòng sau, dòng thứ i chứa số a
i
(a
i
< 2.10
9
).
Dữ liệu ra: Ghi ra file BAI1.OUT một số là tổng tìm được.
Ví dụ:
BAI1.INP BAI1.OUT
5 7 6
2
3
6

7
9
32

Bài 2(6 điểm) - Siêu nguyên tố
Số siêu nguyên tố là số nguyên tố mà khi bỏ một số tuỳ ý các chữ số bên phải của nó thì
phần còn lại vẫn tạo thành một số nguyên tố.
Ví dụ 7331 là một số siêu nguyên tố có 4 chữ số vì 733, 73, 7 cũng là các số nguyên tố.
Viết chương trình nhập dữ liệu vào là một số nguyên N (0< N <10) và đưa ra kết quả là các
số siêu nguyên tố có N chữ số cùng số lượng của chúng.

Bài 3(9 điểm) -Tô màu
Cho một bảng gồm các ô vuông kích thước M x N (M, N 100), trong đó có một số ô đen,
còn lại là các ô trắng.
Yêu cầu: Hãy tô màu tất cả các ô trắng bằng hai màu xanh và vàng sao cho trên mỗi dòng
cũng như trên mỗi cột số các ô màu xanh và vàng lệch nhau không quá 1.
Đ
Ề CHÍNH THỨC

Dữ liệu vào: Được cho trong file văn bản BAI3.INP
- Dòng đầu ghi hai số M, N
- M dòng tiếp theo mỗi dòng ghi N số, gồm các số 0 hoặc 1 biểu diễn bảng ô vuông, với 0
biểu thị ô trắng, 1 biểu thị ô đen.
Kết quả: Ghi ra file văn bản BAI3.OUT gồm M dòng, mỗi dòng gồm N ký tự viết liền nhau
biểu diễn trạng thái màu đã tô của bảng với D: màu đen, X: màu xanh, V: màu vàng.
Ví dụ:
BAI3.INP
6 4
1 0 1 0
1 0 0 0

0 1 0 1
1 1 0 0
0 1 0 1
1 0 1 0

BAI3.OUT
DVDX
DXXV
XDVD
DDVX
VDXD
DXDV


Hết

Ghi chú: Giám thị coi thi không giải thích gì thêm.



SỞ GIÁO DỤC & ĐÀO TẠO KỲ THI HỌC SINH GIỎI TỈNH NĂM HỌC 2011-2012
ĐẮK LẮK MÔN : TIN HỌC 12 - THPT

ĐÁP ÁN VÀ HƯỚNG DẪN CHẤM ĐỀ CHÍNH THỨC
I. Phần chương trình nguồn

Bài 1(5 điểm) - Tính tổng
program BAI1;
const fi='BAI1.inp';
fo='BAI1.out';

nmax=10003;
var a:array[1 nmax]of int64;
n,k,b:longint;
kq:int64;
f,g:text;

procedure nhapdulieu;
var i:integer;
begin
assign(f,fi);
reset(f);
readln(f,n,k,b);
for i:=1 to n do readln(f,a[i]);
close(f);
end;

procedure xuly;
var i,j:longint;
begin
kq:=0;
for i:=b to b+k-1 do
kq:=kq+a[(i-1) mod N +1];
assign(g,fo);
rewrite(g);
write(g,kq);
close(g);
end;

Begin
nhapdulieu;

xuly;
End.

Bài 2(6 điểm) - Siêu nguyên tố
var a,b: array [1 100] of longint;
N,i,k,ka,kb,cs: byte;
Function Prime(N: longint): boolean;
Var i: longint;
Begin
If (N=0) or (N=1) then
Prime:=false
Else
Begin
i:=2;
While (N mod i <> 0) and (i <= Sqrt(N)) do Inc(i);
If i > Sqrt(N) then
Prime:=true Else Prime:=false;
End;
End;
BEGIN
Write ('Nhap N: ');
Readln (N);
ka:=1; a[ka]:=0;
For i:=1 to N do
Begin
Kb:=0;
For k:=1 to ka do
For cs:=0 to 9 do
If Prime(a[k]*10+cs) then
Begin

Inc(kb);
b[kb]:=a[k]*10+cs;
end;
ka:=kb;
For k:=1 to ka do
a[k]:=b[k]; end;
For k:=1 to ka do
Write(a[k]:10);
Writeln;
Writeln('Co tat ca ',ka,' so sieu nguyen to co ',N,' chu so.');
Readln;
END.

Bài 3(9 điểm) -Tô màu
const
tfi = 'BAI3.INP';
tfo = 'BAI3.OUT';
maxN = 101;

var
fi, fo : text;
M,N : integer;
a : array[1 maxN,1 maxN] of byte;

bac : array[1 2*maxN] of integer;

procedure Docdl;
var i,j: integer;
begin
assign(fi,tfi); reset(fi);

readln(fi,M,N);
for i:=1 to M do
begin
for j:=1 to N do read(fi,a[i,j]);
readln(fi);
end;
close(fi);
end;

function DinhBacLe: integer;
var i: integer;
begin
for i:=1 to M+N do
if odd(bac[i]) then
begin
DinhBacLe:=i;
exit;
end;
DinhBacLe:=0;
end;

function Next(u: integer): integer;
var v: integer;
begin
if u<=M then
begin
for v:=1 to N do
if a[u,v]=0 then
begin
Next:=v+M;

exit;
end;
end
else
begin
for v:=1 to M do
if a[v,u-M]=0 then
begin
Next:=v;
exit;
end;
end;
Next:=0;
end;

procedure ToMau(xp: integer);
var u,v,color: integer;
begin
color:=2;
u:=xp;
repeat
v:=Next(u);
if v>0 then
begin
if u<=M then a[u,v-M]:=color else a[v,u-M]:=color;
bac[u]:=bac[u]-1;
bac[v]:=bac[v]-1;
u:=v;
color:=5-color;
end;

until v=0;
end;

function DinhConCanh: integer;
var i: integer;
begin
for i:=1 to M+N do
if bac[i]>0 then
begin
DinhConCanh:=i;
exit;
end;
DinhConCanh:=0;
end;

procedure Solve;
var i,j,u: integer;
begin
for i:=1 to M do
begin
bac[i]:=0;
for j:=1 to N do
bac[i]:=bac[i]+(1-a[i,j]);
end;
for i:=M+1 to M+N do
begin
u:=i-M;
bac[i]:=0;
for j:=1 to M do
bac[i]:=bac[i]+(1-a[j,u]);

end;

{Tim cac duong xuat phat tu dinh le}
repeat
u:=DinhBacLe;
if u>0 then ToMau(u);
until u=0;
{Tim cac duong xuat phat tu dinh bac chan}
repeat
u:=DinhConCanh;
if u>0 then ToMau(u);
until u=0;
end;

procedure Inkq;
var i,j: integer;
begin
assign(fo,tfo); rewrite(fo);
for i:=1 to M do
begin
for j:=1 to N do
case a[i,j] of
1: write(fo,'D');
2: write(fo,'X');
3: write(fo,'V');
end;
writeln(fo);
end;
close(fo);
end;


BEGIN
Docdl;
Solve;
Inkq;
END.
II. Phần hướng dẫn chấm
Bai 1 (5 đ): Test chương trình với 5 dữ liệu nhập khác nhau. Mỗi lần đúng cho 1 điểm.
Bai 2 (6 đ): Test chương trình với 5 lần : n=1 5
N=1 có 4 số; N=2 có 9 số; N=3 có 14 số; N=4 có 16 số; N=5 có 15 số. Chú ý trong mỗi
trường hợp cần kiểm tra các số tìm được có thỏa mãn là số siêu nguyên tố hay không.
Mỗi test đúng cho 1 điểm.
Bai 3 (9 đ): Có 9 test ( lưu trong đĩa CD) Mỗi test đúng cho 1 điểm


Hết





×