1. Trang chủ
  2. » Khoa Học Tự Nhiên

Tài liệu Đề thi học sinh giỏi lớp 12 THPT tỉnh Hải Dương năm 2013 môn Tin học pptx

11 1,6K 28

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 191,02 KB

Nội dung

Ví dụ, nếu học sinh viết bằng ngôn ngữ Pascal thì tên các bài lần lượt là BAI1.PAS, BAI2.PAS, BAI3.PAS, BAI4.PAS, BAI5.PAS  Với bài 4 và bài 5 tên file dữ liệu nhập và dữ liệu xuất đặt

Trang 1

Trang: 1

SỞ GIÁO DỤC & ĐÀO TẠO

HẢI DƯƠNG

KÌ THI CHỌN HỌC SINH GIỎI TỈNH LỚP 12 THPT NĂM HỌC 2012 - 2013

MÔN THI: TIN HỌC

Thời gian làm bài: 180 phút

(Đề gồm 03 trang)

TỔNG QUAN VỀ CÁC BÀI THI TRONG ĐỀ

Bài

Tên file

chương

trình

Dữ liệu nhập

Dữ liệu xuất

Điểm của bài

Giới hạn thời gian chạy 1 test

4 BAI4.* VNMODEL.INP VNMODEL.OUT 2,0 điểm 1 giây

Yêu cầu các thí sinh đọc kỹ phần hướng dẫn dưới đây:

 Dấu (*) trong tên file chương trình được thay thế bằng PAS hoặc CPP tuỳ theo thí sinh viết chương trình bằng ngôn ngữ Pascal hoặc C++ Ví dụ, nếu học sinh viết bằng ngôn ngữ Pascal thì tên các bài lần lượt là BAI1.PAS, BAI2.PAS, BAI3.PAS, BAI4.PAS, BAI5.PAS

 Với bài 4 và bài 5 tên file dữ liệu nhập và dữ liệu xuất đặt đúng như phần tổng quan ở trên (không có đường dẫn kèm theo)

HÃY LẬP TRÌNH GIẢI CÁC BÀI TOÁN SAU:

Bài 1: Trong dịp nghỉ hè, bé Mai được bố mẹ cho đi tắm biển Trên bờ biển bé nhặt được N

viên đá cuội rất đẹp mắt Mai quyết định vẽ trên cát một lưới hình chữ nhật kích thước a x b (a, b nguyên dương) được chia thành a x b ô vuông bằng các đường ngang dọc sao cho có thể rải N hòn sỏi này vào các ô vuông sao cho mỗi ô vuông có nhiều nhất một viên sỏi

Hãy giúp bé Mai chọn kích thước của hình chữ nhật sao cho chu vi của nó là nhỏ nhất

In ra màn hình giá trị chu vi này

Dữ liệu: Nhập vào từ bàn phím số nguyên dương N (N ≤ 109)

Kết quả: Ghi ra màn hình chu vi của hình chữ nhật tìm được

Ví dụ:

Dữ liệu nhập vào: 15 Kết quả in ra: 16 Giải thích: Hình chữ nhật tìm được có kích thước 4 x 4

Bài 2: Xét một số N có 4 chữ số và không phải tất cả các chữ số đều giống nhau Phép tính

độ lệch được thực hiện như sau:

 Tạo số thứ nhất N1 bằng cách xếp các chữ số theo trình tự giảm dần

 Tạo số thứ hai N2 bằng cách xếp các chữ số theo trình tự tăng dần (nếu có chữ số 0 ở đầu thì N2 sẽ không phải là số có 4 chữ số)

 Tính hiệu N1-N2 và gán lại cho N

Các bước trên được thực hiện cho đến khi nhận được số N là 6174 hoặc 0

Ví dụ: Nếu N=1023

 Ở bước 1: N1=3210, N2=123, N=N1-N2=3087

 Ở bước 2: N1=8730, N2=378, N=N1-N2=8352

 Ở bước 3: N1=8532, N2=2358, N=N1-N2=6174

Vậy ta cần thực hiện 3 lần biến đổi

ĐỀ CHÍNH THỨC

Trang 2

Trang: 2

Yêu cầu: Hãy xác định số lần biến đổi thực hiện theo yêu cầu trên

Dữ liệu: Nhập từ bàn phím số nguyên dương N (N đảm bảo có 4 chữ số, không phải

tất cả các chữ số đều giống nhau và N khác 6174 Không cần kiểm tra dữ liệu nhập)

