样例输出是对的,只有10分,求大佬帮忙看看是哪里错了
查看原帖
样例输出是对的,只有10分,求大佬帮忙看看是哪里错了
561682
unbonjourable楼主2023/4/3 21:15
#include <iostream>
#include <cstring>
using namespace std;
int m,n;
int ans=0;
char g[30][30];
bool st[30][30];
int dx[]={-1,0,1,0}; int dy[]={0,1,0,-1};
void dfs(int x,int y)
{	
	for(int i=0;i<4;i++)
	{
		int a=x+dx[i]; int b=y+dy[i];
		if(a<0 || a>=m || b<0 || b>=n ) continue;
		if(g[a][b]!='.') continue;
		if (st[a][b]) continue;
		
		st[a][b]=true;
		ans++;
		dfs(a,b);
	}
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=0;i<m;i++)
		scanf("%s",g[i]);
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(g[i][j]=='@')
				st[i][j]=true;
				dfs(i,j);
		}
	}
	ans++;
	printf("%d\n",ans);
	return 0;
}
2023/4/3 21:15
加载中...