1 #include2 int modules,p[50][50]; 3 bool visit[50][50]; 4 void search(int i,int j) 5 { 6 if(visit[i][j])//已经遍历过,不再遍历 7 return; 8 visit[i][j]=1;//标志已访问 9 modules++;//块数加一 10 if(!(p[i][j]&8))//判断有没有南墙 11 search(i+1,j);12 if(!(p[i][j]&4))//判断有没有东墙 13 search(i,j+1);14 if(!(p[i][j]&2))//判断有没有北墙 15 search(i-1,j);16 if(!(p[i][j]&1))//判断有没有西墙 17 search(i,j-1);18 }19 int main()20 {21 int i,j,r,c,max,rooms;22 while(~scanf("%d%d",&r,&c)){23 for(i=0;i max) max=modules;//更新max 34 }35 printf("%d\n%d\n",rooms,max);36 }37 return 0;38 }
//深度优先搜索