Kết quả: Ghi ra màn hình số lần biến đổi tương ứng với số N

Ví dụ:

Dữ liệu nhập: 5364

Kết quả in ra: 3

Bài 3: Số siêu nguyên tố

Số siêu nguyên tố là số nguyên tố mà khi xoá bỏ dần các chữ số bên phải của nó thì phần còn lại vẫn là số nguyên tố Ví dụ: 2333 là số siêu nguyên tố vì 2333, 233, 23, 2 đều là các số nguyên tố

Yêu vầu: Cho số nguyên dương M (M≤30000) Hãy tìm số siêu nguyên tố gần với M nhất, tức là trị tuyệt đối của hiệu giữa số tìm được với M là nhỏ nhất)

Dữ liệu: Nhập vào từ bàn phím số nguyên dương M (không cần kiểm tra dữ liệu nhập) Kết quả: Ghi ra màn hình các số nguyên tố gần M nhất, mỗi số một dòng theo thứ tự

số nhỏ hơn ghi trước

Ví dụ:

Dữ liệu nhập: 30

Kết quả in ra trên 2 dòng:

29

31

Bài 4: Bình chọn qua điện thoại

Trong vòng chung kết cuộc thi “Vietnam Next Top Model” trên VTV3 các thí sinh được đánh số báo danh là một số nguyên dương có giá trị không vượt quá 1000 Khán giả xem truyền hình có thể bình chọn cho thí sinh mình yêu thích bằng cách nhắn tin qua điện thoại di động

Ban tổ chức nhận được tin nhắn hợp lệ của N khán giả (các khán giả được đánh số từ 1

Hãy liệt kê số báo danh của những thí sinh được nhiều khán giả bình chọn nhất theo thứ tự tăng dần

Dữ liệu: Vào từ file văn bản VNMODEL.INP

 Dòng đầu tiên ghi số nguyên dương N là số lượng khán giả có tin nhắn bình chọn hợp

khán giả thứ i bình chọn

Kết quả: Ghi ra file văn bản VNMODEL.OUT

Danh sách các thí sinh được nhiều khán giả bình chọn nhất theo thứ tự số báo danh tăng dần

Ví dụ:

5

3

1

3

2

2

2

3

Ghi chú: Có ít nhất 50% số điểm của bài tương ứng với các test có N≤1000

Trang 3

Trang: 3

Bài 5: Quan hệ huyết thống

Trung tâm nghiêm cứu gen thu thập N mẫu gen của N cá thể trong cùng một loài N

xem xét đã đưa ra được kết luận sau:

Hai cá thể là có quan hệ huyết thống gần khi và chỉ khi mã gen của chúng biểu diễn trong cơ số 2 giống nhau hoặc khác nhau đúng 1 bit

Ví dụ: Hai cá thể có mã gen 7 (biểu diễn trong cơ số 2 là 111) và 5 (biểu diễn trong cơ

số 2 là 101) là có quan hệ huyết thống gần

Hãy đếm xem trong số mẫu gen của N cá thể thu thập được có bao nhiêu cặp cá thể có quan hệ huyết thống gần

Dữ liệu: Vào từ file văn bản GEN.INP

 N dòng tiếp theo, dòng thứ i ghi mã gen của cá thể thứ i là một số nguyên dương trong phạm vi từ 1 đến 1000)

Kết quả: Ghi ra file văn bản GEN.OUT một số nguyên duy nhất là số cặp có quan hệ

huyết thống gần đã tìm được

Ví dụ:

5

1

2

3

4

5

4

3

10

10

10

3

Giải thích ví dụ thứ nhất:

Các số 1, 2, 3, 4, 5 biểu diễn trong cơ số 2 lần lượt là 001, 010, 011, 100, 101 Có 4 cặp có quan hệ huyết thống gần là:

Ghi chú: Có ít nhất 50% số điểm ứng với các test có N≤1000

-HẾT -

Họ tên thí sinh: Số báo danh:

Giám thị số 1:

Giám thị số 2:

Trang 4

Trang: 4

SỞ GIÁO DỤC & ĐÀO TẠO

HẢI DƯƠNG

KÌ THI CHỌN HỌC SINH GIỎI TỈNH LỚP 12 THPT NĂM HỌC 2012 - 2013

MÔN THI: TIN HỌC

