最大正方形子矩陣

2022-02-26 15:43:00 字數 959 閱讀 7413

【題目描述】

在乙個01矩陣中,包含有很多的正方形子矩陣,現在要求出這個01矩陣中,最大的正方形子矩陣,使得這個正方形子矩陣中的某一條對角線上的值全是1,其餘的全是0。

【輸入描述】

第一行有兩個整數n和m(1 <= n,m <= 1000)。接下來的n行,每行有m個0或1的數字。每兩個數字之間用空格隔開。

【輸出描述】

輸出乙個整數,表示滿足條件的最大正方形子矩陣的邊長。

【樣例輸入】

4 60 1 0 1 0 0

0 0 1 0 1 0

1 1 0 0 0 1

0 1 1 0 1 0

【樣例輸出】

3

源**:

#include

int m,n,ans(0),i[1001][1001]=,f1[1001][1001]=,f2[1001][1001]=,h1[1001][1001]=,h2[1001][1001]=;

intmain()

for (int a=1;a<=n;a++)

h1[1][a]+=h1[1][a-1

];

for (int a=n;a>0;a--)

h2[1][a]+=h2[1][a+1

];

for (int a=1;a<=n;a++)

f2[1][a]=f1[1][a]=i[1][a]; //

對第一行進行預處理。

for (int a=2;a<=m;a++)

for (int b=1;b<=n;b++) //

對後方進行處理。

for (int a=2;a<=m;a++) //

同理於上。

for (int b=n;b>0;b--) //

注意,此處應為倒序。

printf("%d

",ans);

return0;

}

wikioi 1259 最大正方形子矩陣

題目描述 description 在乙個01 矩陣中,包含有很多的正方形子矩陣,現在要求出這個 01矩陣中,最大的正方形子矩陣,使得這個正方形子矩陣中的某一條對角線上的值全是 1,其餘的全是0。輸入描述 input description 第一行有兩個整數n和m 1 n,m 1000 接下來的n行,...

最大正方形

題目鏈結 在乙個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...

最大正方形

題解 if a i j 1 f i j min min f i j 1 f i 1 j f i 1 j 1 1 f i j 表示以節點i,j為右下角,可構成的最大正方形的邊長。只有a i j 1時,節點i,j才能作為正方形的右下角 對於乙個已經確定的f i j x,它表明包括節點i,j在內向上x個節...