You are on page 1of 8

S GD & T NGH AN

K THI CHN HC SINH GII TNH LP 12


N M HC 2013-2014

thi chnh
Mn thi: TIN HC THPT BNG A
Thi gian: 150 pht (khng k thi gian giao )

Bi
Bi 1
Bi 2
Bi 3
Bi 4

Tn file ngun
LAPTRINH.PAS
DOANMAX.PAS
XOASO.PAS
MAHOA.PAS

TNG QUAN BI THI


File Input
File Output
LAPTRINH.INP
LAPTRINH.OUT
DOANMAX.INP
DOANMAX.OUT
XOASO.INP
XOASO.INP
MAHOA.INP
MAHOA.UOT

Thi gian chy


1 giy
1 giy
1 giy
1 giy

im
7
5
5
3

Bi 1. (7 im) LAPTRINH
Trong cuc thi lp trnh c N bi thi gii ng yu cu t ra. Ban t chc quyt nh trao gii phn
thng c bit cho bi thi tt nht, l bi thi c thi gian chy chng trnh t nht. Cho bit bi thi
th i (1<=i<=N) c thi gian chy l mt s nguyn Ai (Tnh theo n v Centisecond, 1 Centisecond =
1/100 giy).
Yu cu: Hy cho bit thi gian ca bi thi c trao thng v c bao nhiu bi thi c trao
thng.
D liu: Vo t file vn bn LAPTRINH.INP
- Dng 1 cha s nguyn dng N (N<=100).
- Dng 1 ch N s nguyn A1 A2 An (0<=Ai<=100)
Kt qu: Ghi ra file vn bn LAPTRINH.OUT
- Dng th 1 cha mt s nguyn l thi gian t nht tm c.
- Dng th 2 cha mt s nguyn l s bi thi cng t thi gian t nht
V d.
LAPTRINH.INP
LAPTRINH.OUT
5
8
10 8 12 8 11
2
Gii thch test v d: thi gian t nht l f8 v c 2 bi cng thi gian
Bi 2. (5 im) ON MAX
Cho chui k t S gm cc ch ci in hoa (AZ) vi di khng vt qu 104.
Yu cu: Hi tm on con cc k t lin tip di nht sao cho khng c k t no xut hin nhiu
hn mt ln. Trong trng hp c nhiu hn mt on con c cng chiu di di nht, hy ch ra on
xut hin u tin trong chui S.
D liu: Vo t vn bn DOANMAX.INP:
- Gm mt dng duy nht cha chui S.
Kt qu: Ghi ra file vn bn DOANMAX.OUT
- ch mt dng duy nht cha s nguyn P v L tng ng l v tr v chiu di ca on con di
nht tm c.
V d:
DOANMAX.INP
DOANMAX.OUT
ABABCDAC
34
Lu : C 80% test c di xu khng vt qu 255.
Gii thch test v d: on con di nht tm c l ABCD c v tr 3 v d di 4

