1. Trang chủ
  2. » Trung học cơ sở - phổ thông

Đề thi học sinh giỏi lớp 12 môn tin học

12 120 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 56,5 KB

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

Nội dung

Dữ liệu đa ra file có tên BAI2.OUT, gồm m dòng.. Viết chơng trình thực hiện các công việc sau: Thực hiện tách xâu thành 2 xâu: xauchar và xaunum trong đó xauchar là xâu gồm các chữ cái,

Trang 1

Sở GD - ĐT Quảng Bình

Đề thi học sinh giỏi lớp 12 năm học 2007 – 2008

Câu 1: Cho dãy số A1, A2,…, An với (n<100, Ai là số nguyên và

1 < Ai <200 với i đi từ 1 đến n)

Hãy chọn ngẩu nhiên các phần tử của dãy thành hai nhóm sao cho tổng các phần tử trong mỗi nhóm chênh lệch nhau ít nhất

Yêu cầu:

Dữ liệu vào: Cho bởi file BAI1.INP trong đó

Dòng đầu tiên ghi số n

Dòng tiếp theo chứa giá trị các phần tử của dãy

Dữ liệu ra đợc ghi vào file BAI1.OUT trong đó:

Dòng thứ nhất ghi: Câu “Chenh lech:” và giá trị chênh lệch giữa hai nhóm

Dòng thứ hai ghi: “Nhom 1:”

Dòng thứ ba ghi: các phần tử của nhóm 1

Dòng thứ t ghi: “Nhom 2:”

Dòng thứ năm ghi: các phần tử của nhóm 2

Ví dụ:

Dữ liệu vào

File đầu vào BAI1.INP File đầu ra BAI2.OUT

Bài 2 Làm vờn.

Một mãnh vờn hình chử nhật đợc chia làm m hàng ngang và n hàng dọc (n,m<=50) Trên mỗi ô vờn có một số ô đã đợc trồng cây dài ngày không đợc trồng thêm, các ô còn lại sẽ đợc trồng bằng hai loại cây ngắn ngày là Lạc và vừng Hãy tìm cách trồng các cây ngắn ngày vào các ô trống sao cho tổng các ô trồng lạc và vừng trên mỗi hàng ngang và mỗi hàng dọc chênh lệch ít nhất

Yêu cầu:

Dữ liệu vào cho bởi file BAI2.INP trong đó

- Dòng thứ nhất chứa hai giá trị m và n

- Mỗi dòng trong m dòng tiếp theo chứa n số 0 hoặc 1 Số 0 chỉ

ô đã trồng cây dài ngày, số 1 chỉ ô cha trồng

9

2 2 3 4 5 6 7 8 9

chenh lech: 0 Nhom 1:

7 5 4 3 2 2 nhom 2:

6 8 9

Trang 2

Dữ liệu đa ra file có tên BAI2.OUT, gồm m dòng Mỗi dòng có n

số nhận giá trị 0, 1 hoặc 2 trong đó

- Số 0 chỉ ô đã trồng cây dài ngày

- Số 1 chỉ ô trồng lạc

- Số 2 chỉ ô trồng vừng

Ví dụ:

File đầu vào BAI2.INP File đầu ra BAI2.OUT

Bài 3:

Cho một xâu bao gồm những chữ cái in hoa và các chữ số từ 0…9

Viết chơng trình thực hiện các công việc sau:

Thực hiện tách xâu thành 2 xâu: xauchar và xaunum trong

đó xauchar là xâu gồm các chữ cái, xaunum là xâu gồm các chữ

số, đợc giữ nguyên thứ tự từ trái sang phải

Thực hiện sắp xếp xâu xauchar theo thứ tự lớn dần(ABCD…) Tìm độ dài lớn nhất của một xâu con trong xâu xaunum có

các giá trị lập thành một cấp số cộng và đa xâu con đó ra (lu ý; Nếu có nhiều xâu con lập thành một cấp số cộng có độ dài bằng nhau thì đa xâu con tìm đợc đầu tiên từ trái sang phải)

Yêu cầu

Dữ liệu vào cho bởi tệp BAI3.INP

Dữ liệu đa ra tệp có tên BAI3.OUT trong đó

- Dòng thứ nhất ghi xâu xauchar đã sắp xếp

- Dòng thứ hai ghi độ dài lớn nhất của xâu con (trong xâu

xaunum) tạo thành cấp số cộng

