ĐỀ ÔN TẬP OLYMPIC 3042017 ĐỀ 03 Câu 1. Diệt quái thú The Predator là quái vật gây ám ảnh kinh hoàng cho người xem trong bộ phim Quái thú vô hình về khả năng săn người. Quái vật sở hữu nhiều khả năng phi thường như khả năng tàng hình nên con người rất khó tiêu diệt chúng. Lấy cảm hứng từ bộ phim, An xây dựng trò chơi Diệt quái thú như sau: Trong màn hình kích thước mxn được chia thành lưới ô vuông, mỗi ô có một quái thú và trên đầu nó thể hiện một số nguyên là mức độ ngụy trang của nó. Người chơi sẽ dùng súng laser để tiêu diệt với nguyên tắc: nếu bắn vào quái thú nào thì nó sẽ chết và tất cả những con khác có cùng mức ngụy trang sẽ chết theo. Mỗi lần chơi được bắn tối đa
Trang 1ĐỀ ÔN TẬP OLYMPIC 30/4/2017
ĐỀ 03 Câu 1 Diệt quái thú
The Predator là quái vật gây ám ảnh kinh hoàng cho người xem trong bộ phim Quái thú vô hình về khả năng săn người Quái vật sở hữu nhiều khả năng phi thường như khả năng tàng
hình nên con người rất khó tiêu diệt chúng Lấy cảm hứng từ bộ phim, An xây dựng trò chơi
Diệt quái thú như sau: Trong màn hình kích thước mxn được chia thành lưới ô vuông, mỗi ô
có một quái thú và trên đầu nó thể hiện một số nguyên là mức độ ngụy trang của nó Người chơi sẽ dùng súng laser để tiêu diệt với nguyên tắc: nếu bắn vào quái thú nào thì nó sẽ chết và tất cả những con khác có cùng mức ngụy trang sẽ chết theo Mỗi lần chơi được bắn tối đa 𝑘 lần
và tiêu diệt càng nhiều càng tốt
Ví dụ:
Màn hình bên là màn chơi có kích thước
3𝑥4, 𝑘 = 2 (2 lần bắn) thì An có thể bắn
như sau:
- Bắn vào quái thú có mức 150 và 300 sẽ
có 8 con chết
- Bắn vào quái thú có mức 150 và 200 sẽ
có 10 con chết
Yêu cầu: Hãy giúp An tìm cách bắn không quá K lần mà có thể giết được nhiều quái thú nhất
Dữ liệu vào: Từ tệp văn bản ‘PREDATOR.INP’ gồm
Dòng 1: Ghi 3 số nguyên dương 𝑚, 𝑛, 𝑘 (𝑚 ≤ 300, 𝑛 ≤ 300, 𝑘 ≤ 𝑚 ∗ 𝑛)
M dòng tiếp theo, mỗi dòng ghi N số nguyên dương 𝑎[𝑖, 𝑗] là mức độ ngụy trang của quái thú tại ô (i,j), 𝑎[𝑖, 𝑗] < 100000
Kết quả: Ghi ra tệp văn bản ‘PREDATOR.OUT’ số lượng quái thú chết nhiều nhất
3 6 2
1 2 1 3 1 1
2 1 4 1 4 3
1 2 1 4 1 1
13
Subtask #1 60% số điểm của câu với 𝑚 < 100; 𝑛 < 100; 𝑎[𝑖, 𝑗] < 300
Subtask#2 40% số điểm của câu với 𝑚 ≤ 300 ; 𝑛 ≤ 300; 𝑎[𝑖, 𝑗] < 100000
Trang 2Câu 2 Tô màu
Hoa vẽ một hình vuông có kích thước 𝑁 𝑥 𝑁 và tô các ô bằng màu trắng xám Sau đó cô đánh
số các dòng và cột từ 1 đến 𝑁 Ô trái dưới có tọa độ (1, 1) và được tô màu xám Các đường chéo kiểu 1 và 2 cũng được đánh số từ 1 đến 2𝑁 – 1, giống như trong hình vẽ ( với 𝑁 = 4)
Đánh số dòng và cột Đường chéo kiểu 1 Đường chéo kiểu 2
Để thử trí thông minh của Hoa, Hùng đã làm như sau: Với 4 nét vẽ, anh đã tô màu đen cho tất
cả các ô trên 1 dòng, 1 cột và 1 đường chéo loại 1 và 1 đường chéo loại 2 Sau đó yêu cầu Hòa
tô lại để hình vuông trở về ban đầu
Yêu cầu: Hãy giúp Hoa tính tổng số ô cần được tô lại và có bao nhiêu trong số chúng cần sơn
màu trắng và xám
Dữ liệu vào: Từ file văn bản FILL.INP
- Dòng 1: Chứa số nguyên 𝑁 (1 ≤ 𝑁 ≤ 107), là kích thước của hình vuông
- Dòng 2: Chứa 4 số nguyên mô tả dòng, cột, đường chéo loại 1, đường chéo loại 2 mà Hùng đã tô màu đen
Kết quả: Ghi ra file văn bản FILL.OUT
- Dòng 1: Ghi tổng số ô cần được tô lại
- Dòng 2: Ghi 2 số nguyên là số ô cần được tô màu xám và số ô cần được tô màu trắng
Ví dụ:
4
1 1 4 4
12
6 6
Trang 3Câu 3 Đường đi đến số 0
Mỗi một số nguyên dương đều có thể biểu diễn dưới dạng tích của 2 số nguyên dương X,
Y sao cho X ≤ Y Nếu như trong phân tích này ta thay X bởi X-1, còn Y bởi Y+1 thì sau khi
tính tích của chúng ta thu được hoặc là một số nguyên dương mới hoặc là số 0
Ví Dụ: Số 12 có 3 cách phân tích 1*12, 3*4, 2*6
Cách phân tích thứ nhất cho ta tích mới là 0: (1-1)*(12+1)=0
Cách phân tích thứ hai cho ta tích mới 10: (3-1)* (4+1)=10
Cách phân tích thứ ba cho ta tích mới 7: (2-1)*(6+1)=7
Nếu như kết quả là khác không ta lại lặp lại thủ tục này đối với số thu được Rõ ràng áp
dụng liên tiếp thủ tục trên, cuối cùng ta sẽ đến được số 0, không phụ thuộc vào việc ta chọn
cách phân tích nào để tiếp tục
Yêu cầu: Cho trước số nguyên dương N, hãy đưa ra tất cả các số nguyên dương khác nhau
có thể gặp trong việc áp dụng thủ tục đã mô tả đối với N
Kết quả: Ghi ra file ZEROPATH.OUT có cấu trúc như sau:
Dòng 1: Ghi số nguyên K là số lượng số tìm được
Dòng 2: Ghi K số tìm được theo thứ tự tăng dần bắt đầu từ số 0
Lưu ý: Có thể có số xuất hiện trên nhiều đường biến đổi khác nhau, nhưng nó chỉ được
tính một lần trong kết quả
Ví Dụ:
0 3 4 6 7 10