[C++] 纯文本查看 复制代码 #include <bits/stdc++.h>
using namespace std;
struct cizhuan
{
int x,y;
}cz[10000];
int main() {
int W,H,px,py,cnt=1;
char m[100][100];
int v[100][100]={0};
queue<cizhuan> q;
cin>>W>>H;
for(int i=0;i<H;i++)
for(int j=0;j<W;j++)
{
cin>>m[i][j];
if(m[i][j]=='@')
{
px=i;
py=j;
}
}
q.push({px,py});
v[px][py]=1;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
while(!q.empty())
{
cizhuan h=q.front();
q.pop();
for(int i=0;i<4;i++)
{
int nx=h.x+dx[i];
int ny=h.y+dy[i];
if(nx>=0&&ny>=0&&nx<=H&&ny<=W&&v[nx][ny]==0&&m[nx][ny]=='.')
{
v[nx][ny]=1;
q.push({nx,ny});
cnt++;
}
}
}
cout<<cnt;
return 0;
}
|