Tải bản đầy đủ (.doc) (12 trang)

Ti 02 hsg12pt 16 tr13

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (159 KB, 12 trang )

MÃ KÍ HIỆU
(PHẦN NÀY DO SỞ GDĐT GHI)
…………………………..

ĐỀ THI CHỌN HSG LỚP 12 THPT CẤP TỈNH
NĂM 2023
MÔN: TIN HỌC
Thời gian làm bài: 120 phút (không kể thời gian phát đề)
Đề thi gồm 03 câu, 03 trang
Tổng quan đề thi

Bài

Tên bài

1 Xóa kí tự
2 Dãy con
3 Đơi bạn

File chương
trình
XOAKITU.*
DAYCON.*
FRIEND.*

File dữ liệu vào
XOAKITU.INP
DAYCON.INP
FRIEND.INP

File kết quả


XOAKITU.OUT
DAYCON.OUT
FRIEND.OUT

Thời gian
1s / test
1s / test
1s / test

Dấu * được thay bởi PAS, PY hoặc CPP của ngôn ngữ lập trình tương ứng Pascal, Python hoặc
C++
Hãy lập trình giải các bài toán sau:
BÀI 1 (6 điểm) Xoá kí tự:
Trong pascal xâu là dãy các kí tự nằm trong bộ mã ASCII (bao gồm chữ cái, chữ số, kí tự
đặc biệt).
u cầu: Viết chương trình xóa các ký tự liên tiếp giống nhau trong một xâu cho trước và chỉ giữ
lại một kí tự
Dữ liệu: Cho trong file XOAKITU.INP gồm 1 dịng chứa xâu bất kì.
Kết quả: Ghi ra file XOAKITU.OUT chứa xâu kết quả sau khi đã xóa các ký tự trùng
Ví dụ:
XOAKITU.INP

XOAKITU.OUT

Niiiiiiih BBBBBinhhhh

Ninh Binh

(Hạn chế: Độ dài xâu khơng q 255 kí tự)
Bài 2 (7 điểm) Dãy con:

Cho dãy gồm N số nguyên a1, a2, ..., an.
Yêu cầu: Tìm dãy con gồm một hoặc một số phần tử liên tiếp của dãy đã cho với tổng các phần tử
trong dãy là lớn nhất.
Dữ liệu: Vào từ file văn bản DAYCON.INP
- Dòng đầu tiền chứa số nguyên dương n (n < 106).
- Dòng thứ 2 chứa các giá trị a[i] (|ai| < 1000).
Kết quả: Ghi ra file văn bản DAYCON.OUT
- Dịng đầu tiên ghi vị trí của phần tử đầu tiên của dãy con tìm được.
- Dịng thứ 2 ghi vị trí của phần tử cuối cùng của dãy con tìm được
- Dịng thứ 3 ghi tổng các phần tử của dãy con tìm được.
Ví dụ:
DAYCON.INP
8
12 -14 1 23 -6 22 -34 13
Bài 3 (7 điểm) Đôi bạn:
1

DAYCON.OUT
3
6
40


Trước kia Tuấn và Mai là hai bạn cùng lớp còn bây giờ hai bạn học khác trường nhau. Cứ mỗi
sáng, đúng 6 giờ cả hai đều đi từ nhà tới trường của mình theo con đường mất ít thời gian nhất (có
thể có nhiều con đường đi mất thời gian bằng nhau và đều ít nhất). Nhưng hơm nay, hai bạn muốn
gặp nhau để bàn việc họp lớp cũ nhân ngày 20-11.
Cho biết sơ đồ giao thông của thành phố gồm N nút giao thông được đánh số từ 1 đến N và M tuyến
đường phố (mỗi đường phố nối 2 nút giao thơng). Vị trí nhà của Mai và Tuấn cũng như trường của
hai bạn đều nằm ở các nút giao thông. Cần xác định xem Mai và Tuấn có cách nào đi thoả mãn yêu

cầu nêu ở trên, đồng thời họ lại có thể gặp nhau ở nút giao thơng nào đó trên con đường tới trường
hay khơng ? (Ta nói Tuấn và Mai có thể gặp nhau tại một nút giao thơng nào đó nếu họ đến nút giao
thông này tại cùng một thời điểm). Nếu có nhiều phương án thì hãy chỉ ra phương án để Mai và
Tuấn gặp nhau sớm nhất.
Dữ liệu vào được đặt trong tệp FRIEND.INP:
 Dòng đầu tiên chứa 2 số nguyên dương N, M (1  N  100);
 Dòng tiếp theo chứa 4 số nguyên dương Ha, Sa, Hb, Sb lần lượt là số hiệu các nút giao thông
tương ứng với: Nhà Tuấn, trường của Tuấn, nhà Mai, trường của Mai.
 Dòng thứ i trong số M dòng tiếp theo chứa 3 số nguyên dương A, B, T. Trong đó A & B là hai
