Download đề và đáp án thi học sinh giỏi lớp 12 môn tin học 2006 2007 tỉnh quảng bình (vòng 2)

5 446 4
Download đề và đáp án thi học sinh giỏi lớp 12 môn tin học 2006 2007 tỉnh quảng bình (vòng 2)

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

Thông tin tài liệu

së gi¸o dôc - ®µo t¹o Qu¶ng b×nh kú thi chän häc sinh giái líp 12 n¨m häc 2006-2007 §Ò chÝnh thøc - m«n : tin häc (vßng 2) SBD: Thêi gian lµm bµi: 180 phót. §Ò ra C©u 1: (3,0 ®iÓm) Chia b¸nh (tªn file bµi lµm CAKE.PAS) Trong buæi tèi trung thu cã mét c¸i b¸nh h×nh trßn. B¸nh ®îc viÒn quanh bëi N qu¶ d©u vµ qu¶ sim. Yªu cÇu: T×m c¸ch c¾t b¸nh b»ng mét nh¸t dao ®Ó ®îc hai phÇn sao cho sè lîng qu¶ d©u ë phÇn nµy b»ng sè lîng qu¶ d©u ë phÇn kia vµ sè lîng qu¶ sim ë phÇn nµy b»ng sè lîng qu¶ sim ë phÇn kia. D÷ liÖu vµo: Cho trong file CAKE.INP cã cÊu tróc nh sau: Dßng 1: Ghi sè nguyªn d¬ng N lµ sè lîng qu¶ d©u vµ qu¶ sim ë trªn viÒn b¸nh (1 ≤ N ≤ 255). Dßng 2: Ghi d·y gåm N ký tù “D” hoÆc “S” ghi liÒn nhau. C¸c vÞ trÝ g¾n qu¶ trªn b¸nh ®îc ®¸nh sè tõ 1 ®Õn N theo chiÒu kim ®ång hå b¾t ®Çu tõ mét vÞ trÝ tuú ý. D÷ liÖu ra: Ghi ra file CAKE.OUT theo cÊu tróc nh sau: Dßng 1: NÕu t×m ®îc c¸ch chia th× ghi hai sè nguyªn d¬ng a, b (a ≤ b) cho biÕt c¸c qu¶ ë vÞ trÝ a, a+1, ..., b lµ c¸c qu¶ thuéc cïng mét trong hai phÇn b¸nh. NÕu kh«ng t×m ®îc c¸ch chia th× ghi sè 0. VÝ dô: CAKE.INP CAKE.OUT CAKE.INP CAKE.OUT 6 3 5 5 0 DSSSDS DSDDS C©u 2: (3,5 ®iÓm) M· ho¸ x©u nhÞ ph©n (tªn file bµi lµm BINCODE.PAS) Ngêi ta m· ho¸ mét x©u nhÞ ph©n gåm c¸c ký tù 0 vµ 1 nh sau : Víi mét x©u nhÞ ph©n S, m· ho¸ cña nã lµ mét m¶ng T chøa c¸c sè nguyªn kh«ng ©m sao cho T[1] b»ng 0 hoÆc b»ng 1 tuú theo ký tù ®Çu tiªn cña S lµ 0 hay 1. NÕu T[1]=0 th× tÝnh tõ tr¸i sang ph¶i cña x©u S, lÇn lît T[2] b»ng sè ký tù 0 liªn tiÕp, T[3] b»ng sè ký tù 1 liªn tiÕp, T[4] b»ng sè ký tù 0 liªn tiÕp... cho ®Õn hÕt x©u S. Yªu cÇu: Cho mét x©u nhÞ ph©n S, h·y x¸c ®Þnh m¶ng T theo c¸ch m· ho¸ trªn. D÷ liÖu vµo: Cho trong file v¨n b¶n BINCODE.INP, cã cÊu tróc nh sau: Dßng 1: Ghi sè N lµ sè lîng x©u nhÞ ph©n cÇn m· ho¸ (1 ≤ N ≤ 100). N dßng tiÕp theo: Mçi dßng ghi mét x©u nhÞ ph©n S (1 ≤ length(S) ≤ 100). D÷ liÖu ra: Ghi ra file v¨n b¶n BINCODE.OUT, theo cÊu tróc nh sau: N dßng: Mçi dßng ghi m¶ng T lµ kÕt qu¶ m· ho¸ cña x©u nhÞ ph©n t¬ng øng. C¸c sè trªn cïng mét dßng ®îc ghi c¸ch nhau mét dÊu c¸ch. 1 VÝ dô: BINCODE.INP 2 0001111100111 10001111100111 BINCODE.OUT 0 3 5 2 3 1 1 3 5 2 3 C©u 3: (3,5 ®iÓm) H×nh ch÷ nhËt (tªn file bµi lµm: HCN.PAS) Cho N h×nh ch÷ nhËt trªn mÆt ph¼ng to¹ ®é sao cho c¸c c¹nh song song víi c¸c trôc to¹ ®é. C¸c h×nh ch÷ nhËt ®îc ®¸nh sè tõ 1..N. H×nh ch÷ nhËt i ®îc gäi lµ bao h×nh ch÷ nhËt j nÕu c¶ bèn ®Ønh cña h×nh ch÷ nhËt j ®Òu n»m trong hoÆc n»m trªn c¸c c¹nh cña h×nh ch÷ nhËt i. Yªu cÇu: T×m d·y c¸c h×nh ch÷ nhËt bao nhau sao cho sè lîng c¸c h×nh bao nhau lín nhÊt. D÷ liÖu vµo: Cho trong file v¨n b¶n HCN.INP, cã cÊu tróc nh sau: Dßng 1: Ghi sè nguyªn N, lµ sè lîng h×nh ch÷ nhËt (1 ≤ N ≤ 1000). N dßng tiÕp theo: Mçi dßng ghi bèn sè nguyªn x1, y1, x2, y2 lÇn lît lµ hoµnh ®é, tung ®é cña c¸c ®Ønh tr¸i trªn, ph¶i díi cña mét h×nh ch÷ nhËt (-10000 < x 1 , y1, x2, y2 < 10000) D÷ liÖu ra: Ghi ra file v¨n b¶n HCN.OUT, theo cÊu tróc nh sau : Dßng 1: Ghi sè nguyªn k lµ sè lîng c¸c h×nh ch÷ nhËt bao nhau lín nhÊt t×m ®îc. VÝ dô: HCN.INP HCN.OUT 6 2 1 5 2 2 2 4 3 3 1 5 5 2 4 3 8 1 5 6 8 4 6 6 8 5 HÕt 2 Híng dÉn chÊm ®Ò thi chÝnh thøc häc sinh giái líp 12 - vßng 2 n¨m häc 2006-2007 I/ Ph¬ng ph¸p chung - Gi¸m kh¶o t¹o c¸c bé d÷ liÖu vµo, tÝnh to¸n kÕt qu¶. Ch¹y ch¬ng tr×nh cña häc sinh vµ so s¸nh kÕt qu¶. - Gi¸m kh¶o cã thÓ sö dông ch¬ng tr×nh gîi ý ®Ó tÝnh kÕt qu¶ cña d÷ liÖu vµo: CAKE.PAS BINCODE.PAS HCN.PAS - Ch¬ng tr×nh häc sinh ch¹y ®óng mçi bé test, gi¸m kh¶o cho 0,5 ®iÓm. Nh vËy, nÕu c©u hái cã 3,0 ®iÓm th× gi¸m kh¶o ph¶i t¹o ®îc 6 bé test. - NÕu ch¬ng tr×nh ch¹y sai test nµo th× gi¸m kh¶o cho 0 ®iÓm ®èi víi test ®ã. - Bµi to¸n cã thÓ cã nhiÒu kÕt qu¶ ®óng, nÕu kÕt qu¶ cña häc sinh kh¸c víi ®¸p ¸n nhng vÉn ®óng th× gi¸m kh¶o vÉn cho ®iÓm tèi ®a. II/ Ch¬ng tr×nh gîi ý: C©u 1: CAKE.PAS {$r+} Const fi='Cake.INP'; fo='Cake.OUT'; Var A:String; N:Byte; f:Text; Procedure Read_file; Begin Assign(f,fi); Reset(f); Readln(f,n); Read(f,A); Close(f); End; Procedure Xuli; Var i,sd,d,j,n1:Byte; st:String; Begin If n mod 2 = 1 then Begin Writeln(f,0); Close(f); Halt; End; d:=0; For i:=1 to n do If A[i]='D' then Inc(d); If d mod 2 = 1 then Begin Writeln(f,0); Close(f); Halt; End; n1:=n div 2; For i:=1 to n1 do Begin sd:=0; st:=copy(a,i,n1); For j:=1 to n1 do If st[j]='D' then Inc(sd); If sd=(d div 2) then Begin Write(f,i,' ',i+n1-1); Close(f); Halt; End; End; End; Begin Read_file; Assign(f,fo); Rewrite(f); Xuli; Close(f); End. 3 C©u 2 : BINCODE.PAS program const bincode; fi='bincode.inp'; fo='bincode.out'; type mmcs=array[1..100] of string; var f:text; a:mmcs; n:word; procedure doc; var i:word; begin assign(f,fi); reset(f); readln(f,n); for i:=1 to n do readln(f,a[i]); close(f) end; procedure xl; var i,j,x:word; st,s1:string; begin assign(f,fo);rewrite(f); for i:=1 to n do begin st:=a[i]; while st[1]=' ' do delete(st,1,1); while st[length(st)]=' ' do delete(st,length(st),1); write(f,st[1],' '); while st'' do begin if st[1]='1' then begin x:=pos('0',st); if x0 then s1:=copy(st,1,x-1) else begin s1:=st;x:=length(st)+1;end; delete(st,1,x-1); write(f,length(s1),' '); end; if st[1]='0' then begin x:=pos('1',st); if x0 then s1:=copy(st,1,x-1) else begin s1:=st;x:=length(st)+1;end; delete(st,1,x-1); write(f,length(s1),' '); end; end; writeln(f); end; close(f); end; begin doc; xl; end. C©u 3: HCN.PAS {$R+,Q+,S+} const INP ='hcn.inp'; OUT ='hcn.out'; MAX = 1000; var x1,y1,x2,y2,kq :array [1..MAX] of integer; n : integer; fi,fo : text; procedure input; var i : integer; 4 begin assign(fi,INP); reset(fi); read(fi,n); for i := 1 to n do read(fi,x1[i],y1[i],x2[i],y2[i]); close(fi); end; function area(i : integer) : longint; begin area:=longint(abs(x1[i]-x2[i]))*longint(abs(y1[i]-y2[i])); end; procedure qsort(l,r : integer); var i, j, mid, t : integer; begin mid := (1 + r) div 2; i := 1; j:= r; repeat while area(i) < area(mid) do inc(i); while area(j) > area(mid) do dec(j); if i j; if i < r then qsort(1,j); end; function bao(i,j : integer) : integer; begin if (x1[i]= y1[j])and(x2[i]>= x2[j])and (y2[i] tmp then tmp := kq[i]; {if tmp = 1 then tmp := -1;} assign(fo,OUT); rewrite(fo); writeln(fo,tmp); close(fo); end; begin input; qsort(1,n); progress; output; end. HÕt 5 ... 8 6 Hết Hớng dẫn chấm đề thi thức học sinh giỏi lớp 12 - vòng năm học 2006-2007 I/ Phơng pháp chung - Giám khảo tạo liệu vào, tính toán kết Chạy chơng trình học sinh so sánh kết - Giám khảo sử... đợc test - Nếu chơng trình chạy sai test giám khảo cho điểm test - Bài toán có nhiều kết đúng, kết học sinh khác với đáp án nhng giám khảo cho điểm tối đa II/ Chơng trình gợi ý: Câu 1: CAKE.PAS... sinh so sánh kết - Giám khảo sử dụng chơng trình gợi ý để tính kết liệu vào: CAKE.PAS BINCODE.PAS HCN.PAS - Chơng trình học sinh chạy test, giám khảo cho 0,5 điểm Nh vậy, câu hỏi có 3,0 điểm giám

Ngày đăng: 11/10/2015, 13:33

Từ khóa liên quan

Mục lục

  • BINCODE.INP

  • BINCODE.OUT

  • HCN.INP

  • HCN.OUT

    • I/ Ph­¬ng ph¸p chung

    • II/ Ch­¬ng tr×nh gîi ý:

    • C©u 1: CAKE.PAS

    • C©u 2 : BINCODE.PAS

      • C©u 3: HCN.PAS

      • HÕt

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

  • Đang cập nhật ...

Tài liệu liên quan