C++dfs80分求助
查看原帖
C++dfs80分求助
754146
lucky_loser楼主2023/7/9 18:57

WA在测试点6和8

#include<bits/stdc++.h>
using namespace std;
int n,m,ans;
char a[101][101];
int dx[9]={0,-1,-1,-1,0,0,1,1,1};
int dy[9]={0,-1,0,1,-1,1,-1,0,1};
inline void dfs(int x,int y)
{
	a[x][y]='.';
	for(int i=1;i<=8;i++)
	{
		int sx=x+dx[i];
		int sy=y+dy[i];
		if(sx<1||sx>n||sy<1||sy>m||a[sx][sy]=='.')
			continue;
		a[sx][sy]='.';
		dfs(sx,sy);
	}
	
}
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<=n;j++)
		{
			if(a[i][j]=='W')
			{
				dfs(i,j);
				ans++;
			}
		}
	cout<<ans<<endl;
	return 0;
}
2023/7/9 18:57
加载中...