đầu của tuyến đường phố i. Cịn T là thời gian (tính bằng giây  1000) cần thiết để Tuấn (hoặc
Mai) đi từ A đến B cũng như từ B đến A.
Giả thiết là sơ đồ giao thơng trong thành phố đảm bảo để có thể đi từ một nút giao thông bất kỳ đến
tất cả các nút còn lại.
Kết quả : Ghi ra tệp văn bản FRIEND.OUT
 Dòng 1: Ghi từ YES hay NO tuỳ theo có phương án giúp cho hai bạn gặp nhau hay khơng.
Trong trường hợp có phương án:
 Dịng 2: Ghi thời gian ít nhất để Tuấn tới trường
 Dịng 3: Ghi các nút giao thông theo thứ tự Tuấn đi qua
 Dịng 4: Ghi thời gian ít nhất để Mai tới trường
 Dịng 5: Ghi các nút giao thơng theo thứ tự Mai đi qua
 Dòng 6: Ghi số hiệu nút giao thơng mà hai bạn gặp nhau
 Dịng 7: Thời gian sớm nhất tính bằng giây kể từ 6 giờ sáng mà hai bạn có thể gặp nhau.
Các số trên một dòng của Input/Output file ghi cách nhau ít nhất một dấu cách.
Ví dụ : Với sơ đồ giao thông sau: (N=6,M=7, Ha=1, Sa=6, Hb=2, Sb=5)
FRIEND.INP
67
1625
1 3 10
1 4 10
235

345
3 6 15
4 5 20
4 6 15

FRIEND.OUT
YES
25
146
30
2345
4
10

1

10
10

4

15

5
5
2

2

3


5

20

15

6


------------------------HẾT------------------------

3


MÃ KÍ HIỆU
(PHẦN NÀY DO SỞ GDĐT GHI)
………………………

HƯỚNG DẪN CHẤM ĐỀ THI CHỌN HSG LỚP 12 THPT
Năm 2023
Môn: Tin học
(Hướng dẫn chấm gồm 04 trang)
Phần mở rộng của file chương trình là PAS, CPP hoặc PY tuỳ theo ngơn ngữ lập trình sử dụng
là Pascal, C++ hoặc Python
Cách chấm bài:
1. Sao chép bài làm của thí sinh (*.PAS hoặc *.CPP hoặc *.PY) từ đĩa bài thi vào ổ cứng.
2. Sao chép test *.IN? vào cùng thư mục với bài làm và đổi tên thành *.INP
3. Chạy chương trình của thí sinh.
Kiểm tra file *.OUT do chương trình sinh ra, nếu có, mở file đó, so sánh với đáp án và cho điểm.

Nếu chương trình của thí sinh khơng sinh được file *.OUT không cho điểm.
- Mỗi test đúng cho 1 điểm (chạy tối đa 7 test).
BÀI 1 ( 6 điểm ) XOÁ KÍ TỰ:
program xoakitu;
uses crt;
var
s
: string;
i
: byte;
ch
: char;
f
: Text;
begin
clrscr;
Assign(f,'xoakitu.INP');
Reset(f);
Readln(f,s);
Close(f);
Assign(f,'xoakitu.OUT');
Rewrite(f);
ch := s[1];
Write(f,ch);
for i:=2 to Length(s) do
if s[i]<> ch then begin ch := s[i];
Write(f,ch);
end; Close(f);
readln;
end.

Bài 2 (7 điểm) Dãy con:
4


Program BAI2;
const inp = 'DAYCON.inp';
out = 'DAYCON.out';
var n, dau, cuoi, d:longint;
max, T:longint;
f, g:text;
Procedure input;
begin
assign(f,inp);
reset(f);
assign(g,out);
rewrite(g);
Readln(f,n);
End;
Procedure solve;
var i,j:longint;
begin
dau:=1; cuoi:=1; d:=1;
max:=-maxlongint; T:=0;
for i:=1 to n do
begin
read(f,j); T:=T + j ;
If T > max then
begin
max:=T;
dau:=d;

cuoi:=i;
end;
If T<0 then begin T:=0; d:=i+1; end;
end;
End;
Procedure output;
Begin
writeln(g,dau);
writeln(g,cuoi);
writeln(g,max);
Close(f); Close(g);
End;
BEGIN
input;
solve;
5


output;
END.
Bài 3 (7 điểm) Đôi bạn:
Program DOI_BAN;
const fi='friend.inp';
fo='friend.out';
mn=100; maxc=1000000;
var f:text;
n,cs,ha,sa,hb,sb:byte;
m:integer;
min:longint;
a:array[1..mn,1..mn] of longint;

pre:array[1..mn,1..mn] of integer;
Procedure nhap;
var i,j,k:integer;
Begin
assign(f,fi); reset(f);
fillchar(a,sizeof(a),0);
readln(f,n,m);
readln(f,ha,sa,hb,sb);
for i:=1 to n do
for j:=1 to n do
begin
a[i,j]:=maxc;
a[i,i]:=0;
end;
for k:=1 to m do
begin
readln(f,i,j,a[i,j]);
a[j,i]:=a[i,j];
end;
close(f);
End;
Procedure floyd;
var i,j,k:integer;
Begin
for k:=1 to n do
for i:=1 to n do
for j:=1 to n do
if a[i,j]>a[i,k]+a[k,j] then
begin
6