TỔNG QUAN VỀ CÁC BÀI THI TRONG ĐỀ

Bài

Tên file

chương

trình

Dữ liệu nhập

Dữ liệu xuất

Điểm của bài

Giới hạn thời gian chạy 1 test

4 BAI4.* VNMODEL.INP VNMODEL.OUT 2,0 điểm 1 giây

CODE GIẢI CÁC BÀI TOÁN:

Bài 1: Trong dịp nghỉ hè, bé Mai được bố mẹ cho đi tắm biển Trên bờ biển bé nhặt được N

viên đá cuội rất đẹp mắt Mai quyết định vẽ trên cát một lưới hình chữ nhật kích thước a x b (a, b nguyên dương) được chia thành a x b ô vuông bằng các đường ngang dọc sao cho có thể rải N hòn sỏi này vào các ô vuông sao cho mỗi ô vuông có nhiều nhất một viên sỏi

Hãy giúp bé Mai chọn kích thước của hình chữ nhật sao cho chu vi của nó là nhỏ nhất

In ra màn hình giá trị chu vi này

Dữ liệu: Nhập vào từ bàn phím số nguyên dương N (N ≤ 109)

Kết quả: Ghi ra màn hình chu vi của hình chữ nhật tìm được

Ví dụ:

Dữ liệu nhập vào: 15 Kết quả in ra: 16 Giải thích: Hình chữ nhật tìm được có kích thước 4 x 4

Đáp án:

program BAI1;

var n, a, b, ds: longint;

BEGIN

read(n);

ds:=1000000001;

a:=0;

repeat

inc(a);

b:=n div a;

if n mod a<>0 then inc(b);

if ds>2*(a+b) then ds:=2*(a+b);

until b<a;

writeln(ds);

END

Bài 2: Xét một số N có 4 chữ số và không phải tất cả các chữ số đều giống nhau Phép tính

độ lệch được thực hiện như sau:

ĐÁP ÁN

Trang 5

Trang: 5

 Tạo số thứ nhất N1 bằng cách xếp các chữ số theo trình tự giảm dần

 Tạo số thứ hai N2 bằng cách xếp các chữ số theo trình tự tăng dần (nếu có chữ số 0 ở đầu thì N2 sẽ không phải là số có 4 chữ số)

 Tính hiệu N1-N2 và gán lại cho N

Các bước trên được thực hiện cho đến khi nhận được số N là 6174 hoặc 0

Ví dụ: Nếu N=1023

 Ở bước 1: N1=3210, N2=123, N=N1-N2=3087

 Ở bước 2: N1=8730, N2=378, N=N1-N2=8352

 Ở bước 3: N1=8532, N2=2358, N=N1-N2=6174

Vậy ta cần thực hiện 3 lần biến đổi

Yêu cầu: Hãy xác định số lần biến đổi thực hiện theo yêu cầu trên

Dữ liệu: Nhập từ bàn phím số nguyên dương N (N đảm bảo có 4 chữ số, không phải

tất cả các chữ số đều giống nhau và N khác 6174 Không cần kiểm tra dữ liệu nhập)

Kết quả: Ghi ra màn hình số lần biến đổi tương ứng với số N

Ví dụ:

Dữ liệu nhập: 5364

Kết quả in ra: 3

Đáp án:

program BAI2;

function gtmax(x: longint): longint;

var s: string;

i,j,code: integer;

c: char;

y: longint;

begin

str(x,s);

for i:=1 to length(s)-1 do

for j:=i+1 to length(s) do

if s[i]<s[j] then

begin

c:=s[i];

s[i]:=s[j];

s[j]:=c;

end;

val(s,y,code);

gtmax:=y;

end;

function gtmin(x: longint): longint;

var s: string;

i,j,code: integer;

c: char;

y: longint;

begin

str(x,s);

for i:=1 to length(s)-1 do

for j:=i+1 to length(s) do

if s[i]>s[j] then

begin

c:=s[i];

s[i]:=s[j];

Trang 6

Trang: 6

s[j]:=c;

end;

val(s,y,code);

gtmin:=y;

end;

var n, n1, n2, dem: longint;

BEGIN

read(n);

dem:=0;

repeat

n1:=gtmax(n);

n2:=gtmin(n);

n:=n1-n2;

inc(dem);

until (n=6174) or (n=0);

writeln(dem);

END

Bài 3: Số siêu nguyên tố

