Đề thi học sinh giỏi tỉnh Long An môn Tin học năm 2013 có đáp án










Đề thi học sinh giỏi tỉnh Long An môn Tin học năm 2013 có đáp án
(Lời giải ở phía dưới)


Bài 1: SNT rút gọn của 1 số tự nhiên n là tổng các ước nguyên tố của n.
            VD: n=252=2.2.3.3.7 thì SNT rút gọn của n là 2+3+7=12.
a)     Nhập số nguyên n từ bàn phím. Tìm SNT rút gọn của n (1<n<10^6)
b)    Nhập 2 số nguyên a, b không quá 10000 (a<b). In ra trong đoạn từ a->b các số có cùng SNT rút gọn với n và số lượng các số tìm được.
Ví dụ: 
Nhap n: 252
So nguyen to rut gon  cua n: 12
Nhap a, b: 1  200
Cac so co cung so nguyen to rut gon voi n:
35  42  84  126  168   175
Co 6 so
Bài 2: Cho xâu kí tự S bao gồm toàn kí tự a và b, không quá 255 kí tự. Dãy con đúng của xâu S là 1 dãy con liên tục bất kì của S bao gồm các kí tự giống nhau. Dãy con đúng bậc 1 của xâu S là 1 dãy con liên tục bất kì của S bao gồm các kí tự giống nhau nhưng được thêm 1 kí tự khác. TH đặc biệt: S chỉ có 1 loại kí tự thì dãy con đúng cũng chính là dãy con đúng bậc 1.
a)     Tính độ dài lớn nhất của dãy con đúng của S.
b)    Tính độ dài lớn nhất của dãy con đúng bậc 1 của S.
Ví dụ:
‘aaabaaabbaaaaa’
Độ dài lớn nhất của dãy con đúng: 5           (‘aaabaaabbaaaaa’)

Độ dài lớn nhất của dãy con đúng bậc 1: 7     (‘aaabaaabbaaaaa’)

Bài 3: Cho trước tập tin văn bản INPUT.INP gồm nhiều dòng (không quá 1000 dòng), mỗi dòng chứa một chuỗi ký tự (gồm các chữ cái từ ‘A’ đến ‘Z’ viết dính liền với nhau), mỗi chuỗi dài không quá 255 ký tự. Trong tập tin này có duy nhất một chuỗi xuất hiện đúng một lần, các chuỗi còn lại đều xuất hiện đúng k lần. (Số k không cho trước, nhưng biết rằng k là một số chẵn và k≠0).
Ví dụ: 

INPUT.INP
OUTPUT.OUT
ABCD
EFGHIJK
TINHOCTRE
ABCD
EFGHIJK
TINHOCTRE








Lời Giải
(Tự biên soạn)


Bài 1: SNT rút gọn của 1 số tự nhiên n là tổng các ước nguyên tố của n.
            VD: n=252=2.2.3.3.7 thì SNT rút gọn của n là 2+3+7=12.
a)      Nhập số nguyên n từ bàn phím. Tìm SNT rút gọn của n (1<n<10^6)
b)      Nhập 2 số nguyên a, b không quá 10000 (a<b). In ra trong đoạn từ a->b các số có cùng SNT rút gọn với n và số lượng các số tìm được.
program SNTrutgon;
uses crt;
var a,b,d,m,n:longint;
    c:array[1..10000]of longint;
function ktnt(x:longint):boolean;
var i,j:longint;
begin
     ktnt:=false;
     j:=0;
     for i:=2 to x div 2 do
       if (x mod i=0) then j:=j+1;
     if (j=0) then ktnt:=true;
end;
function sntrg(y:longint):longint;
var z:longint;
begin
     sntrg:=0;
     if (ktnt(y)) then sntrg:=y
     else
       for z:=2 to y div 2 do
         if ((y mod z=0)and(ktnt(z))) then sntrg:=sntrg+z;