a[i,j]:=a[i,k]+a[k,j];
pre[i,j]:=k;
end;
End;
Procedure xuly;
var i,j,k:integer;
Begin
fillchar(pre,sizeof(pre),0);
floyd;
min:=maxc;
cs:=0;
for i:=1 to n do
if (a[ha,i]=a[hb,i]) then
if (a[ha,i]and (a[ha,i]+a[i,sa]=a[ha,sa])
and (a[hb,i]+a[i,sb]=a[hb,sb]) then
if a[ha,i]begin
min:=a[ha,i];
cs:=i;
end;
End;
Procedure print(i,j:integer);
var k:integer;
p:array[1..100] of byte;
Begin
fillchar(p,sizeof(p),0);
k:=1; p[k]:=j;

while pre[i,j]<>0 do
begin
j:=pre[i,j];
inc(k);
p[k]:=j;
end;
for i:=k downto 1 do
write(f,p[i],' ');
End;
Procedure xuat;
var i,j:integer;
Begin
assign(f,fo); rewrite(f);
7


if min=maxc then write(f,'NO')
else begin
writeln(f,'YES');
writeln(f,a[ha,cs]+a[cs,sa]);
write(f,ha,' ');
print(ha,cs);
print(cs,sa);
writeln(f);
writeln(f,a[hb,cs]+a[cs,sb]);
write(f,hb,' ');
print(hb,cs);
print(cs,sb);
writeln(f);
writeln(f,cs);

write(f,min);
end;
End;
BEGIN
nhap;
xuly;
xuat;
close(f);
END.

8


TEST - HSG12PT - TIN HỌC - 2023
Bài 1 (6 điểm) Xóa kí tự:
INPUT

OUTPUT

Test 1

Niiiiiiinh BBBBBinhhhh

Ninh Binh

Test 2

Tiiinnnn hhhhhhhoooooooooooooocccccccc

Tin hoc


Test 3

Hhhhhhooooccccc ssssssiiiiiinnnnhhhhhh ggggggiiiiiooooiiii

hoc sinh gioi

Test 4

KKKIII TTTHIII HHHSSSGG LLLLLOOOPPPP 11112222

Test 5

TTTTHHHIIIIII HHHSSSSSSGGGG 11100 CCCHHUYEN

KI THI HSG
LOP 12
THI HSG 10
CHUYEN

Bài 2 (7 điểm) Dãy con:
DAYCON.IN1
TEST 1

TEST 2

TEST 3

TEST 4


TEST 5

DAYCON.OU1

8
12 -14 1 23 -6 22 -34 14

3
6
40

DAYCON.IN2
6
25 27 35 37 45 47

DAYCON.OU2
1
6
216

DAYCON.IN3
7
-30 45 27 -80 74 90 -55

DAYCON.OU3
5
6
164

DAYCON.IN4

9
47 28 36 7 -50 9 -23 -40 31

DAYCON.OU4
1
4
118

DAYCON.IN5
10
1 -15 40 25 -29 65 47 90 22 -31

DAYCON.OU5
3
9
260

Bài 3 (7 điểm) Đôi bạn:
INPUT
Test 1

OUTPUT

67
1625
1 3 10
1 4 10

YES
25

146
30
9


Test 2

Test 3

Test 4

Test 5

235
345
3 6 15
4 5 20
4 6 15
69
1625
1 4 10
345
3 6 15
4 5 20
4 6 15
512
137
169
4 2 10
8 10

1836
1 2 10
1 5 15
268
3 5 15
3 7 10
457
4 8 11
5 6 14
577
7 8 12
54
1325
1 4 10
2 4 10
3 4 15
4 5 20

2345
4
10

NO

YES
33
1548
29
356
5

15

YES
25
143
30
245
4
10
NO

10 13
1529
125
1 10 20
178
2 10 20
3 5 10
10


Test 6

3 10 7
4 5 11
4 6 12
6 9 20
985
9 10 5
876

8 10 2
10 13
1529
1 10 20
2 8 12
2 10 20
348
395
3 5 10
3 10 7
459
4 6 15
6 10 14
7 8 12
8 10 10
9 10 5

YES
37
1 10 3 5
25
2 10 9
10
20

…………HẾT…………

11



PHẦN KÝ XÁC NHẬN
TÊN FILE ĐỀ THI: TI-02-HSG12PT-23-TR14.doc
MÃ ĐỀ THI (DO SỞ GDĐT GHI):…………………………………………..
TỔNG SỐ TRANG (GỒM ĐỀ THI VÀ HƯỚNG DẪN CHẤM) LÀ: 11 TRANG.
NGƯỜI RA ĐỀ THI
NGƯỜI THẨM ĐỊNH
XÁC NHẬN CỦA BGH
(Họ và tên, chữ ký)
VÀ PHẢN BIỆN CỦA
(Họ và tên, chữ ký, đóng dấu)
TRƯỜNG
(Họ và tên, chữ ký)

Nguyễn Thị Dung

Hoàng Thị Lan

12

Vũ Thị Thúy Hà



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×