Bi 3. (5 im) XO S.
Cho dy s nguyn khng m A1 A2... An. Ngi ta mun chn 2 ch s i, j sao cho 1<=i<=j<=N v
xo khi dy 2 s Ai, Aj tng gi tr cc s cn li trong dy l s chn.
Yu cu: Hy m s lng cch chn 2 ch s i, j tho mn. Hai cch chn khc nhau nu tn ti
mt ch s khc nhau.
D liu: Vo t file vn bn XOASO.INP
- Dng 1 ch s nguyn dng N (N<=106)
- Dng 2 cha N s nguyn khng m A1 A2An (Ai<=103)
Kt qu: Ghi ra file XOASO.OUT
- Ch mt dng duy nht cha mt s nguyn l s cch chn 2 ch s tho mn.
V d:
XOASO.INP
XOASO.OUT
5
6
12345
Lu : C 50% test c N<=1000.
Gii thch test v d: C 6 cch chn 2 ch s i, j l:
i = 1, j=2 tng cn li A3+ A4+ A5 = 3 + 4 + 5 = 12 l s chn.
Tng t: i=1, j=4 v i=2; j=3 v i=2; j-5 v i=3; j=4 v i=4; j=5.
Bi 4. M HO
Nam rt thch th vi vic m ho d liu. Trong bui tho lun lp Nam trnh by mt tng
rt th v rng bn y va pht minh ra mt cch m ho mi, c th m cc thng tin m khng ai c th
gii m. Cch m ho l: Vi mt s nguyn N, xo cc cha s t con s ny bng mi cch c th, ta
s nhn c cc s mi. Mt s cch xo m s mi thu c c gi tr bng s c l khi ta xo cc
ch s 0 bn tri. Hy tm tng ca tt c cc con s mi thu c. Tng ny chnh l m ho ca N.
Mt bn trong lp c kin Mnh ngh cch m ho ca cu trn my tnh s thc hin mt
nhiu thi gian vi s c nhiu ch s, chng hn s c 100 ch s. Khng th ch c mt m s cho
s c 100 ch s. Cch m ho ny ca bn khng th c p dng trn thc t. Nam tr li khng,
khng, khng. Ngy mai mnh s a ra chng trnh thc hin cch m ho ny, v s m ho cho s c
100 ch s trong thi gian khng qu 1 giy cu tr li ca Nam c c lp rt hoan nghnh. Bn hy
gip Nam vit chng trnh .
Yu cu: Cho s nguyn N (1<=N<=10100) v xc nh s nguyn S l m ho ca N theo phng
php m ho ca Nam.
D liu: Vo t file vn bn MAHOA.INP
Ch mt dng duy nht cha s nguyn N (ch s bn tri cc ch s ca N l khc 0).
Kt qu: ua ra file vn bn MAHOA.OUT
- Ch mt s duy nht l s nguyn S tm c.
V d:
MAHOA.INP
MAHOA.OUT
109
157
Gii thch test v d:
N=109. Sau khi xo chng ta nhn c cc s sau
V tr xo
1
2
3
1, 2
1, 3
2, 3
123
S mi
109
09
19
10
9
0
1
0
Tng cc s thu c: 109+09+19+10+9+0+1+0=157. V vy m ca 109 l 157

H S Hong Trng THPT Qunh Lu 2


HNG DN GII
(Ch : Hng dn khng phi l p n ca S, ch l hng dn tham kho, gii theo cch hiu
bit ca c nhn. V th c th khng chnh xc v cng do lm trong thi gian ngn nn c th mc mt
s li no )
Cu 1. Cu ny th chc cc bn u bit cch gii. V s ly c im ti a 7 im.
Program Cau1;
Const fi='LAPTRINH.INP';
fo= LAPTRINH .OUT';
var A:array[0..100] byte;
n,min,sl: Byte;
Procedure Docdl;
Var f:text;
i:Byte;
Begin
assign(f,fi); reset(f);
readln(f,n);
min:=255;
for i:=1 to n do
Begin
read(f,A[i]);
if min>A[i] then min:=A[i]
End;
Close(f)
End;
Procedure Xuly;
var i:Byte;
Begin
sl:=0;
for i:=1 to n do
if A[i]=min then
inc(sl);
End;
Procedure LuuKq;
var f:text;
Begin
assign(f,fo); Rewrite(f);
writeln(f,min)
write(f,sl);
Close(f);
End;
BEGIN
DocDl;
XuLy;
LuuKq;
END.

Cu 2. u bi cho l XU nhng li c s lng phn t khng vt qu 104. Trong khi xu


ch c ti a 255 k t. V vy nu bn khai bo l Xu th ch ly c 80% test tc l 4 im. Vy lm
th no ly c 100% test, bn phi khai bo v x l dng Mng cc k t.
Thut ton th vn khng c g l kh v n gn ging bi Tm on n iu di nht, duy ch khc
nhau im dng m thi.
Program Cau2;
Const fi='DOANMAX.INP';
fo='DOANMAX.OUT';
var A:array[0..10000] of char;
n,cs,max:integer;
Procedure Docdl;
Var f:text;
Begin
assign(f,fi); reset(f);
n:=0;
while not eof(f) do
Begin
inc(n);
read(f,A[n]);
End;
Close(f)
End;
Procedure Xuly;
var i,j,sl:integer;
tam:string;
Begin
max:=0;
for i:=1 to n-1 do
Begin
tam:=A[i];
sl:=1;
j:=i+1;
while (pos(A[j],tam)=0) and (j<=n) do
Begin
tam:=tam+A[j];
inc(sl);
inc(j);
End;
if sl>max then
Begin
max:=sl;
cs:=i;
End;
End;
End;
Procedure LuuKq;
var f:text;
Begin

