Editorial for MATRIXA
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Nguồn: Free Contest
Subtask 1
Ta duyệt từng bộ cặp điểm ,
là góc trái trên và phải dưới của hình chữ nhật đang xét. Sau đó duyệt tính tổng từng ô trên viền hình chữ nhật đang xét và cập nhật kết quả.
Độ phức tạp:
Subtask 2
Vẫn tư tưởng như subtask nhưng ta lập thêm các mảng đếm (prefix sum). Cụ thể:
Khi đó từng bộ cặp điểm và
là góc trái trên và phải dưới của hình chữ nhật đang xét thì tổng của viền hình chữ nhật được xác định theo công thức :
Độ phức tạp:
Subtask 3
Ta có thể biến đổi công thức tính ở trên như sau:
Như vậy nếu ta cố định thì với mỗi
ta cần tìm
mà
sao cho
lớn nhất.
Ta dễ dàng có thể làm được trong
với mỗi bộ
(có thể sử dụng prefix max).
Độ phức tạp:
Comments