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 đ[r]
Trang 1SỞ GD&ĐT QUẢNG BÌNH KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
ĐỀ THI CHÍNH THỨC NĂM HỌC 2017 - 2018
LỚP 12 - THPT Môn thi: TIN HỌC
SỐ BÁO DANH: (Khóa thi ngày 22 tháng 03 năm 2018)
Thời gian làm bài: 180 phút (không kể thời gian giao đề)
Đề thi gồm 3 trang
Sử dụng ngôn ngữ lập trình Pascal để lập trình giải các bài toán sau:
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)
Yêu cầu: Hãy tính độ cao của các phần tử trong dãy số A
Dữ liệu vào: Ghi trong file văn bản HIGHT.INP có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương N, là số lượng phần tử của dãy số
- Dòng 2: 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
Dữ liệu ra: Ghi ra file văn bản HIGHT.OUT theo cấu trúc như sau:
- Dòng 1: 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
Ví dụ:
5
99 5 32000 334 27
18 5 5 10 9
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 ô vuông 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
Yêu cầu: Với một bản đồ số M x N, hãy xác định có bao nhiêu chiến hạm
Dữ liệu vào: Cho trong file văn bản WARSHIP.INP có cấu trúc như sau:
- Dòng 1: Ghi hai số nguyên M, N là số hàng và số cột của bản đồ (1≤ M,N ≤ 1000)
- M dòng tiếp theo: Mỗi dòng ghi N ký tự 0 hoặc 1
Dữ liệu ra: Ghi ra fie văn bản WARSHIP.OUT theo cấu trúc như sau:
- Dòng 1: Ghi số nguyên p là số chiến hạm đếm được
Trang 2Ví dụ:
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
Một doanh nghiệp nước ngoà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))
Yêu cầu: 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
Dữ liệu vào: Cho trong file văn bản PLAN.INP có cấu trúc như sau:
- Dòng 1: Ghi hai số nguyên N, S; (0 ≤ N, S ≤ 1000)
- Dòng thứ i trong n+1 dòng tiếp theo: 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)
Dữ liệu ra: Ghi ra file văn bản PLAN.OUT theo cấu trúc như sau:
- Dòng 1: Ghi một số nguyên là tổng số tiền lớn nhất thu được
- Dòng 2: 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
Ví dụ:
3 3
2 4 3
5 5 6
6 7 7
8 10 9
16
1 0 2
Giải thích: Có 3 ngày và 3 sản phẩm, lịch thực hiện để được số tiền thu được
lớn nhất là: Sản phẩm thứ 1 gia công 1 ngày, bán được với giá là A(1,1)=5; sản phẩm thứ 2 gia công trong 0 ngày, bán được với giá là A(0,2)=4; 02 ngày còn lại để gia công sản phẩm thứ 3, bán được với giá là A(2,3)=7 Tổng số tiền thu được sau khi bán 3 sản phẩm với 3 ngày gia công là: 5 + 4 + 7 = 16
Trang 3Câu 4 (2.0 điểm): Led ma trận LED.PAS
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 đó Cụ thể, 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
Yêu cầu: 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
Dữ liệu vào: Cho trong file văn bản LED.INP có cấu trúc như sau:
- Dòng 1: Ghi ba số nguyên M, N, S
- Dòng thứ i trong M dòng tiếp theo: 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)
Dữ liệu ra: Ghi ra file văn bản LED.OUT theo cấu trúc như sau:
- Dòng 1: 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
Ví dụ:
2 3 0
0 0 0
0 0 2
0 0 0
0 0 2
2 3
3
Ràng buộc:
- Có 50% số lượng test thỏa mãn điều kiện: M, N ≤ 20 và S ≤ 20;
- Có 50% số lượng test khác thỏa mãn điều kiện: M ≤ 20; N ≤ 50000
và S ≤ 1000000 hoặc M ≤ 50000; N ≤ 20 và S ≤ 1000000
(Chú ý: Các chương trình thực hiện không quá 1 giây đối với tất cả các bộ dữ liệu vào)
==HẾT==