最大正方形问题的转移方程:f[i][j]=min(f[i-1][j-1],f[i-1][j],f[i][j-1])+1.
那么是什么意思呢?
f[i][j]表示以(i,j)为右下角的最大正方形的边长。
那么f[i][j-1]就保证了往上最多能扩展的边长。f[i-1][j]就保证了往左边能扩展的最大边长。
f[i-1][j-1]就保证了对角线的最大长度。三者去min,然后+1,就是f[i][j]
这个思想可以引申到很多类似的求最大正方形的题目(一般的都是这个思想)
例如:洛谷1736创意吃鱼法
例题做法:
定义一个a[i][j]表示左边连续的0的个数+1,c[i][j]表示右边连续的个数+1,b[i][j]表示上边连续的0的个数+1.
那么对于一个(i,j)它有两种可能:
1.右下角坐标。
2.左下角坐标
这样就很容易的DP了