assign(f,fo); Rewrite(f);
writeln(f,cs,' ',Max);
Close(f);
End;
BEGIN
DocDl;
XuLy;
LuuKq;
END.
Cu 3. Cu ny nu bn xt tt c mi trng hp i, j th chc chn khng th lu mng vi 1 triu
phn t c. V vng lp cng rt ln.
Cn nu bn ch cn ly 50% nh trong th hon ton c th vt cn cc trng hp bng cnh
1. u tin tnh tng cc phn t vo bin T (tnh 1 ln).
2. Th tt c cc trng hp
For i:=1 to n-1 do
For j:=i+1 to n do
If (tong A[i]-A[j] ) mod 2 = 0 then
Inc(dem);
Nhng ly c 100% test th ta ch rng.
- Gi SL l s phn t l, SN l s phn t chn SL c gi tr l th ta c Tng l s l, ngc li
SL c gi tr chn th Tng s c s Chn.
V vy
TH1: Nu SL l s l cn xo 1 s l v mt s chn s cch xo l SL*SN.
TH2: Nu SL l s chn cn xo 2 s l hoc 2 s chn S c (SL2-SL + SN2-SN) cch xo
(Cc bn nhm dy s thnh 2 nhm s nhn thy c iu ).
Vy bi ton ca ta tr thnh bi ton m s lng phn t L v s lng phn t chn.
Thut ton nh sau
Program Cau3;
Const fi='XOASO.INP';
fo='XOASO.OUT';
var A:array[0..1] of longint;
n:longint;
Sl:longint;
Procedure Docdl;
Var f:text;
tam:integer;
Begin
assign(f,fi); reset(f);
readln(f,n);
for n:=1 to n do
Begin
read(f,tam);
inc(A[tam mod 2]);
End;
Close(f)
End;

Procedure Xuly;
Begin
if( A[1] mod 2) = 1 then
Begin
Sl:=A[1]*A[0]
End
else
Begin
Sl:=(A[0]*A[0]-A[0]+A[1]*A[1]-A[1]) div 2
End;
End;
Procedure LuuKq;
var f:text;
Begin
assign(f,fo); Rewrite(f);
write(f,Sl);
Close(f);
End;
BEGIN
DocDl;
XuLy;
LuuKq;
END.
A[0] l s lng phn t Chn, A[1] l s lng phn t L
Bn cng c th thay phn c d liu bng
Procedure Docdl;
Var f:text;
tam:integer;
Begin
assign(f,fi); reset(f);
readln(f,n);
for n:=1 to n do
Begin
read(f,tam);
if tam mod 2 = 0 then inc(A[0])
End;
A[1]:=n-A[0];
Close(f)
End;
Cu 4. Cu ny thc t mnh cha ngha ra thut ton no khc ngoi thut ton Sinh xu nh phn.
-B1: c s trong tp vo mt xu hoc bin mng k t.
Gi s di s l N.
Th ta s c 2N cch xo. Nn ta dng thut ton sinh ra xu nh nhn N bt t
- B2: to xu SD l xu u tin s l: 0000
- B3: to xu SC l xu cui cng s l:11.11
S c 2N xu nh th
- B4: Ta s cho SD chy ti SC.

- B5: Vi mi gi tr ca xu SD ta ly ra mt s. Bng cch: Nu SD[i]=1 th gi nguyn ch s


th i trong s ta c vo.
Khi chng trnh s l
Program Cau4;
Const fi='MAHOA.INP';
fo='MAHOA.OUT';
var
So:String;
n:Byte;
t:real;
Procedure Docdl;
Var f:text;
Begin
assign(f,fi); reset(f);
n:=0;
while not eof(f) do
Begin
inc(n);
read(f,So[n]);
End;
Close(f)
End;
Function Conver(S:string): Real;
var i:byte;
tam:string;
num:real;
code:integer;
Begin
tam:='';
for i:=1 to n do
if S[i]='1' then
tam:=tam+So[i];
val(tam,num,code);
Conver:=Num
End;
Procedure Xuly;
var i:integer;
Sd,Sc:String;
Begin
t:=0; Sd:=''; Sc:='';
for i:=1 to n do
Begin
Sd:=Sd+'0';
SC:=Sc+'1'
End;
while Sd<Sc do

Begin
i:=n;
while (Sd[i]='1') do
Begin
Sd[i]:='0';
dec(i);
End;
Sd[i]:='1';
t:=t+Conver(Sd);
End;
End;
Procedure LuuKq;
var f:text;
Begin
assign(f,fo); Rewrite(f);
write(f,t:1:0);
Close(f);
End;
BEGIN
DocDl;
XuLy;
LuuKq;
END.

You might also like