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

Đề+Bài giải TH 9 HSG 2010-2011 tinh Vĩnh Phúc

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 (144.64 KB, 6 trang )

SỞ GD & ĐT VĨNH PHÚC
ĐỀ CHÍNH THỨC
KỲ THI CHỌN HSG LỚP 9 THCS NĂM HỌC 2010-2011
ĐỀ THI MÔN: TIN HỌC
Thời gian làm bài: 150 phút, không kể thời gian giao đề
Tổng quan
TT Tên bài
File
chương trình
File
dữ liệu
File
kết quả
Thời
gian
1 Truy tìm tội phạm BLIMP.PAS BLIMP.INP BLIMP.OUT 1s/test
2 Số bé nhất LEXDIV.PAS LEXDIV.INP LEXDIV.OUT 1s/test
3 Nhà giam PRISON.PAS PRISON.INP PRISON.OUT 1s/test
Lập chương trình giải các bài toán sau:
Bài 1. Truy tìm tội phạm
Tom và Jerry là thành viên của tổ chức mật thám USKOK đang theo dõi sự di chuyển
của một tổ chức tội phạm. Theo một nguồn tin dấu tên cho biết các tên tội phạm thuộc tổ
chức này đang tìm cách chạy chốn khỏi địa phương và hiện đang ở sân bay để làm thủ tục
xuất cảnh.
Cục tình báo CIA gửi cho Tom và Jerry một thông tin rất quan trọng: tên của mỗi tên
tội phạm này đều có chuỗi “FBI”. Bằng mối quan hệ của mình, Tom và Jerry có được một
danh sách gồm N hành khách đang chuẩn bị bay.
Viết chương trình giúp Tom và Jerry giữ lại các tên tội phạm nguy hiểm này.
Dữ liệu vào:
• Dòng 1: Ghi một số nguyên N (1≤ N ≤ 10)
• N dòng tiếp theo, mỗi dòng ghi tên của một hành khách. Tên của hành khách không


quá 15 ký tự bao gồm các chữ cái từ “A” đến “Z”, chữ số từ “0” đến “9” và dấu “-”
Dữ liệu ra:
• Một dòng duy nhất ghi thứ tự của tên tội phạm trong danh sách, nếu không có tên
tội phạm nào trong danh sách thì in ra “GO”
Ví dụ:
Input Output Input Output Input Output
1
N-FBI1
1 4
9A-USKOK
I-INTERPOL
G-MI6
RF-KGB1
GO 5
47-FBI
BOND-007
RF-FBI18
MARICA-13
13A-FBILL
Bài 2. Số bé nhất
Khi làm việc với các số tự nhiên, Tom và Jerry thích sắp xếp chúng theo thứ tự từ điển
giống như so sánh xâu kí tự, chẳng hạn dãy số (1, 8, 9, 10, 11, 100) sẽ được xếp thành (1, 10,
100, 11, 8, 9). Bài toán Tom đặt ra cho Jerry là: cho ba số A, B, K thì số trong đoạn [A;B]
chia hết cho K có thứ tự từ điển nhỏ nhất là số nào?
Hãy giúp Jerry giải bài toán trên.
Trang 1
Dữ liệu vào: Một dòng duy nhất ghi ba số nguyên A, B, K (1≤ A ≤ B ≤ 10
9
, 1≤ K ≤
10

9
). Dữ liệu vào đảm bảo luôn có nghiệm.
Dữ liệu ra: Một dòng duy nhất ghi một số nguyên tìm được.
Ví dụ:
Input Output
96 105 3 102
Giải thích ví dụ: Đoạn [96; 105] có 4 số chia hết cho 3 là 96, 99, 102, 105. Dãy số
trên được xếp theo thứ tự từ điển ở dạng xâu là 102, 105, 96, 99. Vậy đáp án phải tìm là 102.
Bài 3. Nhà giam
Sau khi tìm ra được tên chỉ huy của tổ chức tội phạm, Tom và Jerry được lệnh đưa
chúng về nhà giam đặc biệt của CIA. Nhà giam này có khuôn viên hình chữ nhật, tất cả các
căn phòng của nhà giam đều bằng nhau, có hình lục giác đều, được đánh số tự 0, 1, 2, … theo
hàng ngang từ trái qua phải và từ trên xuống dưới (xem hình vẽ)
Gọi S là kích thước của nhà giam và được hiểu là:
• Tổng số phòng xếp theo chiều từ trên xuống dưới của một cột bất kỳ đúng bằng S;
• Tổng số phòng đồng trục theo hàng tính từ cột ngoài cùng bên trái đến cột cuối
cùng bên phải đúng bằng S.
Ví dụ cho hình dưới đây S = 3.
Theo yêu cầu của CIA, tên chỉ huy phải được giam biệt lập tại phòng thứ N. Nhiệm vụ
tiếp theo của Tom và Jerry là tìm ra số hiệu các phòng liền kề với phòng N để đặt Camera
quan sát.
Viết chương trình giúp Tom và Jerry thực hiện yêu cầu trên.
Dữ liệu
Một dòng duy nhất ghi hai số nguyên S, N (2 ≤ S ≤ 10
9
), dữ liệu đảm bảo luôn có
phòng số hiệu N.
Ví dụ:
Input Output
3 11 6 8 9 13 14

