#include<stdio.h> char mi[1000][1000]; int arr[1000][1000]; void dfs(int x,int y) { // if(arr[x+1][y]=='W'||arr[x+1][y+1]=='W'||arr[x-1][y]=='W'||arr[x-1][y-1]=='W'||arr[x][y+1]=='W'||arr[x][y-1]=='W'||arr[x+1][y-1]=='W'||arr[x-1][y+1]=='W') // { if(mi[x+1][y]=='W') { mi[x+1][y]='.'; dfs(x+1,y); } if(mi[x+1][y+1]=='W') { mi[x+1][y+1]='.'; dfs(x+1,y+1); } if(mi[x-1][y]=='W') { mi[x-1][y]='.'; dfs(x-1,y); } if(mi[x-1][y+1]=='W') { mi[x-1][y+1]='.'; dfs(x-1,y+1); } if(mi[x-1][y-1]=='W') { mi[x-1][y-1]='.'; dfs(x-1,y-1); } if(mi[x][y+1]=='W') { mi[x][y+1]='.'; dfs(x,y+1); } if(mi[x][y-1]=='W') { mi[x][y-1]='.'; dfs(x,y-1); } if(mi[x+1][y-1]=='W') { mi[x+1][y-1]='.'; dfs(x+1,y-1); } } // else // return ; //} int main() { int i,j,num=0,m,n; scanf("%d%d",&m,&n); for(i=0;i<n;i++) mi[0][i]='.'; for(i=1;i<=m;i++) scanf("%s",mi[i]); for(i=1;i<=m;i++) for(j=0;j<n;j++) { if(mi[i][j]=='W') { mi[i][j]='.'; dfs(i,j); num++; } } printf("%d\n",num); return 0; }
poj2386C语言解题报告
最新推荐文章于 2021-03-27 09:54:07 发布