Học sinh giỏi là kỳ thi vô cùng quan trọng giúp các trường tìm ra những học sinh ưu tú nhất. Bởi thế, nên cuộc chạy đua giữa các em cũng hết sức gay go, hiểu được điều đó, HOC247 giới thiệu đến các em Đề thi HSG môn Tin học 11 năm 2019 của trường THPT Liễn Sơn nhằm giúp các em làm quen với cấu trúc đề thi, biết cách giải các bài tập khó. Mong rằng khi ôn tập với những đề thi học sinh giỏi Tin 11 này các em sẽ đạt được kết quả cao trong kỳ thi sắp tới. Mời các em cùng tham khảo.
SỞ GD VÀ ĐT VĨNH PHÚC TRƯỜNG THPT LIỄN SƠN |
KỲ THI CHỌN HSG CẤP TRƯỜNG LỚP 11 Năm học: 2018-2019 MÔN: TIN HỌC Thời gian 180 phút (Không kể thời gian giao đề) |
Tổng quan bài thi
TT |
Tên bài |
Tên file CT |
Tên file DL vào |
Tên file DL ra |
Điểm |
Thời gian |
1 |
Đếm đoạn |
count.pas |
count.inp |
count.out |
7 |
1s |
2 |
Số lớn |
nmax.pas |
nmax.inp |
nmax.out |
7 |
1s |
3 |
Chia quà tết |
gift.pas |
gift.inp |
gift.out |
6 |
1s |
Bài 1: Đếm đoạn
Tên file: count.pas
Dữ liệu vào: count.inp
Dữ liệu ra: count.out
Cho mảng A có N số nguyên. Một đoạn con của A là một dãy các phần tử liên tiếp trong A. Hãy đếm số đoạn con của A có giá trị lớn nhất lớn hơn hoặc bằng M .
Dữ liệu:
- Dòng 1: Ghi 2 số nguyên , các số cách nhau 1 khoảng trống.
- Dòng 2: Ghi số nguyên của dãy , các số cách nhau 1 khoảng trống.
Kết quả:
- Gồm 1 dòng duy nhất ghi kết quả.
Ví dụ:
count.inp | count.out |
5 1 1 1 1 1 1 |
15 |
count.inp | count.out |
4 4 1 5 2 5 |
8 |
Giới hạn:
- Có số test ứng với số điểm có
- Có số test khác ứng với số điểm có
- Có 40% số test còn lại ứng với số điểm có
- Trong tất cả các test có .
Bài 2. Số lớn
Tên file: nmax.pas
Dữ liệu vào: nmax.inp
Dữ liệu ra: nmax.out
Peter và Bin chơi trò chơi tìm số lớn, Peter cho Bin biết trước một xâu kí tự, trong đó có ít nhất 5 chữ số. Peter yêu cầu Bin tìm số lớn nhất từ xâu đã cho bằng cách hãy loại bỏ một số kí tự ra khỏi xâu sao cho 5 kí tự cuối cùng còn lại theo đúng thứ tự đó tạo thành số lớn nhất.
Dữ liệu: Dòng 1 gồm một xâu cho trước
Kết quả: Một dòng duy nhất chứa số nguyên là số lớn nhất mà Bin tìm được sau khi loại bỏ các kí tự.
Ví dụ:
nmax.inp |
nmax.out |
13a7b48cb7d9e68f7 |
89687 |
Bài 3: Chia quà tết
Tên file: gift.pas
Dữ liệu vào: gift.inp
Dữ liệu ra: gift.out
Trường THPT A chia quà tết cho học sinh, có X chiếc áo và Y hộp bánh để chia quà cho học sinh diện chính sách cuối năm 2018. Nhà trường chia quà cho học sinh thoả mãn điều kiện: nếu chia cho n học sinh diện chính sách thì các học sinh phải nhận được số lượng chiếc áo như nhau, số lượng hộp bánh như nhau, đồng thời phải chia hết tất cả X chiếc áo và Y hộp bánh. Em hãy giúp nhà trường liệt kê tất cả các phương án chia quà thoả mãn điều kiện nêu trên.
Dữ liệu: Dòng 1: hai số nguyên X, Y (1<= X, Y <= 109)
Kết quả: Dòng 1.. m (m là số phương án chia quà): trên mỗi dòng ghi ba số nguyên n, a, b (mỗi số cách nhau một dấu cách) là một phương án chia quà có n học sinh được chia quà, mỗi học sinh nhận a chiếc áo và b hộp bánh. Các phương án được liệt kê ở các dòng liên tiếp theo thứ tự n tăng dần.
Ví dụ:
gift.inp |
gift.out |
9 12 |
1 9 12 3 3 4 |
6 18 |
1 6 18 2 3 9 3 2 6 6 1 3 |
ĐÁP ÁN ĐỀ THI HSG MÔN TIN 11 NĂM 2019
Bài 1: Đếm đoạn
uses math;
var q,d,z,n,i,s,m,k,j:longint;
f, g:text;
a, b:array[0..1000000]of qword;
begin
assign(f,'nmax.inp');reset(f);
assign(g,'nmax.out');rewrite(g);
readln(f,n,m);
// s:=0;
// d:=0;
for i:=1 to n do
read(f,a[i]);
q:=0;
for i:=1 to n do
begin
if a[i]>=m then
begin
q:=i;
b[i]:=b[i-1]+q;
end
else
b[i]:=b[i-1]+q;
end;
writeln(g,b[n]);
close(f);
close(g);
End.
Bài 2: Tìm số lớn
var f,g:text;
s:ansistring;
Procedure Nhap;
Begin
assign(f,'nmax.inp'); reset(f);
assign(g,'nmax.out'); rewrite(g);
read(f,S);
close(f);
end;
Procedure xuly;
var i,j,k:byte;
begin
i:=1;
repeat
if s[i] in ['0'..'9'] then inc(i) else delete(s,i,1);
until i>length(s);
for i:=1 to 5 do
begin
k:=i;
for j:=i to length(s)+i-5 do
if s[k]
if k>i then delete(s,i,k-i);
end;
writeln(g,copy(s,1,5));
close(g);
end;
Begin
Nhap; xuly; readln;
End.
Bài 3: Chia quà tết
//gift.pas
var i,x,y:longint;
f,g: text;
function UCLN(x,y:longint):longint;
var sd:longint;
begin
while y<>0 do
begin
sd:= x mod y;
x:=y;
y:=sd;
end;
UCLN:=x;
end;
begin
assign(f,'gift.inp'); reset(f);
assign(g,'gift.out'); rewrite(g);
read(f,x,y);
for i:=1 to UCLN(x,y) do
begin
if (x mod i=0) and (y mod i =0) then
writeln(g,i,' ',x div i,' ',y div i);
end;
close(f);
close(g);
readln
End.
{-- xem đầy đủ đáp án ở phần xem online hoặc tải về --}
Trên đây là trích đoạn một phần Đề thi chọn HSG cấp trường môn Tin học 11 năm 2019- Trường THPT Liễn Sơn, Vĩnh Phúc . Để xem toàn bộ nội dung các em chọn chức năng xem online hoặc đăng nhập vào trang hoc247.net để tải tài liệu về máy tính.
Chúc các em học tập tốt!