Editorial for Bảng đẹp


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.

Subtask 1

Ta duyệt qua mỗi bộ chỉ số \((x,y,u,v)\), tượng trưng cho một hình chữ nhật con trong \(O((m\times n)^2)\). Với mỗi HCN con, ta lại duyệt mọi \((i,j)\)\(x \le i \le u\)\(y \le j \le v\) để tính tổng. Độ phức tạp \(O((m\times n)^3)\)

Subtask 2

Vẫn duyệt qua mỗi bộ chỉ số \((x,y,u,v)\) trong \(O((m\times n)^2)\). Tổng một bảng con có thể lấy trong \(O(1)\) bằng tổng tiền tố hai chiều.
Độ phức tạp \(O((m\times n)^2)\)

Subtask 3

Ta duyệt qua các cặp chỉ số \((x,u)\). Với mỗi \((x,u)\), ta cần đếm tất cả bộ \((y,v)\) thỏa mãn \((x,y,u,v)\) là một bảng đẹp trong ĐPT \(O(n)\) hoặc tốt hơn.

Với mỗi \(i : 1 \le i \le n\), đặt \(b(i) = \sum a_{r,i}\) với \(r\) chạy từ \(x\) tới \(u\). Bài toán đưa về : Đếm số đoạn con \([l,r]\) trong \(b\) có tổng chia hết cho 9. Ta giải bài toán này trong \(O(n)\). Độ phức tạp tổng quát \(O(m^2 \times n)\)



Comments

There are no comments at the moment.