最大黑區域
time limit:1000msmemory limit:32768kb64bit io format:%i64d & %i64u
submit
status
practice
fzu 1082
description
二值影象是由黑白兩種畫素組成的矩形點陣,影象識別的乙個操作是求出影象中最大黑區域的面積。請設計乙個程式完成二值影象的這個操作。黑區域由黑畫素組成,乙個黑區域中的每個畫素至少與該區域中的另乙個畫素相鄰,規定乙個畫素僅與其上、下、左、右的畫素相鄰。兩個不同的黑區域沒有相鄰的畫素。乙個黑區域的面積是其所包含的畫素的個數。
input
輸入由多個測試例組成。每個測試例的第一行含兩個整數n和m, (1 <=n,m<=100), 分別表示二值影象的行數與列數,後面緊跟著n行,每行含m個整數0或1,其中第i行表示影象的第i行的m個畫素,0表示白畫素,1表示黑畫素。同一行的相鄰兩個整數之間用乙個空格隔開,兩個測試例之間用乙個空行隔開,最後乙個測試例之後隔乙個空行,再接的一行含有兩個整數0,標誌輸入的結束。
output
每個測試例對應一行輸出,含乙個整數,表示相應的影象中最大黑區域的面積。
sample input
5 60 1 1 0 0 1
1 1 0 1 0 1
0 1 0 0 1 0
0 0 0 1 1 1
1 0 1 1 1 0
0 0
sample output
7
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define rep(i,j,k)for(i=j;ik;i--)
#define ms(x,y)memset(x,y,sizeof(x))
#define max(a,b) a>b?a:b
#define min(a,b) a=n||y<0||y>=m)return;
if(mp[x][y]==0)return;
if(flag[x][y])return;
k++;
flag[x][y]=1;
for(int i=0;i<4;i++)
return;
}int main()
}printf("%d\n",sum);
getchar();
}return 0;
}
FOJ Problem 1082 最大黑區域
題目大意 設計乙個程式尋找最大黑區域。黑區域由黑畫素組成,乙個黑區域中的每個畫素至少與該區域中的另乙個畫素相鄰,規定乙個畫素僅與其上 下 左 右的畫素相鄰。兩個不同的黑區域沒有相鄰的畫素。乙個黑區域的面積是其所包含的畫素的個數。解題思路 簡單的深度優先搜尋問題,由乙個黑色畫素點開始搜尋直到沒有黑色畫...
A 最大黑區域
problem 1082 最大黑區域 二值影象是由黑白兩種畫素組成的矩形點陣,影象識別的乙個操作是求出影象中最大黑區域的面積。請設計乙個程式完成二值影象的這個操作。黑區域由黑畫素組成,乙個黑區域中的每個畫素至少與該區域中的另乙個畫素相鄰,規定乙個畫素僅與其上 下 左 右的畫素相鄰。兩個不同的黑區域沒...
最大黑區域
fzu 1082 二值影象是由黑白兩種畫素組成的矩形點陣,影象識別的乙個操作是求出影象中最大黑區域的面積。請設計乙個程式完成二值影象的這個操作。黑區域由黑畫素組成,乙個黑區域中的每個畫素至少與該區域中的另乙個畫素相鄰,規定乙個畫素僅與其上 下 左 右的畫素相鄰。兩個不同的黑區域沒有相鄰的畫素。乙個黑...