标签:
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int mat[200][200]; int vis[200][200]; int ans,n,m,rt; int op[4][2]={0,-1,0,1,1,0,-1,0}; bool isok(int x,int y) { if(x<1||x>n||y<1||y>m||vis[x][y]==1||mat[x][y]==0) return false; return true; } void dfs(int x,int y) { vis[x][y]=1; int i,j; for(i=0;i<4;i++) { int tx,ty; tx=x+op[i][0]; ty=y+op[i][1]; if(isok(tx,ty)) { rt++; // printf("%d %d %d %d\n",x,y,tx,ty); dfs(tx,ty); } } } int main() { int k; int i,j; while(scanf("%d%d%d",&n,&m,&k)!=EOF) { ans=0; memset(mat,0,sizeof(mat)); memset(vis,0,sizeof(vis)); while(k--) { int x,y; scanf("%d%d",&x,&y); mat[x][y]=1; } for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { if(mat[i][j]==1&&vis[i][j]==0) { rt=1; dfs(i,j); if(rt>ans) ans=rt; } } } printf("%d\n",ans); } return 0; }
标签:
原文地址:http://www.cnblogs.com/sola1994/p/4660869.html