Đề thi chọn HSG cấp trường môn Tin học 11 năm 2019 có đáp án - Trường THPT Liễn Sơn

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 Chúng tôi để tải tài liệu về máy tính. 

Chúc các em học tập tốt! 

Tham khảo thêm

Bình luận

Có Thể Bạn Quan Tâm ?