本蒟蒻实力不强,还请各位大佬多多帮助
这道题我提交上去80分,有一个MLE和一个TLE
代码:
#include<bits/stdc++.h>
using namespace std;
struct node
{
int x,y;
};
char a[105][105];
int n,m,ans,dx[10]={0,0,1,1,-1,-1,-1,1},dy[10]={-1,1,1,-1,1,-1,0,0};
queue<node>que;
void bfs(int x,int y)
{
node t;
t.x=x;
t.y=y;
que.push(t);
while(!que.empty())
{
node tt;
tt.x=que.front().x;
tt.y=que.front().y;
for(int i=0;i<8;i++)
{
node l;
l.x=tt.x+dx[i];
l.y=tt.y+dy[i];
if(l.x>=1&&l.x<=n&&l.y>=1&&l.y<=m&&a[l.x][l.y]=='W')
que.push(l);
}
que.pop();
a[tt.x][tt.y]='.';
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(a[i][j]=='W')
{
++ans;
bfs(i,j);
}
}
cout<<ans;
return 0;
}
回复必关
谢谢各位大佬!!!