Số siêu nguyên tố là số nguyên tố mà khi xoá bỏ dần các chữ số bên phải của nó thì phần còn lại vẫn là số nguyên tố Ví dụ: 2333 là số siêu nguyên tố vì 2333, 233, 23, 2 đều là các số nguyên tố

Yêu vầu: Cho số nguyên dương M (M≤30000) Hãy tìm số siêu nguyên tố gần với M nhất, tức là trị tuyệt đối của hiệu giữa số tìm được với M là nhỏ nhất)

Dữ liệu: Nhập vào từ bàn phím số nguyên dương M (không cần kiểm tra dữ liệu nhập) Kết quả: Ghi ra màn hình các số nguyên tố gần M nhất, mỗi số một dòng theo thứ tự

số nhỏ hơn ghi trước

Ví dụ:

Dữ liệu nhập: 30

Kết quả in ra trên 2 dòng:

29

31

Đáp án:

program BAI3;

var d: array[1 30000] of byte;

M: longint;

procedure sangNT;

var i,j: longint;

begin

for i:=1 to 30000 do d[i]:=0;

d[1]:=1;

i:=1;

while i*i<=30000 do

begin

repeat inc(i) until (i*i>30000) or (d[i]=0);

if i*i<=30000 then

Trang 7

Trang: 7

begin

j:=2;

while i*j<=30000 do

begin

d[i*j]:=1;

inc(j);

end;

end;

end;

end;

function sieunt(x: longint): boolean;

begin

repeat

if d[x]=1 then

begin

sieunt:=false;

exit;

end;

x:=x div 10;

until x=0;

sieunt:=true;

end;

var a, b: longint;

BEGIN

sangNT;

read(M);

a:=m;

while (a>0) and (not sieunt(a)) do dec(a);

b:=m;

while (b<30001) and (not sieunt(b)) do inc(b);

if a>0 then writeln(a);

if (b<>m) and (b<30001) then writeln(b);

END

Bài 4: Bình chọn qua điện thoại

Trong vòng chung kết cuộc thi “Vietnam Next Top Model” trên VTV3 các thí sinh được đánh số báo danh là một số nguyên dương có giá trị không vượt quá 1000 Khán giả xem truyền hình có thể bình chọn cho thí sinh mình yêu thích bằng cách nhắn tin qua điện thoại di động

Ban tổ chức nhận được tin nhắn hợp lệ của N khán giả (các khán giả được đánh số từ 1

Hãy liệt kê số báo danh của những thí sinh được nhiều khán giả bình chọn nhất theo thứ tự tăng dần

Dữ liệu: Vào từ file văn bản VNMODEL.INP

 Dòng đầu tiên ghi số nguyên dương N là số lượng khán giả có tin nhắn bình chọn hợp

khán giả thứ i bình chọn

Trang 8

Trang: 8

Kết quả: Ghi ra file văn bản VNMODEL.OUT

Danh sách các thí sinh được nhiều khán giả bình chọn nhất theo thứ tự số báo danh tăng dần

Ví dụ:

5

3

1

3

2

2

2

3

Ghi chú: Có ít nhất 50% số điểm của bài tương ứng với các test có N≤1000

Đáp án:

program BAI4;

var d: array[1 1000] of longint;

n: longint;

i,u: longint;

max: longint;

fi, fo: text;

BEGIN

assign(fi,'VNMODEL.INP'); reset(fi);

assign(fo,'VNMODEL.OUT'); rewrite(fo);

read(fi,n);

for i:=1 to n do

begin

read(fi,u);

inc(d[u]);

end;

max:=d[1];

for i:=2 to 1000 do

if max<d[i] then max:=d[i];

for i:=1 to 1000 do

if d[i]=max then writeln(fo,i);

close(fi); close(fo);

END

Bài 5: Quan hệ huyết thống

Trung tâm nghiêm cứu gen thu thập N mẫu gen của N cá thể trong cùng một loài N

xem xét đã đưa ra được kết luận sau:

Hai cá thể là có quan hệ huyết thống gần khi và chỉ khi mã gen của chúng biểu diễn trong cơ số 2 giống nhau hoặc khác nhau đúng 1 bit

Ví dụ: Hai cá thể có mã gen 7 (biểu diễn trong cơ số 2 là 111) và 5 (biểu diễn trong cơ

số 2 là 101) là có quan hệ huyết thống gần

Hãy đếm xem trong số mẫu gen của N cá thể thu thập được có bao nhiêu cặp cá thể có quan hệ huyết thống gần

Dữ liệu: Vào từ file văn bản GEN.INP

Trang 9

Trang: 9

 N dòng tiếp theo, dòng thứ i ghi mã gen của cá thể thứ i là một số nguyên dương trong phạm vi từ 1 đến 1000)

