要找到最大连续的图形的面积,对角线的不算,使用深搜!
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
int a[105][105];
int sum;
void dfs(int x,int y)
{
sum ++;
a[x][y] = 0;
if(a[x - 1][y] == 1)dfs(x - 1,y);
if(a[x + 1][y] == 1)dfs(x + 1,y);
if(a[x][y - 1] == 1)dfs(x,y - 1);
if(a[x][y + 1] == 1)dfs(x,y + 1);
}
int main() {
int n,m,k,x,y,res;
while(scanf("%d%d%d",&n,&m,&k)!=EOF)
{
res = 0;
memset(a,0,sizeof(a));
for(int i = 0;i < k;i++)
{
scanf("%d%d",&x,&y);
a[x][y] = 1;
}
for(int i = 1; i <= n ;i ++)//这里特别要注意上面输入的x,y是从1开始的!
{
for(int j = 1;j <= m;j++)
{
if(a[i][j] == 1)
{
sum = 0;
dfs(i,j);
res = max(res,sum);
}
}
}
printf("%d\n",res);
}
return 0;
}