求助
  • 板块题目总版
  • 楼主BensonQAQ
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/5/6 20:15
  • 上次更新2023/11/4 23:36:41
查看原帖
求助
284066
BensonQAQ楼主2021/5/6 20:15

题目

#include<iostream>
using namespace std;
int m[51][51],W,H,x,y,ans,dx[5]={0,1,0,-1,0},dy[5]={0,0,1,0,-1};
char c;
void dfs(int x,int y)
{
	int nx,ny,i;
	for(i=1;i<=4;i++)
	{
		nx=x+dx[i];
		ny=y+dy[i];
		if(nx>=1&&nx<=H&&ny>=1&&nx<=W&&m[nx][ny]==1)
		{
			m[nx][ny]=0;
			ans++;
			dfs(nx,ny);
		}
	}
}
int main()
{
	int i,j;
	cin>>W>>H;
	for(i=1;i<=H;i++)
		for(j=1;j<=W;j++)
		{
			cin>>c;
			if(c=='.')
				m[i][j]=1;
			if(c=='#')
				m[i][j]=0;
			if(c=='@')
			{
				m[i][j]=0;
				x=i;
				y=j;
				ans=1;
			}
		}
	cin>>i>>j;
	dfs(x,y);
	cout<<ans;
	return 0;
}
2021/5/6 20:15
加载中...