P1387 最大正方形

2022-03-23 03:04:00 字數 787 閱讀 7823

在乙個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

輸出樣例#1: 

2

解析:本題題意明確,明顯符合動態規劃的要求,可運用「二維dp」求解。

設f[i][j]表示左上角i行j列構成的長方形中最大正方形的邊長,在對f[i][j]進行轉移的時候,要從左上,上,左中選乙個最小的即可(請讀者結合下面的樣例)

輸入:

0 0 0 1

1 1 1 1

0 1 1 1

1 1 1 1

f陣列

0 0 0 1

1 1 1 1

0 1 2 2

1 1 2 3

1 #include2

using

namespace

std;

3int n,m,s,f[105][105

],ans;

4int

main()517

}18}19 cout<

20return0;

21 }

view code

雙倍經驗:

P1387 最大正方形

法1 矩陣字首和 n 3 列舉點i,j 和邊長o,如果右下角與左下角之間的數是完全平方數,既是正方形。include include include include include include include include define ll long long using namespace...

P1387 最大正方形

在乙個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...

P1387 最大正方形

在乙個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...