Kết quả: Ghi ra file văn bản GEN.OUT một số nguyên duy nhất là số cặp có quan hệ

huyết thống gần đã tìm được

Ví dụ:

5

1

2

3

4

5

4

3

10

10

10

3

Giải thích ví dụ thứ nhất:

Các số 1, 2, 3, 4, 5 biểu diễn trong cơ số 2 lần lượt là 001, 010, 011, 100, 101 Có 4 cặp có quan hệ huyết thống gần là:

Ghi chú: Có ít nhất 50% số điểm ứng với các test có N≤1000

Đáp án:

Cách 1:

program BAI5;

var d: array[1 1000] of longint;

n: longint;

function anhem(x,y: longint): boolean;

var a, b: array[1 12] of longint;

na, nb, nn: longint;

i,dem: longint;

begin

na:=0;

repeat

inc(na); a[na]:=x mod 2;

x:=x div 2;

until x=0;

nb:=0;

repeat

inc(nb); b[nb]:=y mod 2;

y:=y div 2;

until y=0;

if na<nb then nn:=nb else nn:=na;

for i:=na+1 to nn do a[i]:=0;

for i:=nb+1 to nn do b[i]:=0;

dem:=0;

for i:=1 to nn do

Trang 10

Trang: 10

if a[i]<>b[i] then inc(dem);

anhem:=(dem<=1);

end;

var kq,i,j,u: longint;

BEGIN

assign(input,'GEN.INP'); reset(input);

assign(output,'GEN.OUT'); rewrite(output);

read(n);

for i:=1 to 1000 do d[i]:=0;

for i:=1 to n do

begin

read(u);

inc(d[u]);

end;

kq:=0;

for i:=1 to 1000 do

if d[i]<>0 then

begin

kq:=kq+d[i]*(d[i]-1) div 2;

for j:=i-1 downto 1 do

if (d[j]<>0) and anhem(i,j) then

kq:=kq+d[i]*d[j];

end;

writeln(kq);

close(input); close(output);

END

Cách 2:

program BAI5;

var d: array[1 1000] of longint;

n: longint;

function anhem(x,y: longint): boolean;

var z, dem: longint;

begin

z:=x xor y;

dem:=0;

repeat

dem:=dem+z mod 2;

z:=z div 2;

until z=0;

anhem:=(dem<=1);

end;

var kq,i,j,u: longint;

BEGIN

assign(input,'GEN.INP'); reset(input);

assign(output,'GEN.OUT'); rewrite(output);

read(n);

Trang 11

Trang: 11

for i:=1 to 1000 do d[i]:=0;

for i:=1 to n do

begin

read(u);

inc(d[u]);

end;

kq:=0;

for i:=1 to 1000 do

if d[i]<>0 then

begin

kq:=kq+d[i]*(d[i]-1) div 2;

for j:=i-1 downto 1 do

if (d[j]<>0) and anhem(i,j) then

kq:=kq+d[i]*d[j];

end;

writeln(kq);

close(input); close(output);

END

Thủ tục sinh dữ liệu:

var i,n: longint;

begin

randomize;

assign(output,'gen.in5'); rewrite(output);

n:=100000;

writeln(n);

for i:=1 to n do writeln(random(1000)+1);

close(output);

end

-HẾT -

Ngày đăng: 25/02/2014, 06:20

HÌNH ẢNH LIÊN QUAN

Kết quả: Ghi ra màn hình số lần biến đổi tương ứng với số N Ví dụ:  - Tài liệu Đề thi học sinh giỏi lớp 12 THPT tỉnh Hải Dương năm 2013 môn Tin học pptx
t quả: Ghi ra màn hình số lần biến đổi tương ứng với số N Ví dụ: (Trang 2)
Kết quả: Ghi ra màn hình số lần biến đổi tương ứng với số N Ví dụ:  - Tài liệu Đề thi học sinh giỏi lớp 12 THPT tỉnh Hải Dương năm 2013 môn Tin học pptx
t quả: Ghi ra màn hình số lần biến đổi tương ứng với số N Ví dụ: (Trang 5)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w