最大正方形(洛谷-P1387)
生活随笔
收集整理的這篇文章主要介紹了
最大正方形(洛谷-P1387)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
在一個(gè)n*m的只包含0和1的矩陣?yán)镎页鲆粋€(gè)不包含0的最大正方形,輸出邊長。
輸入輸出格式
輸入格式:
輸入文件第一行為兩個(gè)整數(shù)n,m(1<=n,m<=100),接下來n行,每行m個(gè)數(shù)字,用空格隔開,0或1.
輸出格式:
一個(gè)整數(shù),最大正方形的邊長
輸入輸出樣例
輸入樣例#1:
4 4
0 1 1 1
1 1 1 0
0 1 1 0
1 1 0 1
輸出樣例#1:
2
源代碼
#include<iostream> using namespace std;int min(int x,int y,int z)//計(jì)算三者最小值 {int temp=x;if(temp>y) temp=y;if(temp>z) temp=z;return temp; }int main() {int n,m,square[105][105];int work=0,dp[105][105]={0};int i,j;cin>>n>>m;//輸入行、列for(i=1;i<=n;i++)//輸入矩陣for(j=1;j<=m;j++)cin>>square[i][j];for(i=1;i<=n;i++){for(j=1;j<=m;j++){if(square[i][j]==0) continue;//遇到0跳過dp[i][j]=min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1;//比較上方、左方、左上方}}for(i=1;i<=n;i++)for(j=1;j<=m;j++)if(dp[i][j]>work) work=dp[i][j];//搜尋最大值cout<<work<<endl;return 0; }?
總結(jié)
以上是生活随笔為你收集整理的最大正方形(洛谷-P1387)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暑期训练日志----2018.8.14
- 下一篇: 区间合并(信息学奥赛一本通-T1236)