- Dòng thứ ba ghi xâu con (trong xâu xaunum) lập thành cấp

số cộng

Ví dụ

5 6

1 1 0 1 1 0

0 1 1 0 1 1

1 0 0 1 1 1

1 0 1 0 1 0

1 0 0 1 1 1

1 1 0 2 1 0

0 2 1 0 2 1

2 0 0 1 1 2

1 0 2 0 2 0

2 0 0 1 1 1

5 6

1 1 0 1 1 0

0 1 1 0 1 1

1 0 0 1 1 1

1 0 1 0 1 0

1 0 0 1 1 1

1 1 0 2 1 0

0 2 1 0 2 1

2 0 0 1 1 2

1 0 2 0 2 0

2 0 0 1 1 1

JKSGFJKKL32123456789310KJKDJH

GF

DFFGGHJJJJKKKKKLS 9

123456789

Trang 3

File ®Çu vµo BAI3.INP File ®Çu ra

BAI3.OUT

Trang 4

§¸p ¸n

Bµi 1

Program BAI1;

Const MaxN=100;

fi='bai1.inp';

fo='bai2.out' ;

Var A:Array[1 MaxN] of 0 200;

N1: array[1 MaxN] of 0 1;

V: array[1 2,0 20000] of 0 1; N: Byte;

Max, j1,j2, clech: Longint;

Procedure Docfile;

Var i: Byte;

f: Text;

Begin

Assign(f,fi); reset(f);

Readln(f,n);

For i:=1 to n do

Read(f,a[i]);

Close(f);

End;

Procedure Khoitao;

Begin

docfile;

fillchar(v,sizeof(v),0);

fillchar(N1,sizeof(N1),0);

End;

Procedure Chiaday;

var i: Byte;

j: Longint;

Begin

v[1,0]:=1;

Max:=0;

For i:=1 to n do

Begin

For j:= max downto 0 do

If v[1,j] =1 then

if v[1,j+A[i]] = 0 then

Begin

v[1,j+A[i]]:=1;

v[2,j+A[i]]:=i;

End;

Max:=Max +a[i];

Trang 5

End;

j1:= Max div 2;

While v[1,j1] = 0 do dec(j1); j2:= Max -j1;

Clech:=j2-j1;

End;

Procedure Ghitep;

Var i: longint;

f:text;

Begin

Assign(f,fo); rewrite(f);

i:=j1;

writeln(f,'chenh lech: ',clech); Writeln(f,'Nhom 1:');

While i>=1 Do

Begin

Write(f,A[v[2,i]],' ');

N1[v[2,i]]:=1;

i:=i- a[v[2,i]];

end;

Writeln(f);

Writeln(f,'nhom 2:');

For i:=1 to n do

If N1[i] =0 then

Write(f,A[i],' ');

close(f);

End;

BEGIN

Khoitao;

Chiaday;

Ghitep;

End

Trang 6

Bµi 2

Program bai2;

Const fi='bai2.inp';

fo='bai2.out';

Var a : array[1 50,1 50] of Byte; d,c : array[1 50] of Byte;

n,m, dem, soluong: Byte;

Lcay:Byte;

Procedure Docfile;

Var i,j: Byte;

f:Text;

Begin

Assign(f,fi); reset(f);

Read(f,n,m);

Fillchar(d,sizeof(d),0);

Fillchar(c,sizeof(c),0);

Soluong:=0;

for i:=1 to n do

for j:= 1 to m do

Begin

Read(f,a[i,j]);

If a[i,j]=1 then

Begin

Inc(d[i]);

Inc(c[i]);

Inc(soluong);

End;

End;

Close(f);

End;

Function Timc(x:Byte):Byte;

Var j:Byte;

Begin

Timc:=0;

For j:= 1 to m do

If a[x,j]=1 then

Begin

Timc:=j;

Break;

End;

End;

Function Timd(x:Byte):Byte;

Var j:Byte;

Trang 7

Timd:=0;

For j:= 1 to n do

If a[j,x]=1 then

Begin

Timd:=j;

Break;

End;

End;

Procedure chond(var p,q:Byte); Var i,j:Byte;

Begin

q:=3;

For i:=1 to n do

if odd(d[i]) then

Begin

p:=i;

q:=1;

Break;

End;

For j:=1 to m do

if odd(c[i]) then

Begin

p:=j;

q:=2;

