请问哪里错了,感觉全对
  • 板块P1141 01迷宫
  • 楼主dfsgbear2
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/9/20 21:56
  • 上次更新2023/11/2 18:56:07
查看原帖
请问哪里错了,感觉全对
1000915
dfsgbear2楼主2023/9/20 21:56
#include<bits/stdc++.h>
using namespace std;
int k=-1,a[1001][1001],vis[1001][1001],x[10001],y[10001],n,m;
int fx[4]={0,-1,1,0};
int fy[4]={-1,0,0,1};
void zy(int x,int y,int k,int ans){
	if(x<1||x>n||y<1||y>n||vis[x][y]==1)return;
	vis[x][y]=1;
	for(int i=0;i<4;i++){
		if(k==0&&a[x+fx[i]][y+fy[i]]==1&&vis[x+fx[i]][y+fy[i]]==0)zy(x+fx[i],y+fy[i],k+1,ans+1);
		if(k==1&&a[x+fx[i]][y+fy[i]]==0&&vis[x+fx[i]][y+fy[i]]==0)zy(x+fx[i],y+fy[i],k-1,ans+1);
	}
	vis[x][y]=0;
	k=max(k,ans);
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=m;i++){
		cin>>x[i]>>y[i];
	}
	for(int i=1;i<=m;i++){
		zy(x[i],y[i],a[x[i]][y[i]],1);
		cout<<k<<endl;
	}
}
2023/9/20 21:56
加载中...