Hết
Cán bộ coi thi không giải thích gì thêm.
Họ và tên thí sinh:……………………………………………Số báo danh:…………………
Trang 2
0
3
6
1
4
2
5
8
1
0
1
3
1
1
9
7
1
2
1
4
Bài 1
Uses Crt;
Const Fi='Blimp.INP';
Fo='Blimp.OUT';
Type MA=Array[1 10] Of String[15];
Var s:MA;

F,G:Text;
i,n,d,k,j:Integer;
Procedure Nhap;
Begin
Assign(F,Fi);Reset(F);
ReadLn(F,n);
For i:=1 To n Do
ReadLn(F,S[i]);
Close(F);
End;
Procedure Xu_ly;
Begin
Assign(G,Fo);ReWrite(G);
d:=0;
For i:=1 To n Do
Begin
k:=0;
For j:=1 To LengTh(S[i]) Do
If (S[i][j] in ['A' 'Z']) Or (S[i][j] in ['0' '9']) Or (S[i][j] in
['-']) Then k:=k+1;
If (k=LengTh(S[i])) And (Pos('FBI',S[i])<>0) Then
Begin
Write(G,i:3);
d:=d+1;
End;
End;
If d=0 Then Write(G,'GO');
Close(G);
End;
BEGIN

Nhap;
Xu_ly;
END.
Trang 3
Bài 2:
Uses Crt;
Const Fi='lexdiv.inp';
Fo='lexdiv.out';
Type MA=Array[1 100] Of String;
Var i,i1,j1,j2,a,b,k,m:Integer;
s,tg:String;
F,G:Text;
c:MA;
Procedure Nhap;
Begin
Assign(F,Fi);Reset(F);
ReadLn(F,A,B,K);
Close(F);
End;
Procedure Xu_ly;
Begin
Assign(G,Fo);ReWrite(G);
m:=0;
For i:=A To B Do
If i Mod k = 0 Then
Begin
m:=m+1;
Str(i,s);
c[m]:=s;
End;

For j1:=1 To m Do
For j2:=j1+1 To m Do
Begin
i1:=1;
While c[j1][i1]=c[j2][i1] Do i1:=i1+1;
If c[j1][i1]>c[j2][i1] Then
Begin
tg:=c[j1];
c[j1]:=c[j2];
c[j2]:=tg;
End;
End;
Write(G,c[1]:5);
Close(G);
End;
BEGIN
Nhap;
Xu_ly;
END.
Trang 4
Bài 3:
Uses Crt;
Const Fi='prison.INP';
Fo='prison.OUT';
Type MA=Array[1 100] Of Integer;
Var A:MA;
F,G:Text;
s,n,i,j1,j,kt,d,m,k:Integer;
Procedure Nhap;
Begin

Assign(F,Fi);Reset(F);
ReadLn(F,S,N);
Close(F);
End;
Procedure Xu_ly;
Begin
If S Mod 2 =0 Then m:=s*(s*2-1)-1
Else m:=s*(s*2-1);
A[1]:=0;
A[2]:=2*s-1;
For j:=3 To s Do
A[j]:=A[j-1]*2-A[j-2];
A[s+1]:=s-1;
A[s+2]:=2*A[s+1]+s;
For j1:=s+3 To 2*s Do
A[j1]:=A[j1-1]*2-A[j1-2];
kt:=0;
For i:=1 To 2*s Do
If n=A[i] Then kt:=kt+1;
If (n<0)Or(n>m)Then Write(G,'Du lieu khong chinh xac')
Else
If (kt=0) Then
Begin
If ((n-2*s+1)>=0)And(n-2*s+1<=m)Then Write(G,n-2*s+1:5);
If (n-s>=0)And(n-s<=m)Then Write(G,n-s:5);
If (n-s+1>=0)And(n-s+1<=m)Then Write(G,n-s+1:5);
If (n+s-1>=0)And(n+s-1<=m)Then Write(G,n+s-1:5);
If (n+s>=0)And(n+s<=m)Then Write(G,n+s:5);
If (n+2*s-1>=0)And(n+2*s-1<=m)Then Write(G,n+2*s-1:5);
End

Else
Begin
d:=0;
k:=1;
While n<>A[k] Do
Begin
k:=k+1;
d:=k;
End;
If k=1 Then Write(G,n+s:5,n+2*s-1:5)
Else
If k=s Then Write(G,n-2*s+1:5,n-s+1:5,n+s:5)
Else
If k=s+1 Then Write(G,n+s-1:5,n+2*s-1:5)
Else
If k=2*s Then Write(G,n-2*s+1:5,n-s:5,n+s-1:5)
Else
If (k>1)and(k<s)Then Write(G,n-2*s+1:5,n-s+1:5,n+s:5,n+2*s-1:5)
Else Write(G,n-2*s+1:5,n-s:5,n+s-1:5,n+2*s-1:5);
End;
End;
BEGIN
Trang 5
Nhap;
Xu_ly;
END.
Trang 6

×