1.
在乙個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
#include
#define n 200
using
namespace
std;
int f[n][n],a[n],n,m,ans;
int min(int x,int y)
2.
colorful
description
philo的周圍一片黑暗。他踏出一步,腳下發出光亮。
該世界規則描述如下:這個世界建立在乙個平面上,該平面由n*mn∗m個玻璃板組成,初始每塊玻璃板都為熄滅狀態且都可以被點亮,每乙個玻璃板的邊長是1。每一塊玻璃板上都有乙個數值xx,xx代表了這塊玻璃板所發出光的亮度,每次點亮的方格必須是連續的,被點亮的方格可以被熄滅(你無須在意點亮和熄滅的細節,這對結果沒有影響)。philo可以從任意乙個位置出發。
離開的條件是找到面積最大的一塊正方形,該正方形內所有方格均被點亮,且該正方形上的每塊玻璃板的亮度都大於kk(亮度可以相同)。
你的任務就是輸出這個最大的面積。
0 < n,m\leq 2000,-1000\leq x,k \leq 10000
#include
using
namespace
std;
const
int maxn = (int)2e3 + 5;
int dp[2][maxn], n, m, k, x, ans;
int main()
}cout
<< ans*ans << endl;
return
0;}
最大正方形問題(DP)套路
最大正方形問題的轉移方程 f i j min f i 1 j 1 f i 1 j f i j 1 1.那麼是什麼意思呢?f i j 表示以 i,j 為右下角的最大正方形的邊長。那麼f i j 1 就保證了往上最多能擴充套件的邊長。f i 1 j 就保證了往左邊能擴充套件的最大邊長。f i 1 j 1...
最大正方形
題目鏈結 在乙個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個節...