1. Trang chủ
  2. » Giáo Dục - Đào Tạo

đề hsg tin hoc dap an 2011

7 267 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 70 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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 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

ĐỀ CHÍNH THỨC

Trang 2

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

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 3

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;

Trang 4

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;

Trang 5

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;

Trang 6

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;

Trang 7

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

Ngày đăng: 30/03/2017, 11:42

TỪ KHÓA LIÊN QUAN

w