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

Đề thi chọn học sinh giỏi thi Quốc gia lớp 12 tỉnh Hà Tĩnh năm 2012 - 2013 (Vòng 2) môn tin

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 (205.96 KB, 4 trang )

Trang 1 /
3
SỞ GIÁO DỤC VÀ ĐÀO TẠO
HÀ TĨNH
(Đề thi có 02 trang, gồm 03 bài)
KỲ THI CHỌN ĐỘI TUYỂN DỰ THI
HỌC SINH GIỎI QUỐC GIA LỚP 12 THPT
NĂM HỌC 2012-2013
MÔN THI: TIN HỌC - Vòng 2
Thời gian: 180 phút (không kể thời gian giao đề)
Ngày thi thứ hai: 22/09/2012
TỔNG QUAN NGÀY THI THỨ HAI
Tên
bài
File chương trình File dữ liệu vào File kết quả
Bài 1 Từ chuẩn TUCHUAN.PAS TUCHUAN.INP TUCHUAN.OUT
Bài 2 Tìm mật khẩu PASSWROD.PAS PASSWROD.INP PASSWROD.OUT
Bài 3 Quà Tết Trung thu TIMQUA.PAS TIMQUA.INP TIMQUA.OUT
Hãy sử dụng ngôn ngữ lập trình pascal hoặc free pascal lập trình giải các bái toán sau:
Bài 1. (6 điểm) Từ chuẩn
Một từ loại M là một dãy các chữ số, mỗi chữ số nằm trong khoảng từ 1 đến M. Số lượng các
chữ số có mặt trong một từ được gọi là chiều dài của từ đó. Từ loại M được gọi là từ chuẩn nếu
nó không chứa hai khúc (từ con) liền nhau mà giống nhau.
Ví dụ:
12131231 là từ chuẩn loại 3, chiều dài 8.
12132131 không phải là từ chuẩn vì nó chứa liên tiếp hai từ con giống nhau là 213.
Tương tự, 12332 không phải là từ chuẩn vì chứa liên tiếp hai từ con giống nhau là 3.
Yêu cầu: Với mỗi giá trị N và M cho trước, tìm và ghi vào tệp văn bản tên TUCHUAN.OUT
một từ chuẩn loại M có chiều dài N.
Dữ liệu: Vào từ file văn bản TUCHUAN.INP gồm 2 số nguyên dương N và M (M < N, 1 ≤ N
≤ 10000) được ghi trên một dòng, mỗi số cách nhau ít nhất là một ký tự trống.


Kết quả: Ghi ra file văn bản TUCHUAN.OUT một dòng chứa một từ chuẩn.
Ví dụ:
TUCHUAN.INP
TUCHUAN.OUT
15 3 121312313231232
Bài 2. (7 điểm) Tìm mật khẩu
Việc bảo vệ máy tính của mình để hạn chế người khác thâm nhập vào là một vấn đề đặt ra cho
mọi nguời sử dụng máy tính. Để tăng tính an toàn trong lưu trữ, một nguời đã quyết định dấu
mật khẩu truy cập máy tính của mình vào một xâu T với một quy ước sao cho khi cần anh ta
có thể lấy lại đuợc mật khẩu từ T như sau:
Là một người yêu thích số học anh ta thường chọn mật khẩu P là một số nguyên tố và đem dấu
vào một xâu ký tự T sao cho P chính là số nguyên tố có giá trị lớn nhất trong số các số nguyên
ĐỀ THI CHÍNH THỨC
Trang 2 /
3
tố tạo được từ các xâu con của T (xâu con của một xâu ký tự T là một chuỗi liên tiếp các ký tự
trong T).
Ví dụ: xâu T= “timpassword232432fsdgd45435dsfdsf” chứa mật khẩu là 43 vì T chứa các xâu
con ứng với các số nguyên tố 2, 3, 23, 43, và 5.
Yêu cầu: Cho một xâu ký tự T chiều dài không quá 250 ký tự. Tìm mật khẩu P đã dấu trong
xâu T biết P có giá trị nhỏ hơn 10
5
. Dữ liệu cho đảm bảo T chứa ít nhất 1 số nguyên tố.
Dữ liệu: Vào từ file văn bản PASSWORD.INP gồm 1 dòng duy nhất là xâu T.
Kết quả: Ghi ra file văn bản PASSWORD.OUT chứa số P tìm được.
Ví dụ:
PASSWORD.INP
PASSWORD.OUT
timpassword232432fsdgd45435dsfds
f

