Defect-freeSquares

[ABC311E] Defect-free Squares

考虑令 \(f[i][j]\) 表示以 \((i,j)\) 为右下角的最大正方形的边长,以其为右下角的正方形恰好为 \(f[i][j]\),答案就是 \(\sum f[i][j]\)

然后考虑转移。对于一个格子,如果要扩充正方形,必定要往左上角、左、上三个方向扩张,且取决于最小者,即 \(f[i][j]=\min(f[i-1][j],f[i][j-1],f[i-1][j-1])+1\)

另一个做法是枚举左上角,二分即可,带一只 \(\log\),大约为 \(10^8\),可过。

AC

posted @ 2023-07-23 10:57  wscqwq  阅读(12)  评论(0编辑  收藏  举报