網路上大家都說先預處理,重點是要怎麼預處理才是重點阿 我不會啊~~~
不過在此終於懂了一些

1. 先算出每一個單元格跟他上面的單元格能夠構出幾個矩形,遇到 1 就要變成 0
2. 然後再利用四個方向大枚舉 u,l,d,r 利用右下角的點算出最多能夠與這四個方向以內的單元格構出多少個矩形
所以只要利用剛剛第一步驟算好的點 加上當前最小值,遇到 0 就不要再算了
3. 加上 u,l,d-1,r u,l,d,r-1 的個數,當然 這些已經處理過了 (而這些處理過的點 需要處理的點也都已經處理過了 (DP 概念)),而且因為會有重疊的部分所以必須扣掉 u,l,d-1,r-1