BFS全WA蒟蒻求調
  • 板块P1141 01迷宫
  • 楼主_ICX
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/3/29 12:44
  • 上次更新2023/10/23 20:09:07
查看原帖
BFS全WA蒟蒻求調
734103
_ICX楼主2023/3/29 12:44

試了好多遍,全WA,有大佬給此蒟蒻思路嗎

#include<bits/stdc++.h>
using namespace std; 
int n,m;
int a[1001][1001],ans[1001][1001];
char c;
int fx[5]={0,0,1,0,-1},fy[5]={0,1,0,-1,0};
int main(){
	memset(ans,-1,sizeof(ans));
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>c;
			a[i][j]=int(c-48);
		}
	}
	for(int k=1;k<=m;k++){
		int i1,j1;
		int f;
		scanf("%d%d",&i1,&j1);
		if(ans[i1][j1]==-1){
			f=a[i1][j1];
			int head=1,tail=1,tx,ty,r[10001][4];
			r[1][1]=i1;r[1][2]=j1;r[1][3]=1;
			while(tail<=head){
//				cout<<tail<<" "<<head<<endl;
				for(int i=1;i<=4;i++){
					tx=r[head][1]+fx[i];ty=r[head][2]+fy[i];
					if(tx>=1&&tx<=n&&ty>=1&&ty<=n&&ans[tx][ty]!=f){
						tail++;
						r[tail][3]=r[tail-1][3]+1;
						r[tail][1]=tx;r[tail][2]=ty;
					}
				}
				head++;
			}
			ans[i1][j1]=r[tail][3];
		}
		printf("%d\n",ans[i1][j1]+1);
	}
	return 0;
}
2023/3/29 12:44
加载中...