程式設計計算由「*」號圍成的下列圖形的面積。面積計算方法是統計*號所圍成的閉合曲線中水平線和垂直線交點的數目。如下圖所示,在10*10的二維陣列中,有「*」圍住了15個點,因此面積為15。
輸入0-1矩陣(1表示*)
輸出面積。
0 0 0 0 0 0 0 0 0 00 0 0 0 1 1 1 0 0 0
0 0 0 0 1 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 0 1 0
0 1 0 1 0 1 0 0 1 0
0 1 0 0 1 1 0 1 1 0
0 0 1 0 0 0 0 1 0 0
0 0 0 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 0
15
#include#define maxn 12
int p[maxn][maxn];
int main()
for(i=2;i<=n-1;i++)
for(j=2;j<=n-1;j++)
for(j=2;j<=n-1;j++)
for(i=2;i<=n-1;i++)
int sum=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
printf("%d",sum);
return 0;
}
解題技巧:
先將四周一圈的為0的值賦為3,因為邊界區肯定不會被*包圍,其次:分析可知只要四周有乙個3的值就不會是被*完全包圍的,用兩次逐行逐列進行賦值,只要上下左右有乙個為3的值也將其賦值為3,再掃瞄一下新區域,只要還是0的區域的個數就是我門所要求的面積數。
最大的正方形
最大的正方形 描述 給你乙個n m的矩陣,每個位置的值是0或1,求乙個面積最大的子矩陣,這個矩陣必須是乙個正方形,且裡面只能由1構成,輸出最大的正方形邊長 執行時間限制 2 sec 記憶體限制 無限制 輸入 第一行輸入兩個整數n,m,之後n行,每行m個數字,為矩陣第i行第j列的值,只可能是0或者1 ...
理想的正方形
有乙個a x b的整數組成的矩陣,現請你從中找出乙個n x n的正方形區域,使得該區域所有數中的最大值和最小值的差最小。第一行為三個整數,分別表示a,b,n的值 第二行至第a 1行每行為b個非負整數,表示矩陣中相應位置上的數。輸出僅乙個整數,為axb矩陣中所有nxn正方形區域中的最大整數和最小整數的...
DP求最大正方形的邊長 hnust 1714
給定乙個n n的正方形,裡面有e 表示空地 f 表示被占有的地 求最大的正方形空地的邊長 用dp i j 表示以a i j 為右下角的最大正方形的邊長,注意 是以a i j 為右下角,也就是說a i j 必須是空的 只有當 這三個方向都是都為空時才能向外拓展,所以dp i j min dp i 1 ...