Đề thi học sinh giỏi lớp 12 THPT tỉnh Đồng Tháp môn Tin học (năm học 2012 - 2013)
SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐỀ CHÍNH THỨC | KỲ THI CHỌN HỌC SINH GIỎI LỚP 12 THPT ĐỀ THI MÔN: TIN HỌC |
Tổng quan đề thi
Bài | Tên file chương trình | Tên file nhập | Tên file kết quả |
Bài 1 | BL1.PAS | BL1.INP | NGUYENTO.OUT CHPHUONG.OUT |
Bài 2 | BL2.PAS | BL2.INP | BL2.OUT |
Bài 3 | BL3.PAS | BL3.INP | BL3.OUT |
Hạn chế kỹ thuật: Thời gian thực hiện chương trình không quá 3 giây
Bài 1: (8,0 điểm) DÃY SỐ
Cho dãy số nguyên dương A gồm N phần tử (0 < N ≤ 100000, 0 < Ai < 100000, i = 1..N).
Yêu cầu 1: Tìm tất cả các số nguyên tố khác nhau là phần tử của dãy A.
Yêu cầu 2: Tìm tất cả các số chính phương khác nhau là phần tử của dãy A. Số chính phương là số có giá trị đúng bằng bình phương của một số tự nhiên nào đó.
Dữ liệu vào: Cho từ file văn bản BL1.INP gồm:
- Dòng đầu ghi số phần tử N của dãy.
- Dòng thứ i trong số N dòng tiếp theo ghi giá trị của phần tử Ai(i = 1..N).
Kết quả:
- Với yêu cầu 1: Ghi vào file văn bản NGUYENTO.OUT giá trị các số nguyên tố tìm được theo thứ tự giảm dần, mỗi số ghi trên một dòng. Nếu dãy A không có phần tử nào là số nguyên tố thì ghi ra số 0.
- Với yêu cầu 2: Ghi vào file văn bản CHPHUONG.OUT giá trị các số chính phương tìm được theo thứ tự giảm dần, mỗi số ghi trên một dòng. Nếu dãy A không có phần tử nào là số chính phương thì ghi ra số 0
Bài 2: (6,0 điểm) ĐÓNG GÓI SẢN PHẨM
Một nhà máy xay xát cần đóng gói gạo vào các loại bao 100kg, 50kg, 20kg, 10kg, 5kg. Với mỗi loại bao chỉ được đóng gói khi đủ số lượng quy định cho loại bao đó. Tuy nhiên công ty sản xuất các loại bao thì cung cấp số lượng bao theo từng đợt với số lượng từng loại khác nhau.
Yêu cầu: Với khối lượng gạo và số lượng bao của từng loại cho trước, hãy tìm một phương án đóng gói sao cho số lượng gạo thừa không được đóng gói (nếu có) là ít nhất.
Dữ liệu vào: Cho từ file văn bản BL2.INP gồm 2 dòng:
- Dòng đầu tiên ghi số lượng gạo N (đơn vị kg) cần phải đóng gói (0 < N < 1000000).
- Dòng thứ hai ghi 5 số lượng tự nhiên cho biết số lượng bao của từng loại theo thứ tự 100kg, 50kg, 20kg, 10kg, 5kg (số lượng bao mỗi loại không vượt qua 200000).
Kết quả: Ghi ra file văn bản BL2.OUT gồm 2 dòng:
- Dòng đầu ghi số gạo thừa không được đóng gói. Nếu không còn thừa thì ghi số 0.
- Dòng thứ hai ghi 5 số nguyên tương ứng là số lượng bao đã sử dụng của từng loại theo thứ tự 100kg, 50kg, 20kg, 10kg, 5kg
Bài 3: (6,0 điểm) XÂU NHỊ PHÂN
Xét các xâu nhị phân độ dài N được thành lập như sau:
- Bắt đầu là xâu gồm N bit 0.
- Xâu nhị phân tiếp theo được tạo thành từ xâu nhị phân trước đó bằng cách tìm bit 0 đầu tiên tính từ phải sang trái đổi thành bit 1 và đổi tất cả các bit bên phải bit vừa thay đổi đó thành bit 0. Ví dụ: xâu tiếp theo của xâu 0100111 là xâu 0101000.
- Lặp lại cho đến khi tất cả N bit đều là bit 1. Ví dụ: Với N = 3, ta có: 000 -> 001 -> 011 -> 100 -> 101 -> 110 -> 111
Sắp xếp các xâu N bit này theo thứ tự từ điển và đánh số thứ tự từ 0 đến hết.
Thứ tự từ điển được tính như sau:
Với hai xâu nhị phân A và B có độ dài N:
- Xâu A được gọi là nhỏ hơn xâu B nếu như bit khác nhau đầu tiên tính từ trái sang phải của xâu a là nhỏ hơn của xâu B.
- Xâu A và xâu B là bằng nhau nếu tất cả các bit của hai xâu tương ứng là như nhau.
Yêu cầu: Cho hai số tự nhiên N và Km(3 ≤ N ≤ 1000, 0 ≤ K ≤ 2N). Hãy tìm xâu nhị phân độ dài N có thứ tự từ điển là K.
Dữ liệu vào: Cho từ file văn bản BL3.INP gồm hai dòng:
- Dòng đầu ghi số N
- Dòng thứ hai ghi số K
Kết quả: Ghi ra file văn bản BL3.OUT gồm dãy N bit tương ứng là xâu nhị phân độ dài N có thứ tự từ điển là K