1. Trang chủ
  2. » Luận Văn - Báo Cáo

De DT HSG Tin 12 nam hoc 20102011

5 4 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 5
Dung lượng 14,2 KB

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

Nội dung

Chữ số thứ I đợc gắn một số nguyên dơng aI đợc gọi là trọng lợng của nã thø tù c¸c ch÷ sè trong phÇn ®Çu cña m· tÝnh tõ tr¸i qua ph¶i.. Ngêi ta lÊy lÇn lît c¸c ch÷ sè trong m· nh©n víi t[r]

Trang 1

SỞ GD&ĐT NGHỆ AN

(Đề thi cú 03 trang)

KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH LỚP 12

NĂM HỌC 2010 – 2011

Mụn thi: TIN HỌC LỚP 12 THPT - BẢNG A

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

B i 1 à (4,5 điểm) Phân tích số

Với số nguyên dơng x, gọi f(x,k) là số cách phân tích số x thành tổng các số nguyên tố mà mỗi số nguyên tố có trong tổng không quá k lần

ví dụ

f(12,3) =5 vì có 5 cách phân tích:

12 = 2 + 2 + 2 + 3 + 3; 12 = 2 + 2 + 3 + 5; 12 = 2 + 3 + 7;

12 = 2 + 5 + 5; 12 = 5 + 7

f(12,1) =2 vì có 2 cách phân tích

12 = 2 + 3 + 7; 12 = 5 + 7

Cho một dãy số nguyên dơng a1,a2,…,aN và số nguyên dơng k( 1≤ N,k ≤ 100) Hãy tính các f(ai,k) (với mọi i=1,2,…,N)

Dữ liệu vào: Từ file văn bản PTS.INP có cấu trúc nh sau:

 Dòng đầu tiên ghi 2 số nguyên dơng theo thứ tự N, k

 Dòng thứ 2 ghi N số nguyên dơng a1, a2,…, aN.( 1 < aI ≤ 100)

Kết quả: Ghi ra file văn bản PTS.OUT, gồm N số nguyên viết trên một dòng, số

thứ i là f(ai,k)

Cả 2 file dữ liệu thứ tự các số trên một dòng tính từ trái qua phải và cách nhau một dấu cách

Ví dụ:

5 6

15 8 9 23 47 12 3 4 35 414

Bài 2 (5,5 điểm) Mã Số

Để tiện trong công tác quản lý, một công ty đã gắn mã số cho các nhân viên của mình Mã số của mỗi nhân viên bao gồm bảy chữ số( gọi là phần đầu của mã nhân viên) và một chữ cái in hoa nối phía sau Chữ cái này đợc tính toán từ bảy chữ

số phần đầu của mã theo các bớc nh sau:

1 Chữ số thứ I đợc gắn một số nguyên dơng aI đợc gọi là trọng lợng của nó( thứ tự các chữ số trong phần đầu của mã tính từ trái qua phải) Ngời ta lấy lần

l-ợt các chữ số trong mã nhân với trọng lợng tơng ứng của nó

2.Cộng tất cả các kết quả

3 Tìm số d của phép chia tổng trên cho số nguyên dơng K ( 1≤ K ≤ 11)

4 Mỗi số d tơng ứng với một chữ cái in hoa Chữ cái in hoa tơng ứng tìm đợc

là chữ cái nối phía sau của mã nhân viên

Cho trớc phần đầu của mã nhân viên, hãy tìm chữ cái in hoa nối phía sau

Dữ liệu vào: Từ file văn bản MASO.INP có cấu trúc nh sau:

 Dòng đầu tiên ghi số nguyên dơng K

 Dòng thứ 2 ghi một xâu gồm 7 chữ số là phần đầu của mã nhân viên

 Dòng thứ 3 ghi 7 số nguyên dơng, số thứ I là trọng lợng của chữ số thứ I trong phần đầu của mã Các số cách nhau một ký tự trắng

 Dòng cuối cùng ghi một xâu có độ dài Kgồm các chữ cái tiếng Anh in hoa, chữ cái thứ I tơng ứng với số I-1 là số d của phép chia của tổng tìm đợc cho K

Kết quả: Ghi ra file văn bản MASO.OUT, chứa chữ cái tìm đợc.

Ví dụ:

11

Đề chớnh thức

Trang 2

2 7 6 5 4 3 2 JABCDEFGHIZ

Bài 3 (5,0 điểm) Sa mạc

Sa mạc là lới ô vuông cấp MxN ( 1≤ N,M ≤ 100) Trên mỗi ô của lới ngời ta ghi một số nguyên a( 1≤ a ≤ 100) đợc gọi là năng lợng của ô đó Một con lạc đà

đang ở ô (i,j) của lới chỉ đợc đi đến một trong hai ô (i+1,j) hoặc ô (i,j+1) Lạc đà đi

đến ô nào thì hấp thụ đợc nguồn năng lợng tại ô đó Hãy tìm cho lạc đà một đờng

