感觉没有难度啊!感觉没有难度啊!感觉没有难度啊!感觉没有难度啊!感觉没有难度啊!感觉没有难度啊!感觉没有难度啊!感觉没有难度啊!感觉没有难度啊!
```
#include <bits/stdc++.h> using namespace std; const int N = 1e2+10; const int mod =11451419; #define int long long #define endl '\n' #define Endl '\n' #define inf 1e18 #define fast ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr); int n,m,d[N][N],dx[8]={0,1,0,-1,1,1,-1,-1},dy[8]={1,0,-1,0,1,-1,1,-1}; char g[N][N]; void bfs(int x,int y){ queue<pair<int,int>>q; q.push({x,y}); d[x][y]=0; while(!q.empty()){ auto [x,y]=q.front(); q.pop(); for(int i=0;i<8;i++){ int a=x+dx[i],b=y+dy[i]; if(a>=0&&a<=n-1&&b>=0&&b<=m-1&&g[a][b]=='@'&&d[a][b]==-1){ d[a][b]=d[x][y]+1; q.push({a,b}); } } } } signed main(){ fast while(1){ cin>>n>>m; if(!n&&!m)break; memset(g,0,sizeof g); for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>g[i][j]; } } memset(d,-1,sizeof d); int ans=0; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(g[i][j]=='@'&&d[i][j]==-1)bfs(i,j),ans++; } } cout<<ans<<endl; } return 0^0; }
```