1. Trang chủ
  2. » Giáo Dục - Đào Tạo

đề thi học sinh giỏi quốc gia môn tin học 12 tỉnh hà tĩnh

4 1K 20

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 65,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

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

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 105 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ụ:

timpassword232432fsdgd45435dsfds

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ụ:

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

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

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ả

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

Trang 4

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:

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 105, vì đề bài đã nêu rõ P có giá trị nhỏ hơn 105:

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:

B[i,k]=Max{B[i−1,k−1],B[i,k−1],B[i+1,k−1]}+ A[i,k]

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

Ngày đăng: 29/07/2015, 08:11

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w