一道题永远做不出来怎么办
查看原帖
一道题永远做不出来怎么办
195634
封禁用户楼主2020/5/10 12:41

RT.10分蒟蒻求大佬差错……

#include<iostream>
using namespace std;

long long m,n,ams;
bool a[1000][1000],vis[1000][1000];
int r[]={1,1,1,0,-1,-1,-1,0},c[]={-1,0,1,1,1,0,-1,-1};

void dfs(int x,int y)
{
	vis[x][y]=true;
	for(int i=0;i<8;i++)
	{
		int xx=x+r[i],yy=y+c[i];
		if(xx>0&&xx<=n&&yy>0&&yy<=m&&!vis[xx][yy]&&a[xx][yy]==false)
			dfs(xx,yy);
	}	
}

int main()
{
	ios::sync_with_stdio(0);
	 cin>>n>>m;
	 for(int i=1;i<=n;i++)
	 	for(int j=1;j<=m;j++)
	 	{
	 		char t;
	 		cin>>t;
	 		if(t=='W')
	 			a[i][j]=true;
	 		else
	 			a[i][j]=false;
		}
	 for(int i=1;i<=n;i++)
	 	for(int j=1;j<=m;j++)
	 		if(a[i][j]&&!vis[i][j])
	 		{
	 			ams++;
	 			vis[i][j]==true;
	 			dfs(i,j);
			}
	 cout<<ams;
	return 0;
}
2020/5/10 12:41
加载中...