題意:
給你乙個圖,讓你找到最大的子矩形。
思路:
之前做過乙個最大子矩陣,記得當時是用三種方法做的,兩種都是瓶頸法,第三種是dp,結果今天的用瓶頸吧怎麼都過不去,哎!不知道為什麼,後來沒辦法有寫了和dp順利ac了,我們求最大子矩陣的時候是記錄最大的長*寬,這次只要記錄最大的min(長,寬),就行了,說下這個題目的dp做法吧,只要是開三個陣列,l,r,sum,sum是記錄當前點的上面有多少個連續的1,l是記錄當前點sum大於等於左邊的最遠的那個數的下標(連續大於),r則是又邊,則我們可以一邊更新sum一邊更新l,r和ans,主要核心如下
for(i = 1 ;i <= n ;i ++)
//更新當前點右邊連續大於的最遠
r[1] = n;
for(j = n - 1 ;j >= 1 ;j --)
// 更新答案
for(j = 1 ;j <= n ;j ++)
}ok核心就是這些,時間複雜度是o(n^2)
#include#includeintl[1111] ,r[1111] ,sum[1000];int
map[1111][1111];int
minn(int
x,int
y)intmain
()for
(
ans=0,i=1;i<=n;i++) r[n] =n;for(
j=n-1;j>=1;j--)for(
j=1;j<=n;j++)}
printf("%d\n",ans);}return
0;}
最大子正方形 (!) 動態規劃
背景描述 忙完了學校的事,v神終於可以做他的 正事 陪女朋友散步。一天,他和女朋友走著走著,不知不覺就來到了乙個千里無菸的地方。v神正要往回走,如發現了一塊牌子,牌子上有有一行小字和一張圖,小字說道 找到圖上最大的交錯正方形之後和我聯絡,這塊地就是你的了。在房價瘋長的年代,v神當然不願錯過這個機會,...
最大正方形
題目鏈結 在乙個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個節...