dfs0分全wa求解
查看原帖
dfs0分全wa求解
586768
User586768楼主2023/7/14 20:32
#include <bits/stdc++.h>
using namespace std; 
int n=0,a[1001][1001],vis[1001][1001];
int xx1,yy1,xx2,yy2,sum[10000000];
void dfs(int x,int y,int ex,int ey,int s){
	vis[x][y]=1;
	if(x!=0&&vis[x-1][y]==0){
		dfs(x-1,y,ex,ey,s+1);
	}
	if(y!=0&&vis[x][y-1]==0){
		dfs(x,y-1,ex,ey,s+1);
	}
	if(x!=n-1&&vis[x+1][y]==0){
		dfs(x+1,y,ex,ey,s+1);
	}
	if(y!=n-1&&vis[x][y+1]==0){
		dfs(x,y+1,ex,ey,s+1);
	}
	if(x==ex&&y==ey){
		sum[vis[1001][1001]]==s;
		vis[1001][1001]++;
		return;
	}
}
int main(){
	scanf("%d",&n);
	memset(vis,0,sizeof(vis));
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			char c;
			scanf("%c",&c);
			a[i][j]=c-'0';
			if(a[i][j]==1){
				vis[i][j]=1;
			}
		}
	}
	scanf("%d %d %d %d",&xx1,&xx2,&yy1,&yy2);
	int ans;
	for(int i=0;i<10000000;i++){
		ans=max(ans,sum[i]);
	}
	printf("%d",ans);
	return 0;
} 
2023/7/14 20:32
加载中...