rt 题目
#include <iostream> #include<cstdio> using namespace std; char ch[105][105]; int n,m; int dir[8][2]={{1,0},{-1,0},{0,1},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}}; void dfs(int x,int y) { ch[x][y]='*'; for(int i=0;i<8;i++) { int nx=x+dir[i][0]; int ny=y+dir[i][1]; if(nx<1||nx>n) continue; if(ny<1||ny>m) continue; if(ch[nx][ny]=='*') continue; dfs(nx,ny); } } int main() { // freopen("cin.txt","r",stdin); while(cin>>n>>m) { if(m==0&&n==0) break; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>ch[i][j]; int count=0; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { if(ch[i][j]=='@') { count++; dfs(i,j); } } cout<<count<<endl; } return 0; }