Đề thi HSG lớp 12 năm 2013 môn Tin học vòng 2 tỉnh Quảng Bình pdf

6 556 2
Đề thi HSG lớp 12 năm 2013 môn Tin học vòng 2 tỉnh Quảng Bình pdf

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

Thông tin tài liệu

1 Sở Gd&Đt kỳ thi CHọN học sinh giỏi cấp tỉnh lớp 12 thpt Quảng bình năm học 2012 - 2013 Môn thi: tin học - Vòng II Đề thi chính thức (Khóa thi ngày 11 tháng 10 năm 2012) Số Báo Danh: Thời gian làm bài: 180 phút (không kể thời gian giao đề) RA S dng ngụn ng lp trỡnh Turbo Pascal lp trỡnh gii cỏc bi toỏn sau: Cõu 1: (3,0 im) Tớnh din tớch tam giỏc. DT.PAS. Trong h trc ta Decac, cho ba im khụng thng hng A, B, C cú ta : A(x 1 , y 1 ); B(x 2 , y 2 ); C(x 3 , y 3 ). Yờu cu: Tớnh din tớch tam giỏc ABC. D liu vo: Cho trong file vn bn DT.INP, cú cu trỳc 3 dũng, mi dũng cha hai s nguyờn x i y i , l ta ca mt nh ca tam giỏc ABC. Cỏc s c ghi cỏch nhau ớt nht mt du cỏch. (-2000 x i , y i 2000) D liu ra: Ghi ra file vn bn DT.OUT, theo cu trỳc: - Dũng 1: Ghi din tớch tam giỏc tỡm c. Lm trũn kt qu n mt ch s sau du ngn cỏch thp phõn. Vớ d: DT.INP DT.OUT 0 0 1 0 0 1 0.5 Cõu 2: (3,5 im) t vộ vo sõn NouCamp NOUCAMP.PAS NouCamp l mt sõn búng ln. Sõn cú N gh ngi, cỏc gh c ỏnh s th t t 1 n N. Ti nay, sõn NouCamp s din ra trn u gia hai i búng ln ca th gii: Barcelona v Real Madrid. Hin nay, mt s gh trờn sõn ó c khỏn gi t mua lm ch ngi. Yờu cu: Hóy kim tra xem trờn sõn cũn nhng gh no cha c mua vộ t ch. D liu vo: Cho trong file vn bn NOUCAMP.INP, cú cu trỳc nh sau: - Dũng 1: Ghi hai s nguyờn dng N M. Trong ú: N l s lng gh cú trong sõn. M l s lng gh ó c khỏn gi mua vộ t ch. Hai s c ghi cỏch nhau ớt nht mt du cỏch. (N chia ht cho 8; 1 N 400000; 1 M N). - Dũng 2: Ghi M s nguyờn dng a 1 , a 2, , a m , l ch s ca M gh ó c khỏn gi mua vộ t ch. Cỏc s c ghi cỏch nhau ớt nht mt du cỏch. D liu ra: Ghi ra file vn bn NOUCAMP.OUT, theo cu trỳc nh sau: - Dũng 1: Ghi K s nguyờn dng b 1 , b 2 , , b k , l ch s ca cỏc gh trờn sõn cha c mua vộ t ch (K = N-M). Cỏc s c ghi theo th t tng dn v cỏch nhau ớt nht mt du cỏch. 2 Ví dụ: NOUCAMP.INP NOUCAMP.OUT 16 10 2 3 6 7 8 9 10 12 15 16 1 4 5 11 13 14 Câu 3: (3,5 điểm) Xếp hộp lồng nhau XEPHOP.PAS Bé Ri tuy còn nhỏ nhưng là một cô bé rất xinh xắn và chăm chỉ. Mẹ bé Ri là chủ một cửa hàng. Hàng ngày, cửa hàng của mẹ loại ra rất nhiều hộp giấy hình hộp chữ nhật. Bé Ri thường giúp mẹ xếp những hộp giấy này lồng vào nhau cho gọn. Giả sử có N hộp giấy, các hộp được đánh số từ 1 đến N. Với mỗi hộp giấy, bé Ri biết được chính xác độ dài hai cạnh đáy của hộp là a và b. Yêu cầu: Hãy giúp bé Ri xếp các hộp sao cho số lượng các hộp lồng vào nhau là lớn nhất. Dữ liệu vào: Cho trong file văn bản XEPHOP.INP, có cấu trúc như sau: - Dòng 1: Ghi số nguyên dương N, là số lượng hộp giấy. (1 ≤ N ≤ 1000) - N dòng tiếp theo: Mỗi dòng ghi hai số nguyên dương a i b i , là độ dài hai cạnh đáy của hộp giấy thứ i. (1 ≤ a i , b i ≤ 32767) Dữ liệu ra: Ghi ra file văn bản XEPHOP.OUT theo cấu trúc như sau: - Dòng 1: Ghi số nguyên dương M là số lượng các hộp giấy lồng nhau tìm được. - Dòng 2: Ghi M số nguyên dương, là chỉ số của M hộp giấy theo thứ tự từ ngoài vào trong của một cách xếp hộp. Ví dụ: XEPHOP.INP XEPHOP.OUT 5 1 5 5 7 6 4 3 6 2 5 3 2 3 5 ==HẾT== 3 Sở GD&ĐT kỳ thi CHọN học sinh giỏi cấp tỉnh lớp 12 THPT Quảng bình năm học 2012 - 2013 Môn thi: tin học - Vòng iI hớng dẫn chấm I. Phng phỏp: - Giỏm kho to b d liu vo, tớnh toỏn kt qu. Thc hin chng trỡnh ca hc sinh v so sỏnh kt qu. - Giỏm kho cú th s dng chng trỡnh gi ý di õy tớnh toỏn kt qu ca d liu vo. - Chng trỡnh hc sinh ỳng mt b test, giỏm kho cho 0,5 im. Nh vy, nu mt cõu cú 3 im thỡ giỏm kho phi to 6 b test. - Vi mi cõu, giỏm kho phi to c ớt nht mt b test cú khụng gian d liu ln. - Riờng Cõu 3, ch s cỏc hp c chn ca HS cú th khỏc vi ỏp ỏn. Nu kt qu ca hc sinh khỏc ỏp ỏn nhng vn ỳng thỡ giỏm kho vn cho im ti a. II. Chng trỡnh gi ý: Cõu 1: (3,0 im) Tớnh din tớch tam giỏc {$r+} const fi='dt.inp'; fo='dt.out'; type mm=array [1 4] of integer; var a,b:mm; f:text; s:real; procedure nhap; var i:integer; begin assign(f,fi); reset(f); for i:=1 to 3 do readln(f,a[i],b[i]); close(f); end; procedure xuly; var i:integer; T1,T2:LONGINT; begin a[4]:=a[1]; b[4]:=b[1]; s:=0; for i:=1 to 3 do begin t1:=b[i+1]+b[i]; t2:=a[i+1]-a[i]; s:=s+(t1*t2)/2; end; end; procedure xuat; begin assign(f,fo); rewrite(f); write(f,abs(s):0:1); close(f); end; begin nhap; xuly; xuat; end. Cõu 2: (3,5 im) t vộ vo sõn NouCamp Const fi='noucamp.in1'; 4 fg='noucamp.out'; maxn=51000; type mmc=array[1 maxn] of byte; var a:mmc; ti,n,m:longint; procedure xl; var f:text; i,x:longint; by,bi:word; begin fillchar(a,sizeof(a),0); assign(f,fi);reset(f); readln(f,n,m); for i:=1 to m do begin read(f,x); by:=(x div 8)+1; bi:= x mod 8; if bi=0 then begin bi:=8; by:=by-1; end; a[by]:=a[by] or (1 shl (bi-1)); end; close(f); end; procedure xuat; var f:text; i,j:longint; begin assign(f,fg);rewrite(f); {writeln(f,n-m);} for i:= 1 to n div 8 do for j:=1 to 8 do if ((a[i] shr (j-1)) and 1)=0 then write(f,(i-1)*8+j,' '); close(f); end; begin xl; xuat; end. Câu 3: (3,5 điểm) Xếp hộp lồng nhau {$R+,Q+} {$M 63840,0,655360} Const Fi='xephop.in1'; Fo='xephop.out'; Type Mang=Array[0 5000] of integer; Var A,b,vt:Mang; F:Text; M,n:integer; Function Max(a,b:Integer):integer; Begin Max:=a; If b>a then Max:=b; End; Procedure Doi(Var A,b:Longint); Var T:Longint; Begin T:=a; A:=b; B:=t; End; Procedure Doi1(Var A,b:integer); Var T:integer; Begin T:=a; A:=b; B:=t; End; Procedure Init; Var S:Array[0 5000] Of Longint; I,j:Integer; procedure Sort(l, r: Integer); var i, j, x, y: Longint; 5 begin i := l; j := r; x := s[(l+r) DIV 2]; repeat while s[i] < x do i := i + 1; while x < s[j] do j := j - 1; if i <= j then begin { y := a[i]; a[i] := a[j]; a[j] := y;} Doi1(a[i],a[j]); Doi1(b[i],b[j]); Doi(s[i],s[j]); Doi1(vt[i],vt[j]); i := i + 1; j := j - 1; end; until i > j; if l < j then Sort(l, j); if i < r then Sort(i, r); end; Begin Assign(f,fi); Reset(f); Readln(f,n); For i:=1 to n do vt[i]:=i; For i:=1 to n do Begin Readln(f,a[i],b[i]); If A[i]<b[i] then Doi1(a[i],b[i]); End; Close(f); Fillchar(s,sizeof(s),0); For i:=1 to n do S[i]:=longint(a[i])*Longint(b[i]); Sort(1,n); End; Function Bao(i,j:Integer):boolean; Begin Bao:= (a[j]>a[i]) And (b[j]>b[i]); End; Procedure Qhd; Var I,j,maxx,v:Integer; Tr,sl:Array[0 5000] Of Integer; Begin For i:=1 to n do sl[i]:=1; For i:=2 to n do For j:=i-1 downto 1 do If sl[j]+1>sl[i] then if Bao(j,i) then Begin Tr[i]:=j; Sl[i]:=sl[j]+1; End; Maxx:=1; V:=1; For i:=1 to n do If Maxx<sl[i] then Begin Maxx:=sl[i]; V:=i; End; Assign(f,fo); Rewrite(f); Writeln(f,maxx); For i:=1 to maxx do Begin Sl[i]:=v; V:=tr[v]; End; For i:= 1 to maxx do Writeln(f,Vt[sl[i]],' '); Close(f); 6 End; Begin Init; Qhd; End. . Gd&Đt kỳ thi CHọN học sinh giỏi cấp tỉnh lớp 12 thpt Quảng bình năm học 2 0 12 - 20 13 Môn thi: tin học - Vòng II Đề thi chính thức (Khóa thi ngày 11. 6 2 5 3 2 3 5 ==HẾT== 3 Sở GD&ĐT kỳ thi CHọN học sinh giỏi cấp tỉnh lớp 12 THPT Quảng bình năm học 2 0 12 - 20 13 Môn thi: tin học - Vòng

Ngày đăng: 10/03/2014, 11:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan