DFS 求助
查看原帖
DFS 求助
1008614
Juan2012楼主2024/7/6 17:52
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=2005;
int n,m,r,c,x2,y2,sl;
bool f[N][N];
char a[N][N]; 
int fx[10]={0,0,1,0,-1};
int fy[10]={0,1,0,-1,0};
void dfs(int x, int y, int l, int r){
	int tx,ty;
	sl++;
	for(int i=1;i<=4;i++){
		tx=x+fx[i],ty=y+fy[i];
		if(a[tx][ty]=='.' && f[tx][ty]==0){
			if(i==2 || i==4) f[tx][ty]=1,dfs(tx,ty,l,r);
			if(i==1 && r>0) f[tx][ty]=1,dfs(tx,ty,l,r-1);
			if(i==3 && l>0) f[tx][ty]=1,dfs(tx,ty,l-1,r);
		} 
	}
}
signed main(){
	cin>>n>>m>>r>>c>>x2>>y2;
	f[r][c]=1;
	for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j];
	dfs(r,c,x2,y2);
	cout<<sl;
	return 0;
} 

WA ON #5

2024/7/6 17:52
加载中...