đi từ ô (1,1) đến ô (M,N) theo nguyên tắc trên và hấp thụ đợc nhiều năng lợng nhất

Dữ liệu vào: Từ file văn bản SAMAC.INP, dòng đầu tiên thi 2 số nguyên

d-ơng theo thứ tự M, N

Dòng thứ I trong M dòng tiếp theo ghi N số nguyên dơng, số thứ J là năng l-ợng trên ô (I , J) của sa mạc.( số thứ tự của các số trên một dòng tính từ trái qua phải)

Kết quả: Ghi ra file văn bản SAMAC.OUT, dòng đầu tiên ghi số S là năng

l-ợng mà lạc đà hấp thụ đợc Từ dòng thứ 2 trở đi mỗi dòng ghi 2 số nguyên dơng là toạ độ các ô theo thứ tự trên đờng đi của lạc đà

Ví dụ:

4 5

1 5 1 3 4

6 7 9 1 5

1 1 8 4 1

1 3 4 3 3

41

1 1

2 1

2 2

2 3

3 3

3 4

4 4

4 5 Cả hai file dữ liệu, các số trên một dòng cách nhau một ký tự trắng

Bài 4 (5,0 điểm) Hội trại

Nhân dịp ngày thành lập công ty, ban Giám đốc công ty X tổ chức cho cán

bộ công nhân viên một cuộc hội trại Thời điểm tính trong ngày hội trại là phút, thời điểm ban đầu là 0 Công ty có N cán bộ công nhân viên Ngời thứ I có mặt tại hội trại từ thời điểm aI đến thời điểm bI Hãy lập trình giải quyết các công việc sau

đây:

1 Tìm cho ban Giám đốc một thời điểm sớm nhất đến thăm hội trại để gặp đợc nhiều cán bộ nhất

2 Tìm một khoảng thời gian dài nhất tại địa điểm hội trại không có ai cả, nếu

có nhiều khoảng thời gian nh thế hãy đa ra khoảng thời gian sớm nhất

Dữ liệu vào: Từ file văn bản: HOITRAI.INP, có cấu trúc nh sau:

 Dòng đầu tiên ghi số N là số cán bộ của công ty ( ( 1≤ N ≤ 10000)

 Dòng thứ I trong N dòng tiếp theo ghi 2 số nguyên dơng aI và bI là khoảng thời gian có mặt tại hội trại của cán bộ thứ I

Kết quả: Ghi ra file văn bản HOITRAI.OUT nh sau:

 Dòng đầu tiên ghi số T là thời điểm ban Giám đốc đến thăm hội trại

 Dòng thứ 2 ghi 2 số nguyên a, b là khoảng thời gian từ a đến b không

có ai ở hội trại Nếu không tìm đợc ghi số 32675 hai lần

Cả hai file dữ liệu, các số trên một dòng cách nhau một ký tự trắng

Ví dụ:

7

1 320

400 1000

351 1200

380 1336

623

321 350

Trang 3

452 1430

512 1230

623 1105

Hết

………

Chú ý: - Chơng trình giải các bai1, bài 2, bài 3, bài 4 lần lợt ghi lên đĩa với các tên Bai1.pas; Bai2.pas; Bai3.pas; Bai4.pas.

- Giám thị không phải giải thích gì thêm.

Trang 4

Bài 1:

uses crt;

const

tfi='pts.IN9876543210';

tfo='PTS.OU9876543210';

maxMN=100;

NTO: array[1 25] of integer=( 2, 3, 5,

7,11,13,17,19,23,29,

31,37,41,43,47,53,59,61,67,71,

73,79,83,89,97);

var

fi,fo: text;

M,N,k: integer;

a: array[1 100] of integer;

x,y: array[0 100] of real;

procedure Docdl;

var i,j: integer;

begin

readln(fi,n,k);

for i:=1 to N do read(fi,a[i]);

end;

procedure ChuanBi;

var i,j,l: integer;

begin

for i:=0 to 100 do x[i]:=0; {khong xac dinh} for j:=0 to k do

begin

if j*NTO[1]>100 then break;

x[j*NTO[1]]:=1;

end;

for l:=2 to 25 do

begin

y:=x;

for i:=1 to 100 do

begin

x[i]:=0;

for j:=0 to k do

begin

if i-j*NTO[l]<0 then break; x[i]:=x[i]+y[i-j*NTO[l]]; end;

end;

Trang 5

end;

end;

procedure Inkq;

var i,j: integer;

begin

for i:=1 to N do write(fo,x[a[i]]:0:0,' '); end;

BEGIN

assign(fi,tfi); reset(fi);

assign(fo,tfo); rewrite(fo);

Docdl;

ChuanBi;

Inkq;

close(fi); close(fo);

END

Đề và bảng A và bảng B giống nhau chỉ khác bài 1

Ngày đăng: 16/06/2021, 09:48

w