end;
begin
     clrscr;
     writeln('a)');
     write('   Nhap n= ');
     readln(n);
     writeln('   So nguyen to rut gon cua ',n,' la ',sntrg(n));
     writeln('b)');
     write('   Nhap a= ');
     readln(a);
     write('   Nhap b (b>a): ');
     readln(b);
     d:=0;
     for m:=a to b do
       if ((m<>n)or(m=n)) then
         if (sntrg(m)=sntrg(n)) then
           begin
             d:=d+1;
             c[d]:=m;
           end;
     if (d=0) then write('   Trong doan tu ',a,' den ',b,' khong co so nguyen nao co cung so nguyen to rut gon voi ',n)
     else
       begin
         writeln('   Co tat ca ',d,' so co cung so nguyen to rut gon voi ',n,' la');
         write('     ');
         for m:=1 to d do write(c[m],'   ');
       end;
     readln;
end.
Bài 2: Cho xâu kí tự S bao gồm toàn kí tự a và b, không quá 255 kí tự. Dãy con đúng của xâu S là 1 dãy con liên tục bất kì của S bao gồm các kí tự giống nhau. Dãy con đúng bậc 1 của xâu S là 1 dãy con liên tục bất kì của S bao gồm các kí tự giống nhau nhưng được thêm 1 kí tự khác. TH đặc biệt: S chỉ có 1 loại kí tự thì dãy con đúng cũng chính là dãy con đúng bậc 1.
a)      Tính độ dài lớn nhất của dãy con đúng của S.
b)      Tính độ dài lớn nhất của dãy con đúng bậc 1 của S.
program daycon;
uses crt;
var i,j,k,d1,d2,max1,max2:byte;
    s:string;
begin
     clrscr;
     write('Nhap xau: ');
     readln(s);
     max1:=1;
     for i:=1 to length(s)-1 do
       begin
         if (s[i]=s[i+1]) then
           begin
             j:=i-1;
             repeat
                   j:=j+1;
             until ((s[i]<>s[j])or(j>length(s)));
           end;
         if (j-i>max1) then max1:=j-i;
       end;
     writeln('Do dai lon nhat cua day con dung cua S la ',max1);
     max2:=2;
     for i:=1 to length(s)-1 do
       begin
         j:=i;
         repeat
               j:=j+1;
               d1:=0;
               d2:=0;
               for k:=i to j do
                 if (s[k]='a') then d1:=d1+1
                 else d2:=d2+1;
         until (((d1>1)and(d2>1))or(j>length(s)));
         if(j-i>max2) then max2:=j-i;
       end;
     writeln('Do dai lon nhat cua day con dung bac 1 cua S la ',max2);
     readln;
end.
Bài 3: Cho trước tập tin văn bản INPUT.INP gồm nhiều dòng (không quá 1000 dòng), mỗi dòng chứa một chuỗi ký tự (gồm các chữ cái từ ‘A’ đến ‘Z’ viết dính liền với nhau), mỗi chuỗi dài không quá 255 ký tự. Trong tập tin này có duy nhất một chuỗi xuất hiện đúng một lần, các chuỗi còn lại đều xuất hiện đúng k lần. (Số k không cho trước, nhưng biết rằng k là một số chẵn và k≠0).
Yêu cầu:
Viết chương trình đọc tập tin INPUT.INP xử lý và tìm chuỗi duy nhất đó, ghi kết quả tìm được vào tập tin văn bản OUTPUT.OUT.
Kết quả: Tập tin OUTPUT.OUT có một dòng là chuỗi ký tự tìm được theo yêu cầu.
program chuoi;
uses crt;
var f,g:text;
    i,j,n:integer;
    a:array[1..1000] of string;
    d:array[1..1000] of integer;
    kt:array[1..1000]of boolean;
begin
     assign(f,'INPUT.INP');
     reset(f);
     assign(g,'OUTPUT.OUT');
     rewrite(g);
     n:=0;
     repeat
           n:=n+1;
           readln(f,a[n]);
           kt[n]:=true;
           d[n]:=1;
     until (a[n]='');
     for i:=1 to n-1 do
       if (kt[i]) then
         begin
           for j:=i+1 to n do
             if (a[j]=a[i]) then
               begin
                 kt[i]:=false;
                 kt[j]:=false;
                 d[i]:=d[i]+1;
                 d[j]:=d[j]+1;
               end;
           if(d[i]=1) then write(g,a[i]);
         end;
     close(f);
     close(g);

end.


#bloglaptrinhcoban.blogsot.com

Comments

Post a Comment

Popular Posts