最近不在状态,又要考试了,只好水一题。不过这绝不仅仅是个水题,这是我第一次参加比赛时不会做的一题,现在做了出来,感觉挺好的。
1 #include<stdio.h> 2 #include<string.h> 3 int s[105][105],vis[105][105]; 4 int n,m,tmax; 5 void dfs(int i,int j) 6 { 7 if(s[i][j] && !vis[i][j]) 8 { 9 vis[i][j] = 1; 10 dfs(i-1,j);dfs(i,j-1); 11 dfs(i+1,j);dfs(i,j+1); 12 if(i > tmax) tmax = i; 13 } 14 } 15 int main() 16 { 17 int i,j; 18 while(~scanf("%d %d",&n,&m)) 19 { 20 memset(vis,0,sizeof(vis)); 21 memset(s,0,sizeof(s)); 22 for(i = n; i > 0; i--) 23 for(j = 1; j <= m; j++) 24 scanf("%d",&s[i][j]); 25 tmax = 1; 26 for(int j = 1; j <= m; j++) 27 dfs(1,j); 28 printf("%d\n",tmax); 29 } 30 return 0; 31 }