n*m的棋盤,每個格仔有乙個0/1的數值;
求乙個最大的正方形子矩陣,要求矩陣內都是1;
輸出這個最大子矩陣的邊長;
如果a[i][j]的值是0,f[i][j]不存在子矩陣;
如果a[i][j]的值是1,f[i][j]的值肯定與:左邊,上邊,左上,這三個格仔的值有關;
如上圖,灰色和藍色格仔都是已知的,則橙色格仔的值,只受到藍色格仔的影響;
因為橙色格仔所在的子矩陣,需要同時包涵三個藍色的格仔,所以三個藍色格仔中的最小值+1,就是橙色格仔的f值;
思路 思路1參考**
//luogu1387:最大正方形
#includeusing namespace std;
int a[110][110];
int f[110][110];
int n,m,ans;
int main()
} }printf("%d",ans);
return 0;
}
luogu1387 最大正方形
題目描述 在乙個n m的只包含0和1的矩陣裡找出乙個不包含0的最大正方形,輸出邊長。輸入輸入檔案第一行為兩個整數n,m 1 n,m 100 接下來n行,每行m個數字,用空格隔開,0或1.輸出乙個整數,最大正方形的邊長 樣例輸入 4 4 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 ...
洛谷1387 最大正方形
在乙個n m的只包含0和1的矩陣裡找出乙個不包含0的最大正方形,輸出邊長。輸入格式 輸入檔案第一行為兩個整數n,m 1 n,m 100 接下來n行,每行m個數字,用空格隔開,0或1.乙個整數,最大正方形的邊長 輸入樣例 1 4 4 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 輸出...
P1387 最大正方形
法1 矩陣字首和 n 3 列舉點i,j 和邊長o,如果右下角與左下角之間的數是完全平方數,既是正方形。include include include include include include include include define ll long long using namespace...