43
Bài 3. (7 điểm) Quà Tết Trung thu
Để vui Tết Trung thu cho các cháu ban tổ chức thành phố X quyết định phát quà cho mỗi cháu
bằng cách tổ chức một trò chơi trên lưới ô vuông như sau:
Vẽ một hình chữ nhật kích thước M x N ô vuông, Các dòng được đánh số từ 1 đến M, các cột
được đánh số từ 1 đến N (các số được đánh từ trên xuống dưới và từ trái sang phải). mỗi ô nằm
trên giao của dòng i và cột j được gọi là ô (i,j) ghi một số nguyên dương A[i,j], (1 ≤ i ≤ M, 1 ≤
j ≤ N) chính là số món quà trên ô đó. Có thể di chuyển từ một ô sang ô thuộc cột bên phải cùng
dòng hoặc chênh lệch một dòng.
Yêu cầu: Tìm cách giúp các cháu di chuyển từ một ô nào đó của cột bên trái (cột xuất phát)
đến một ô nào đó thuộc cột N (cột đích) sao cho tổng các số của ô đi qua là lớn nhất vì đó
chính là tổng số món quà mà các cháu được nhận.
Dữ liệu: Vào từ file văn bản TIMQUA.INP dòng đầu tiên là 2 số nguyên dương M, N (M, N ≤ 100).
M dòng tiếp theo mỗi dòng N số nguyên A[i,j] (0 ≤ A[i,j] ≤ 50) của hình chữ nhật.
Kết quả: Ghi ra file văn bản TIMQUA.OUT gồm 2 dòng:
- Dòng thứ nhất ghi tổng các số của các ô đi qua.
- Dòng thứ hai ghi N số là chỉ số dòng các ô đi qua từ cột 1 đến cột N.
Ví dụ:
Hết
• Thí sinh không được sử dụng tài liệu.
• Cán bộ coi thi không giải thích gì thêm.
TIMQUA.INP TIMQUA.OUT
3 5
7 3 8 1 5
8 8 3 12 1
6 15 10 5 2
50
2 3 3 2 1
Trang 3 /
3

Họ và tên thí sinh…………………………………………… Số báo danh……………………
SỞ GIÁO DỤC VÀ ĐÀO TẠO
HÀ TĨNH
KỲ THI CHỌN ĐỘI TUYỂN DỰ THI
HỌC SINH GIỎI QUỐC GIA LỚP 12 THPT
NĂM HỌC 2012-2013
MÔN THI: TIN HỌC - Vòng 2
HƯỚNG DẪN CHẤM VÒNG 2
Tên
bài
File chương trình File dữ liệu vào File kết quả
Bài 1
Từ chuẩn
TUCHUAN.PAS
TUCHUAN.INP
TUCHUAN.OUT
Bài 2
Tìm mật khẩu
PASSWROD.PA
PASSWROD.IN
PASSWROD.OU
Bài 3
Quà Tết Trung thu
TIMQUA.PAS
TIMQUA.INP
TIMQUA.OUT
Tất cả các bài đều chấm bằng bộ test, mỗi bộ test đúng được một điểm. Nếu không chạy được chương
trình thì căn cứ vào bài làm của học sinh để cho điểm nhưng tối đa không quá 2 điểm trên bài.
- Bài 1: 6 test 6 điểm.
- Bài 2: 7 test 7 điểm.

- Bài 3: 7 test 7 điểm.
Hướng dẫn chương trình tham khảo
Bài 1. (6 điểm) Từ chuẩn
Ta dùng mảng v[1 n] để lưu từ cần tìm. Tại mỗi bước i ta xác định giá trị v[i] trong khoảng 1 m
sao cho v[1 i] là từ chuẩn.
Điều kiện P: v[1 i] là từ chuẩn.
Điều kiện Q: Dừng thuật toán theo một trong hai tình huống sau đây:
 nếu i = n thì bài toán có nghiệm v[1 n].
 nếu i = 0 thì bài toán vô nghiệm.
