1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề và đáp án môn Tin học tỉnh Thanh Hoá kỳ thi chọn đội tuyển HSG năm 2013_2014

10 85 3

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 137 KB
File đính kèm Test_ngay1.rar (3 MB)

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

Nội dung

Đề thi, hướng dẫn làm các bài trong đề thi và bộ test dùng để chấm điểm. Chỉ cần tải về làm rồi dùng chương trình Themis để chấm bài. Nếu không làm được thì đọc hướng dẫn làm bài và đọc chương trình tôi đã viết. Cảm ơn

Trang 1

SỞ GIÁO DỤC VÀ ĐÀO TẠO

THANH HOÁ

KỲ THI CHỌN ĐỘI TUYỂN DỰ THI HSGQG LỚP 12 THPT

NĂM HỌC 2013 – 2014

MÔN THI: TIN HỌC

Ngày thi: 08 – 10 – 2013

Thời gian 180 phút, không kể thời gian giao đề

(Đề gồm 3 câu, 2 trang)

Tổng quan bài thi :

Câu Tên bài Tên file nguồn Tên file input Tên file output Điểm

Hãy lập trình giải các bài toán sau:

Câu 1 CHU KỲ

Cho xâu S chỉ gồm các kí tự từ '0' đến '9' và từ 'a' đến 'z' Xâu S bao giờ cũng biểu diễn được dưới dạng WT.

Ví dụ: ababab = ab3 hoặc ababab1

Yêu cầu: Tìm cách biểu diễn xâu S dưới dạng WT sao cho độ dài của xâu W nhỏ nhất.

Dữ liệu: Vào từ file văn bản CHUKY.INP gồm một dòng chứa xâu kí tự S có độ dài không

vượt quá 107.

Kết quả: Ghi ra file văn bản CHUKY.OUT một số duy nhất là độ dài xâu W tìm được.

Ví dụ:

Câu 2 CHI PHÍ

Cơ sở mới của trường đã

được xây dựng xong, tuy vậy vẫn

còn một số hạng mục chưa hoàn

thành, trong đó có khu giáo dục

thể chất ngoài trời Nhà trường

cần hoàn thiện gấp đường chạy

cho các tiết thể dục vào đầu năm

học Khu giáo dục thể chất ngoài

trời có dạng lưới ô vuông kích

thước n×m ô Các hàng và cột đánh số từ 1, từ trên xuống dưới và từ trái qua phải Ô xuất

phát và ô kết thúc đường chạy là cố định và được cho trước Cần phải tổ chức dọn dẹp, san lấp các ô để được một đường chạy độ rộng một ô và bao gồm các ô kề cạnh Chi phí dọn dẹp các ô có thể là khác nhau, vì vậy cần chọn đường chạy sao cho tổng chi phí dọn dẹp là nhỏ nhất

ĐỀ CHÍNH THỨC

SBD: ………

Trang 2

Yêu cầu: Cho n, m, (xs,ys) – tọa độ ô xuất phát, (xf, yf) – tọa độ ô kết thúc và chi phí dọn dẹp

ô (i, j) là Cij Hãy xác định chi phí nhỏ nhất để dọn dẹp đường chạy.

Dữ liệu: Vào từ file văn bản CHIPHI.INP gồm:

- Dòng đầu tiên chứa 2 số nguyên n và m (1≤ n, m≤150)

- Mỗi dòng trong n dòng tiếp theo chứa m số nguyên không âm xác định chi phí dọn dẹp

các ô trên dòng (mỗi số không vượt quá 100).

- Dòng n+2 chứa 2 số nguyên xs và ys

- Dòng cuối cùng chứa 2 số nguyên xf và yf.

(Các số trên một dòng được cách nhau bởi dấu cách)

Kết quả: Đưa ra file văn bản CHIPHI.OUT chứa một số nguyên là chi phí dọn dẹp đường chạy.

Ví dụ:

CHIPHI.INP CHIPHI.OUT

3 3

1 1 1

1 1 1

10 1 1

1 1

3 3

5

Câu 3 CANH GÁC