Break;

End;

For i:=1 to n do

if d[i]>0 then

Begin

p:=i;

q:=1;

Break;

End;

End;

Procedure Di(x,y:Byte);

Var i,j: Byte;

Begin

Repeat

If y=1 then

Begin

j:=timc(x);

If j>0 Then

Trang 8

Begin

Inc(dem);

Dec(d[x]);

Dec(c[j]);

Inc(a[x,j],y); y:=3-y;

x:=j;

End

Else

Break;

End

Else

Begin

i:=timd(x);

If i>0 Then

Begin

Inc(dem);

Dec(d[i]);

Dec(c[x]);

Inc(a[i,x],y); y:=3-y;

x:=i;

End

Else

Break;

End;

Until False;

End;

Procedure Xuly;

Var p,q:Byte;

Begin

Dem:=0;

Repeat

Chond(p,q);

di(p,q);

Until dem=soluong; End;

Procedure Ghitep;

Var i,j:Byte;

f:Text;

Begin

Assign(f,fo); Rewrite(f); for i:=1 to n do

Trang 9

Begin

For j:=1 to m do

If a[i,j]>0 then Write(f,a[i,j]-1,' ') Else

Write(f,0,' '); Writeln(f);

End;

Close(f);

End;

BEGIN

Docfile;

xuly;

ghitep;

END

Trang 10

Bµi 3

Program BAI1;

Const MaxN=100;

fi='bai3.inp';

fo='bai3.out' ;

Var A:Array[1 MaxN] of byte;

B:array[1 Maxn] of byte;

c:array[1 Maxn] of byte;

DCSC,s:string;

t:integer;

max,vt:byte;

xauchar, xaunum,stt:string;

Procedure Docfile;

Var i: Byte;

f: Text;

Begin

Assign(f,fi); reset(f);

Readln(f,s);

Close(f);

End;

Procedure TACHXAU;

Var i:Byte;

Begin

xauchar:='';

xaunum:='';

i:=1;

While i<= length(s) do

Begin

If (s[i]>='A')and(s[i]<='Z') then

Begin

xauchar:=xauchar+s[i];

Xaunum := Xaunum + '';

End

Else

Begin

Xauchar:=Xauchar+'';

Xaunum:=xaunum+s[i];

End;

i:=i+1;

end;

For i:=1 to length(xauchar) do

if xauchar[i]=''then delete(xauchar,i,1); For i:=1 to length(xaunum) do

Trang 11

if xaunum[i]=''then delete(xaunum,i,1); End;

Procedure XLCHAR(st:string);

var n,i,j:Byte;

TG:byte;

Begin

n:=length(st);

for i:= 1 to maxn do

a[i]:=0;

for i:= 1 to n do

a[i]:=ord(st[i]);

for i:= 1 to n do

for j:= 1 to n-1 do

if a[i] < a[j] then

Begin

TG:=A[i];

A[i]:=A[j];

A[j]:=TG;

End;

stt:='';

for i:=1 to n do

stt:= stt + chr(a[i]);

End;

Procedure XLNUM(NUM:String);

Var d,i,j,n:byte;

BCX:string;

Begin

n:=length(xaunum);

For i:=1 to n do

Val(xaunum[i],b[i],t);

d:=b[2]-a[1];

c[1]:=1;

c[2]:=2;

for i:=3 to n do

if b[i]-b[i-1]=d then

Begin

c[i]:=c[i-1]+1;

end

Else

Begin

c[i]:=2;

d:=b[i]-b[i-1];

end;

Trang 12

max:=2;

for i:=1 to n do

if c[i]>max then

begin

max:=c[i];

vt:=i;

end;

for j:=vt downto vt-max+1 do

Begin

str(b[j],bcx);

DCSC:=DCSC+ bcx;

End;

end;

Procedure ghitep;

Var f:text;

Begin

assign(f,fo); rewrite(f);

Writeln(f,stt);

Writeln(f,max);

Write(f,DCSC);

end;

BEGIN

docfile;

tachxau;

XLCHAR(xauchar);

XLNUM(xaunum);

ghitep;

End

Biểu điểm

Bài 1 (3đ) Chơng trình rõ ràng, đúng Bài 2 (5đ) Chơng trình rõ ràng, đúng Bài 3 (2đ) Chơng trình rõ ràng, đúng

Ngày đăng: 17/08/2017, 14:14

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w