TimTu1: Tìm một nghiệm.
Hàm Tim hoạt động như sau: duyệt các giá trị tại vị trí v[i] của từ v[1 i] kể từ v[i] + 1 đến m
sao cho v[1 i] là từ chuẩn.
Tim = true nếu tồn tại một giá trị v[i] như vậy. Ngược lại, nếu với mọi v[i] = v[i] + 1 m từ
v[1 i] đều không chuẩn thì Tim = false.
Để kiểm tra tính chuẩn của từ v[1 i], ta lưu ý rằng từ v[1 i-1] đã chuẩn (tính chất P), do đó chỉ cần
khảo sát các cặp từ có chứa v[i], cụ thể là khảo sát các cặp từ có chiều dài k đứng cuối từ v. Đó là các
cặp từ v[(i–k–k+1) (i–k)] và v[i–k+1 i] với k = 1 (i div 2). Nếu với mọi k như vậy hai từ đều khác
nhau thì Chuan=true. Ngược lại, Chuan = false.
Hàm Bang(i,k) kiểm tra xem hai từ kề nhau chiều dài k tính từ i trở về trước có bằng nhau hay
không.
Hai từ được xem là khác nhau nếu chúng khác nhau tại một vị trí nào đó.
Bài 2. (7 điểm) Tìm mật khẩu
Ta duyệt qua tất cả các xâu con của xâu T mà có thể tạo thành một số và kiểm tra số đó có phải số
nguyên tố hay không.
Để duyệt qua các xâu con, ta duyệt qua vị trí đầu:
Trang 4 /
3
for i:=1 to length(t) do {i là vị trí đầu của xâu con}
Với mỗi vị trí đầu i, ta duyệt qua vị trí cuối của xâu con:
j:=i;

while (j<=length(t)) do
begin

inc(j);
end;
Có hai điều kiện để ta dừng quá trình duyệt một xâu con với vị trí đầu là i:
• Gặp một ký tự không phải chữ số:
if (t[j]<'1') or (t[j]>'9') then break;
• Số tạo thành lớn hơn hoặc bằng 10
5
, vì đề bài đã nêu rõ P có giá trị nhỏ hơn 10
5
:
if v>=100000 then break;
Khi đọc được một chữ số mới, ta nhân số hiện tại với 10 rồi cộng thêm chữ số mới:
v:=v*10+ord(t[j])-ord('0');
Nếu số thu được là số nguyên tố và lớn hơn kết quả tốt nhất tìm được thì cập nhật kết quả:
if nguyento(v) then
if (v>kq) then kq:=v;
Bài 3. (7 điểm) Quà Tết Trung thu
Giả sử các số cho trong mảng A[1 M,1 N]. Dùng mảng B[1 M,1 N] để xây dựng nhãn cho từng
ô theo công thức truy hồi. F[i,j] có giá trị bằng tổng các số trên các ô đi qua theo con đường tốt nhất từ
một ô thích hợp thuộc cột 1 đến ô (i,j) thuộc dòng i cột j.
Nhãn của các ô thuộc cột 1 bằng chính giá trị các ô đó. Các ô còn lại, lần lượt từ cột 2 đến cột n
được xây dựng theo công thức truy hồi sau:

],[]}1,1[],1,[],1,1[{],[ kiAkiBkiBkiBMaxkiB +−+−−−=
Ngoài ra, dùng mảng hai chiều T[1 M,1 N] để ghi lại chỉ số dòng của ô thuộc cột j-1 đi tới ô (i,j)
và mảng một chiều KQ[1 N] để ghi lại chỉ số dòng của các ô đi qua từ cột 1 đến cột n trong phương
án tối ưu.

Hoặc sau khi tạo ra mảng B, ta tìm phần tử Max trên cột N, từ phần tử này truy vết về những phần
tử thuộc dòng N-1, N-2,… về đến phần tử thuộc cột xuất phát (cột 1).
Cũng lưu ý rằng có thể không cần dùng mảng B[1 M,1 N] bằng cách ghi giá trị của B[1 M,1
N] đè dần lên mảng A[1 M,1 N] bắt đầu từ cột 2 đến cột N.

×