最大正方形
题目描述:
在n*n(n<=1000)的矩阵中, 有几个点不能选, 找出当中边长最大的正方形
思路:
设d(i,j)是以点(i,j)为右下角的最大正方形边长
则有d(i,j) = min{d(i-1,j),d(i,j-1),d(i-1,j-1))+1
即只有当上面, 左边, 左上角都能构成边长为k的正方形时, 点(i,j)才能形成边长为k+1的正方形
代码:
1 | nclude <iostream> |
最大正方形
在n*n(n<=1000)的矩阵中, 有几个点不能选, 找出当中边长最大的正方形
设d(i,j)是以点(i,j)为右下角的最大正方形边长
则有d(i,j) = min{d(i-1,j),d(i,j-1),d(i-1,j-1))+1
即只有当上面, 左边, 左上角都能构成边长为k的正方形时, 点(i,j)才能形成边长为k+1的正方形
1 | nclude <iostream> |