有没有好心人帮忙提交一下
查看原帖
有没有好心人帮忙提交一下
1330072
Relisc楼主2024/7/16 20:27
#include <bits/stdc++.h>
using namespace std;
char oil[1010][1010];
bool st[1010][1010];
int n,m;
int dx[]={-1,-1,-1,0,0,1,1,1};
int dy[]={-1,0,1,-1,1,-1,0,1};

void dfs(int u,int v){
	st[u][v]=true;
	
	for(int i=0;i<8;i++)
	{
		int x=u+dx[i],y=v+dy[i];
		if(x>=1 && x<=n && y>=1 && y<=m && !st[x][y] && oil[x][y]=='@')
			dfs(x,y);
	}
	
}
int main(){
	//
	while(cin>>n>>m)
	{
		if(n == m ==0)	return 0;
		
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				cin>>oil[i][j];
	
		int cnt=0;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
				if(oil[i][j] =='@' && !st[i][j])
				{
					dfs(i,j);
					cnt++;
				}
		}
		
		cout<<cnt<<endl;
	}
	
}

2024/7/16 20:27
加载中...