Nông trang có rất nhiều ngọn đồi, để bảo vệ nông trang, John muốn đặt người canh gác trên các ngọn đồi này John băn khoăn không biết sẽ cần bao nhiêu người canh gác nếu như anh ta muốn đặt 1 người canh gác trên đỉnh của mỗi đồi Anh ta có bản đồ của nông trang là một bảng gồm N hàng và M cột Mỗi phần tử của bảng là độ cao Hij so với mặt nước biển của ô (i, j)

Đỉnh đồi là 1 hoặc nhiều ô nằm kề nhau của bảng có cùng độ cao được bao quanh bởi cạnh của bản đồ hoặc bởi các ô có độ cao nhỏ hơn Hai ô gọi là kề nhau nếu độ chênh lệch giữa tọa độ X không quá 1 và chênh lệch tọa độ Y không quá 1.

Yêu cầu: Hãy giúp John xác định số lượng đỉnh đồi trên bản đồ.

Dữ liệu: Vào từ file văn bản CANHGAC.INP gồm:

- Dòng đầu chứa hai số nguyên N và M được cách nhau bởi dấu cách (1<N,M≤ 700).

- N dòng tiếp theo: Mỗi dòng mô tả hàng i của bảng với M số nguyên Hij, các số cách nhau bởi dấu cách (0≤Hij≤104).

Kết quả: Ghi vào file văn bản CANHGAC.OUT một số nguyên duy nhất là số lượng đỉnh đồi.

Ví dụ:

8 7

4 3 2 2 1 0 1

3

Trang 3

const fi='chuky.inp';

fo='chuky.out';

var f:text;

st,s:ansistring;

i,n:longint;

{=============================}

procedure docdl;

begin

assign(f,fi);

reset(f);

s:='';

while not eof(f) do

begin

readln(f,st);

s:=s+st;

end;

close(f);

end;

{=============================}

function check(k:longint):boolean;

var j:longint;

begin

st:=copy(s,1,k);

j:=k+1;

while j<=n-k+1 do

if copy(s,j,k)=st then

j:=j+k

else

break;

if j>n then

check:=true

else

check:=false;

end;

{=============================}

begin

docdl;

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

n:=length(s);

i:=1;

while (i<=n) and (not check(i)) do

i:=i+1;

writeln(f,i);

close(f);

end

Trang 4

const fi='chiphi.INP';

fo='chiphi.OUT';

dx:array[1 4] of integer=(0,1,0,-1);

dy:array[1 4] of integer=(1,0,-1,0);

type bg=record

u,v:longint;

end;

var d,pos,c:array[0 150,0 150] of longint;

s1,s2,f1,f2,m,n,spt:longint;

vt:array[0 100000] of bg;

procedure docfile;

var i,j:longint;

begin

assign(input,fi);

reset(input);

readln(m,n);

for i:=1 to m do

for j:=1 to n do

read(c[i,j]);

readln(s1,s2);

readln(f1,f2);

assign(output,fo);

rewrite(output);

end;

procedure dongfile;

begin

close(input);

close(output);

end;

procedure capnhat(u,v:longint);

var p,c:longint;

begin

c:=pos[u,v];

if c=0 then

begin

inc(spt);

c:=spt;

end;

repeat

p:=c div 2;

if (p=0) or (d[vt[p].u,vt[p].v]<=d[u,v]) then break;

vt[c]:=vt[p];

pos[vt[c].u,vt[c].v]:=c;

c:=p;

until false;

vt[c].u:=u; vt[c].v:=v;

pos[u,v]:=c;

end;

function trace:bg;

var p,c,u,v:longint;

Trang 5

vt[p]:=vt[c];

pos[vt[p].u,vt[p].v]:=p;

p:=c;

until false;

vt[p].u:=u; vt[p].v:=v;

pos[u,v]:=p;

end;

procedure dijktra;

var i,j,u,v,ux,vy:longint;

bg1:bg;

begin

for i:=1 to m do

for j:=1 to n do

begin

d[i,j]:=maxlongint;

pos[i,j]:=0;

end;

d[s1,s2]:=c[s1,s2]; capnhat(s1,s2);

repeat

bg1:=trace;

u:=bg1.u; v:=bg1.v;

if (u=f1) and (v=f2) then

begin

writeln(d[u,v]);

exit;

end;

for i:=1 to 4 do

if (u+dx[i]>=1) and (u+dx[i]<=m) and (v+dy[i]<=n) and

(v+dy[i]>=1) then

begin

