Tải bản đầy đủ (.docx) (5 trang)

De DT HSG Tin 12 nam hoc 20102011

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 (159.39 KB, 5 trang )

<span class='text_page_counter'>(1)</span>SỞ GD&ĐT NGHỆ AN Đề chính thức (Đề thi có 03 trang) Bài 1. (4,5 ®iÓm). 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 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ô: PTS.INP PTS.OUT 5 6 12 3 4 35 414 15 8 9 23 47 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ô: MASO.IN MASO.OUT 11 D 6830907.

<span class='text_page_counter'>(2)</span> 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ô: SAMAC.INP SAMAC.OUT 4 5 41 1 5 1 3 4 1 1 6 7 9 1 5 2 1 1 1 8 4 1 2 2 1 3 4 3 3 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ô: HOITRAI.INP 7 1 320 400 1000 351 1200 380 1336. HOITRAI.OUT 623 321 350.

<span class='text_page_counter'>(3)</span> 452 1430 512 1230 623 1105 - - - HÕt - - -. Hä vµ tªn thÝ sinh …………………………………………………. Sè b¸o danh ………………. 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..

<span class='text_page_counter'>(4)</span> 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;.

<span class='text_page_counter'>(5)</span> 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.

<span class='text_page_counter'>(6)</span>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×