zcmu-1209 最大面积(深搜dfs应用入门,简单题)

题目链接 

要找到最大连续的图形的面积,对角线的不算,使用深搜!

#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;
}

猜你喜欢

转载自blog.csdn.net/hzyhfxt/article/details/81986803