POJ3620

来源:互联网 发布:淘宝店铺封面象数多少 编辑:程序博客网 时间:2024/06/05 18:01

今天开始,每天学一些数据结构和算法,然后把暑假集训的作业题都刷一遍,跳过模拟和贪心,从搜索开始。

poj3620 水题一道,dfs求连通块:


#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>using namespace std;int a[200][200];int xr[]={1,0,-1,0};int yr[]={0,1,0,-1};int n,m,k;int ans=0,ret=0;void dfs(int x,int y){    if(x<1 || x>n || y<1 || y>m) return ;    if(a[x][y]==0)return ;    else ret++;    a[x][y]=0;    for(int i=0;i<4;i++){        int xx=x+xr[i];        int yy=y+yr[i];        dfs(xx,yy);    }}int main(){   // freopen("in.txt","r",stdin);    while(scanf("%d%d%d",&n,&m,&k)!=EOF){        memset(a,0,sizeof(a));        for(int i=1;i<=k;i++){            int x,y;            scanf("%d%d",&x,&y);            a[x][y]=1;        }        for(int i=1;i<=n;i++)            for(int j=1;j<=m;j++){                ret=0;                dfs(i,j);                ans=max(ans,ret);            }        printf("%d",ans);    }    return 0;}


0 0