luogu1387 最大正方形 子矩陣問題

2021-09-24 10:25:48 字數 591 閱讀 6111

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...