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 a1, a2, …, aN và cứ lặp đi lặp lại như thế nghĩa là sau khi ai xuất hiện vài giây đến lượ
Trang 1SỞ 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 2: Siêu nguyên tố BAI2.PAS Nhập từ phím Xuất ra màn hình
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 a1, a2, …, aN và cứ lặp đi lặp lại như thế (nghĩa là sau khi ai xuất hiện vài giây đến lượt ai+1 xuất hiện, số xuất hiện sau aN là a1)
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 ≤104; 1 ≤ K ≤ 2 104 ; 1 ≤ B ≤ 109 + Trong N dòng sau, dòng thứ i chứa số ai (ai < 2.109)
Dữ liệu ra: Ghi ra file BAI1.OUT một số là tổng tìm được.
Ví dụ:
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
ĐỀ CHÍNH THỨC
Trang 2cũng như trên mỗi cột số các ô màu xanh và vàng lệch nhau không quá 1.
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.
Trang 3SỞ 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 2: Siêu nguyên tố BAI2.PAS Nhập từ phím Xuất ra màn hình
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 a1, a2, …, aN và cứ lặp đi lặp lại như thế (nghĩa là sau khi ai xuất hiện vài giây đến lượt ai+1 xuất hiện, số xuất hiện sau aN là a1)
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 ≤104; 1 ≤ K ≤ 2 104 ; 1 ≤ B ≤ 109 + Trong N dòng sau, dòng thứ i chứa số ai (ai < 2.109)
Dữ liệu ra: Ghi ra file BAI1.OUT một số là tổng tìm được.
Ví dụ:
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
ĐỀ CHÍNH THỨC
Trang 4cũng như trên mỗi cột số các ô màu xanh và vàng lệch nhau không quá 1.
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;
Trang 5procedure 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
Trang 6a[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
Trang 7if 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;
Trang 8procedure 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
Trang 9Docdl;
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