P1681 最大正方形 Iand II

2022-05-13 23:50:58 字數 1585 閱讀 9361

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

#include

#include

#include

#include

using

namespace

std;

int n,m,maxn=1

;int a[110][110],f[110][110

];int

main()

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

for(int j=1;j<=m;j++)

for(int k=maxn;i+k)

printf("%d

",maxn);

return0;

}

忙完了學校的事,v神終於可以做他的「正事」:陪女朋友散步。一天,他和女朋友走著走著,不知不覺就來到了乙個千里無菸的地方。v神正要往回走,如發現了一塊牌子,牌子上有有一行小字和一張圖,小字說道:「找到圖上最大的交錯正方形之後和我聯絡,這塊地就是你的了。」在房價瘋長的年代,v神當然不願錯過這個機會,於是開始找了起來……以v神的能力當然找不出來了,你能幫v神找出來嗎?

圖上有乙個矩陣,由n*m個格仔組成,這些格仔由兩種顏色構成,黑色和白色。請找到面積最大的且內部是黑白交錯(即兩個相連的正方形顏色不能相同)的正方形。

輸入格式: 

第一行兩個整數n和m,分別表示行數和列數。接下來有n行,每行m個數,0或1分別表示這個格仔是黑色或白色。 

輸出格式: 

僅有一行,表示滿足條件最大正方形的 邊長 

輸入樣例#1: 複製

3 3

0 1 0

1 0 0

1 1 1

輸出樣例#1: 複製

2
#include #include

#include

#include

#include

using

namespace

std;

const

int n=1509

;int

n,m;

bool

map[n][n];

intf[n][n];

intans;

intmain()

cout

}

樣例解釋:

(1,1)到(2,2)這個正方形是滿足條件的,它的邊長是2

資料範圍約定:

對於30%的資料,n <= 20

對於60%的資料,n <=300

對於100%的資料,n <= 1500

洛谷P1681 最大正方形II

忙完了學校的事,v神終於可以做他的 正事 陪女朋友散步。一天,他和女朋友走著走著,不知不覺就來到 了乙個千里無菸的地方。v神正要往回走,如發現了一塊牌子,牌子上有有一行小字和一張圖,小字說道 找到圖上最大的交錯正方形之後和我聯絡,這塊地就是 你的了。在房價瘋長的年代,v神當然不願錯過這個機會,於是開...

洛谷 P1681 最大正方形II 線性dp

忙完了學校的事,v神終於可以做他的 正事 陪女朋友散步。一天,他和女朋友走著走著,不知不覺就來到了乙個千里無菸的地方。v神正要往回走,如發現了一塊牌子,牌子上有有一行小字和一張圖,小字說道 找到圖上最大的交錯正方形之後和我聯絡,這塊地就是你的了。在房價瘋長的年代,v神當然不願錯過這個機會,於是開始找...

luogu P1681 最大正方形II

交了十幾遍才過,本來這只是一道水題,然而誰讓我快讀寫炸了呢 詳情見 gg記錄 6 f i j 表示i,j位置為右下角的最大正方形 如果i或j為1,很顯然,f i j 的值最大為1,否則便要從三個方向取最小值轉移 如果不滿足轉移的條件,將其賦值為1即可 includevoid read int y i...