听说灌水区解答速度比学术版快
  • 板块灌水区
  • 楼主Xiaonanu
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/2/27 22:04
  • 上次更新2024/2/28 13:34:18
查看原帖
听说灌水区解答速度比学术版快
631943
Xiaonanu楼主2024/2/27 22:04

萌新求助蟹蟹

#include<bits/stdc++.h>
using namespace std;
struct node
{
	int x,y,r,c;
};
int n,m,r,c,x,y,ans;
char a[2005][2005];
bool b[2005][2005];
string s;
queue<node>q;
signed main()
{
	cin>>n>>m>>r>>c>>x>>y;
	for(int i=1;i<=n;i++)
	{
		cin>>s;
		for(int j=1;j<=m;j++)
			a[i][j]=s[j-1];		
	}
	q.push({x,y,r,c});
	while(!q.empty())
	{
		int x=q.front().x,y=q.front().y,r=q.front().r,c=q.front().c;
		b[r][c]=1;
		if(r>1&&a[r-1][c]=='.'&&b[r-1][c]==0)q.push({x,y,r-1,c});
		if(r<n&&a[r+1][c]=='.'&&b[r+1][c]==0)q.push({x,y,r+1,c});
		if(c>1&&x>0&&a[r][c-1]=='.'&&b[r][c-1]==0)q.push({x-1,y,r,c-1});
		if(c<m&&y>0&&a[r][c+1]=='.'&&b[r][c+1]==0)q.push({x,y-1,r,c+1});
		q.pop();
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
			if(b[i][j])ans++;
	}	
	cout<<ans;
}
2024/2/27 22:04
加载中...