请忽略在sum前面的那两个for循环
by zhz小蒟蒻 @ 2018-07-16 18:11:07
有一个小地方发错了
```
#include <iostream>
#include <cstdio>
using namespace std;
struct node
{
int x; //横坐标
int y; //纵坐标
};
int main()
{
struct node que[10001]={0};
char a[100][100];
int book[100][100];
int v1[8]={0,0,-1,-1,-1,1,1,1};
int v2[8]={1,-1,-1,0,1,-1,0,1};
int i,j,k,n,m,sum=0;
int head,tail,tx,ty;
head=0;tail=1;
cin>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>a[i][j];
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(a[i][j]=='W' && book[i][j]==0)
{
que[head].x=i;
que[head].y=j;
book[i][j]=1;
while(head<tail)
{
for(k=0;k<8;k++)
{
tx=que[head].x+v1[k];
ty=que[head].y+v2[k];
if(tx<0 || tx>=n || ty<0 || ty>=n)
continue;
if(book[tx][ty]==0 && a[tx][ty]=='W')
{
book[tx][ty]=sum+1;
que[tail].x=tx;
que[tail].y=ty;
tail++;
}
}
head++;
}
sum++;
head=tail;
tail++;
}
}
}
cout<<sum;
return 0;
}
```
by zhz小蒟蒻 @ 2018-07-16 21:58:08
请看数据范围~~我也被卡了一下~~
by 谜之soul_北冥X @ 2020-09-26 00:16:45