ux:=u+dx[i];

vy:=v+dy[i];

if d[ux,vy]>d[u,v]+c[ux,vy] then

begin

d[ux,vy]:=d[u,v]+c[ux,vy];

capnhat(ux,vy);

end;

end;

until false;

end;

procedure xuli;

begin

dijktra;

end;

BEGIN

docfile;

xuli;

dongfile;

END

Trang 6

tfi='canhgac.INP';

tfo='canhgac.OUT';

dh:array[1 8]of longint=(0,-1,0,1,-1,-1,1,1);

dc:array[1 8]of longint=(1,0,-1,0,1,-1,-1,1);

max=701;

VAR

fi,fo:text;

LT,dd,a:array[0 max,0 max]of longint;

Q:Array[0 max*max]of longint;

n,m,res,qf,ql:longint;

Function DoiSo(i,j:longint):longint;

Begin

doiso:=(i-1)*n+j;

End;

Procedure DoiDinh(u:longint; var i,j:longint);

Begin

i:=(u-1) div n+1;

j:=(u-1) mod n+1;

End;

Procedure InitQ;

Begin

qf:=1; ql:=1;

End;

Procedure Put(u:longint);

Begin

q[ql]:=u;

inc(ql);

End;

Function Get:longint;

Begin

get:=q[qf];

inc(qf);

End;

Function Qempty:boolean;

Begin

qempty:=qf=ql;

End;

Procedure Input;

Var i,j:longint;

Begin

assign(fi,tfi); reset(fi);

read(fi,m,n);

for i:=1 to m do

Trang 7

for j:=1 to n do

begin

for k:=1 to 8 do

begin

ii:=i+dh[k]; jj:=j+dc[k];

if (ii>=1) and (ii<=m) and (jj>=1) and (jj<=n) then

if a[ii,jj]>a[i,j] then dd[i,j]:=1;

if a[ii,jj]<a[i,j] then dd[ii,jj]:=1;

end;

end;

End;

Procedure BFS(xp:longint);

Var ii,jj,i,j,k,u,v:longint;

ok:boolean;

Begin

ok:=true;

InitQ; put(xp);

while not qempty do

begin

u:=get; doidinh(u,i,j);

for k:=1 to 8 do

begin

ii:=i+dh[k]; jj:=j+dc[k];

if (ii>=1) and (ii<=m) and (jj>=1) and (jj<=n) and

(LT[ii,jj]=0) and (a[ii,jj]=a[i,j]) then

begin

LT[ii,jj]:=res;

put(doiso(ii,jj));

if dd[ii,jj]=1 then ok:=false;

end;

end;

end;

if not ok then dec(res);

End;

Procedure Calculate;

Var i,j:longint;

Begin

Fillchar(LT,sizeof(LT),0);

res:=0;

for i:=1 to m do

for j:=1 to n do

if (dd[i,j]=0) and (LT[i,j]=0) then

begin

inc(res);

LT[i,j]:=res;

BFS(doiso(i,j));

end;

End;

Procedure Process;

Begin

Init;

Calculate;

End;

Procedure Output;

Var i,j:longint;

Begin

assign(fo,tfo); rewrite(fo);

Trang 8

writeln(fo,res);

close(fo);

End;

BEGIN

Input;

Process;

Output;

END

Trang 10

Ngày đăng: 17/10/2020, 10:38

HÌNH ẢNH LIÊN QUAN

Dữ liệu: Vào từ file văn bản CHIPHI.INP gồm: - Đề và đáp án môn Tin học tỉnh Thanh Hoá kỳ thi chọn đội tuyển HSG năm 2013_2014
li ệu: Vào từ file văn bản CHIPHI.INP gồm: (Trang 2)
Đỉnh đồi là 1 hoặc nhiề uô nằm kề nhau của bảng có cùng độ cao được bao quanh bởi cạnh của bản đồ hoặc bởi các ô có độ cao nhỏ hơn - Đề và đáp án môn Tin học tỉnh Thanh Hoá kỳ thi chọn đội tuyển HSG năm 2013_2014
nh đồi là 1 hoặc nhiề uô nằm kề nhau của bảng có cùng độ cao được bao quanh bởi cạnh của bản đồ hoặc bởi các ô có độ cao nhỏ hơn (Trang 2)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w