Tải bản đầy đủ (.pdf) (3 trang)

Đề thi HSG Tin học lớp 12 Quảng Bình 2017-2018 - Học Toàn Tập

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 (817.75 KB, 3 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

1/3
<b>SỞ GD&ĐT QUẢNG BÌNH KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH </b>
<b> ĐỀ THI CHÍNH THỨC </b> <b>NĂM HỌC 2017 - 2018 </b>


<b>LỚP 12 - THPT </b>
<b>Môn thi: TIN HỌC </b>


SỐ BÁO DANH: ... (Khóa thi ngày 22 tháng 03 năm 2018)


<i> </i> <i>Thời gian làm bài: 180 phút (không kể thời gian giao đề) </i>
<i><b>Đề thi gồm 3 trang </b></i>
<b>Sử dụng ngơn ngữ lập trình Pascal để lập trình giải các bài toán sau: </b>


<b>Câu 1 (3.0 điểm): Độ cao của dãy số </b> <b>HIGHT.PAS </b>


Ta gọi độ cao của một số nguyên dương K là tổng giá trị các chữ số của K.
Ví dụ: số 442354 có độ cao là 22.


Cho dãy số nguyên dương A gồm N phần tử a1, a2, ..., aN.
(1 ≤ N ≤ 32000, 1 ≤ i ≤ N, 0 < ai ≤ 2x109)


<i><b>Yêu cầu:</b></i> Hãy tính độ cao của các phần tử trong dãy số A.


<i><b>Dữ liệu vào:</b></i> Ghi trong file văn bản HIGHT.INP có cấu trúc như sau:
-<i>Dòng 1:</i> Ghi số nguyên dương N, là số lượng phần tử của dãy số.


-<i>Dòng 2:</i> Ghi N số nguyên dương, số thứ i là giá trị của phần tử ai trong dãy số,


các số được ghi cách nhau ít nhất một dấu cách.


<i><b>Dữ liệu ra: </b></i>Ghi ra file văn bản HIGHT.OUT theo cấu trúc như sau:



-<i>Dòng 1:</i> Ghi N số nguyên dương t1, t2, ..., tN; ti là độ cao của số của ai. Các số


được ghi cách nhau một dấu cách.
<i><b>Ví dụ: </b></i>


HIGHT.INP HIGHT.OUT


5


99 5 32000 334 27


18 5 5 10 9


<b>Câu 2 (3.0 điểm): Chiến hạm </b> <i><b>WARSHIP.PAS </b></i>


Nhằm tự động hóa quan sát các vùng biển, những thơng tin thu thập được sẽ hỗ
trợ cho các kế hoạch tác chiến. Người ta đã lấy ảnh chụp vệ tinh của các vùng biển
sau khi mã hóa thành các bản đồ số để máy tính xử lý gồm các kí tự 0 và 1. Bản đồ số
là một lưới ô vuông gồm M hàng và N cột, mỗi ơ vng chứa một kí tự 0 hoặc 1. Các
kí tự 0 biểu thị cho vùng nước; Một kí tự 1 hoặc nhiều kí tự 1 tạo thành một hình chữ
nhật (có các cạnh song song với các cạnh của bản đồ) biểu thị cho một chiến hạm.
Các chiến hạm hoạt động độc lập, không kết nối với nhau.


<i><b>Yêu cầu:</b></i> Với một bản đồ số M x N, hãy xác định có bao nhiêu chiến hạm.
<i><b>Dữ liệu vào:</b></i> Cho trong file văn bản WARSHIP.INP có cấu trúc như sau:


-<i>Dịng 1: </i>Ghi hai số nguyên M, N là số hàng và số cột của bản đồ (1≤ M,N ≤ 1000).
-<i>M dòng tiếp theo:</i> Mỗi dòng ghi N ký tự 0 hoặc 1.



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

2/3
<b>Ví dụ: </b>


WARSHIP.INP WARSHIP.OUT


5 6


0 0 0 0 0 0
0 1 1 0 0 1
0 0 0 0 0 1
0 1 1 0 0 0
0 0 0 0 1 1


4


<b>Câu 3 (2.0 điểm): Gia công mỹ nghệ </b> <b>PLAN.PAS </b>


Một doanh nghiệp nước ngồi muốn kí kết hợp đồng với một làng nghề truyền
thống ở Quảng Bình. Làng này chuyên gia công đồ thủ công mỹ nghệ tinh xảo. Đơn
hợp đồng được kí kết trong N ngày để gia công S sản phẩm. Theo kinh nghiệm
truyền lại từ lâu đời nếu thực hiện gia công sản phẩm j trong i ngày thì sẽ bán được
với giá tiền là A(i,j), càng tốn nhiều thời gian gia cơng thì sản phẩm càng giá trị và
bán giá càng cao (tức là A(i,j)

A(i+1,j)).


<i><b>Yêu cầu:</b></i> Với thời gian ký kết hợp đồng là N ngày gia công cho S sản phẩm và bảng
kinh nghiệm A. Em hãy giúp làng phân bổ một lịch làm việc sao cho hiệu quả nhất,
tức là khi hết thời gian hợp đồng, tổng tiền thu được sau khi bán S sản phẩm đó là lớn
nhất.


<i><b>Dữ liệu vào:</b></i> Cho trong file văn bản PLAN.INP có cấu trúc như sau:



<i>- Dịng 1:</i> Ghi hai số nguyên N, S; (0 ≤ N, S ≤ 1000)


<i>- Dòng thứ i</i> <i>trong n+1 dòng tiếp theo:</i> Mỗi dòng chứa S số nguyên
A(i,1), A(i,2), … , A(i,S), (i = 0, 1, … , N; j = 1, 2, … , S); (0 ≤ A(i,j) ≤ 1000)


<i><b>Dữ liệu ra:</b></i> Ghi ra file văn bản PLAN.OUT theo cấu trúc như sau:


<i>- Dòng 1:</i> Ghi một số nguyên là tổng số tiền lớn nhất thu được.


<i>- Dòng 2:</i> Ghi dãy S số nguyên, là một cách phân bổ thời gian hợp lý N ngày gia
công tương ứng cho S sản phẩm lần lượt theo thứ tự sản phẩm thứ 1, 2 …đến sản
phẩm thứ S.


<i><b>Ví dụ: </b></i>


PLAN.INP PLAN.OUT


3 3


2 4 3
5 5 6
6 7 7
8 10 9


16
1 0 2


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

3/3



<b>Câu 4 (2.0 điểm): Led ma trận </b> <b>LED.PAS </b>


Trong lĩnh vực quảng cáo, hệ thống đèn led ma trận (led matrix) được sử dụng rất
rộng rãi. Một bảng led được ghép từ rất nhiều đèn led nhỏ, mỗi led là một điểm ảnh
(pixel) để tạo hình ảnh. Để chào mừng ngày thành lập Đoàn 26/3 sắp đến, là một người
đam mê cơng nghệ và lập trình, bạn Hiếu muốn tự mình lắp đặt một bảng led để trang trí
cho trại của lớp mình. Bảng led của bạn gồm M×N đèn led, được bố trí trên một lưới
hình chữ nhật gồm M hàng và N cột. Các hàng của lưới được đánh số từ 1 đến M từ trên
xuống dưới, các cột của lưới được đánh số từ 1 đến N từ trái sang phải. Ô nằm giao giữa
hàng i (i = 1, 2, … , M) và cột j (j = 1, 2, … , N) được gọi là ô (i, j). Mỗi ô chứa đúng
một đèn led, mỗi đèn có 3 trạng thái, trạng thái sáng màu xanh hoặc sáng màu đỏ hoặc
tắt.


Có M cổng (port) để đưa tín hiệu điều khiển M hàng, cổng điều khiển hàng thứ i
(i=1, 2, …, M) được đánh chỉ số là i. Có N cổng để đưa tín hiệu điều khiển N cột, cổng
điều khiển cột thứ j (j =1, 2, …, N) được đánh chỉ số là M + j. Khi một tín hiệu điều khiển
được gửi đến, nếu nó là tín hiệu điều khiển hàng, nó sẽ thay đổi trạng thái tất cả các đèn
trên hàng đó, cịn nếu nó là tín hiệu điều khiển cột, nó sẽ thay đổi trạng thái tất cả các đèn


trên cột đó. <i>Cụ thể</i>, nếu một đèn đang ở trạng thái tắt sẽ chuyển sang trạng thái sáng màu


xanh, còn nếu đang ở trạng thái sáng màu xanh thì chuyển sang trạng thái sáng màu đỏ,
nếu ở trạng thái sáng màu đỏ thì chuyển về trạng thái tắt.


<i><b>Yêu cầu:</b></i> Cho trạng thái ban đầu của M × N đèn và dãy gồm S tín hiệu điều khiển. Em
hãy giúp bạn Hiếu xác định sau khi thực hiện xong dãy tín hiệu điều khiển thì có bao
nhiêu đèn led ở trạng thái tắt.


<i><b>Dữ liệu vào:</b></i> Cho trong file văn bản LED.INP có cấu trúc như sau:



<i>- Dòng 1:</i> Ghi ba số nguyên M, N, S.


<i>-</i> <i>Dòng thứ i trong M dòng tiếp theo:</i> Mỗi dòng chứa N số nguyên C(i,1), C(i,2), … ,


C(i,N), trong đó C(i,j) tương ứng bằng 0 hoặc 1 hoặc 2 nếu đèn ở ô (i,j) tương ứng đang ở
trạng thái tắt hoặc sáng màu xanh hoặc sáng màu đỏ (i = 1, 2, … , M; j = 1, 2, … , N).


<i>-Dòng M+2:</i> Là dòng cuối cùng chứa S số nguyên t1, t2, …, t𝑠 mơ tả dãy gồm S tín


hiệu điều khiển (1 ≤ tk ≤ M + N; k = 1, 2, …, S).


<i><b>Dữ liệu ra:</b></i> Ghi ra file văn bản LED.OUT theo cấu trúc như sau:


<i>- Dòng 1: </i>Ghi một số nguyên là số lượng đèn tắt sau khi thực hiện xong dãy tín


hiệu điều khiển.


<i><b>Ví dụ: </b></i>


LED.INP LED.OUT LED.INP LED.OUT


2 3 0
0 0 0
0 0 2


5 2 3 2


0 0 0
0 0 2
2 3



3


<i>Ràng buộc: </i>


- Có 50% số lượng test thỏa mãn điều kiện:<i> M, N ≤ 20 và S ≤ 20; </i>


- Có 50% số lượng test khác thỏa mãn điều kiện:<i> M ≤ 20; N ≤ 50000 </i>


<i>và S ≤ 1000000 hoặc M ≤ 50000; N ≤ 20 và S ≤ 1000000. </i>


<i> (Chú ý: Các chương trình thực hiện khơng q 1 giây đối với tất cả các bộ dữ liệu vào)</i>


</div>

<!--links-->

×