这个题咋回事啊?
我写了一个广搜但是听取WA声一片。。。然后我把第一个数据点下载下来了,跑了一遍发现答案是一样的啊?但是就是过不了我也不知道为什么
有没有大佬救救孩子,下面是蒟蒻代码
#include<cstdio>
#include<queue>
#define N 30
using namespace std;
int mapp[N][N],m,n,stx,sty,step;
int go[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
queue< pair<int,int> >q;
void bfs(int x,int y)
{
mapp[x][y]=1;
step++;
q.push(make_pair(x,y));
while(q.size()!=0)
{
int qx=q.front().first,qy=q.front().second;
q.pop();
mapp[qx][qy]=1;
for(int i=0;i<4;i++)
{
int tx=qx+go[i][0],ty=qy+go[i][1];
if(mapp[tx][ty]==1||tx<1||tx>n||ty<1||ty>m) continue;
mapp[tx][ty]=1;
step++;
q.push(make_pair(tx,ty));
}
}
}
int main()
{
scanf("%d%d",&m,&n);
for(int i=1;i<=n;i++)
for(int j=0;j<=m;j++)
{
char dd;
scanf("%c",&dd);
if(dd=='@')
stx=i,sty=j;
if(dd=='#')
mapp[i][j]=1;
}
bfs(stx,sty);
printf("%d",step);
return 0;
}