谁能告告我为什么我的代码不听我的使唤
查看原帖
谁能告告我为什么我的代码不听我的使唤
231577
④纱楼主2020/10/6 18:15
#include<bits/stdc++.h>
using namespace std;
int dx[5]={0,0,0,1,-1};
int dy[5]={0,1,-1,0,0};
int n,qi,qj,zi,zj,head=0,tail=1,k;
int b[1005][1005],q[1000005][4];
char a[1005][1005];
bool pd(int i1,int jjj){
	if(i1<1 || i1>n)
	  return false;
	if(jjj<1 || jjj>n)
	  return false;
	if(b[i1][jjj]==1)
	  return false;
	if(a[i1][jjj]=='1'){
		cout<<i1<<" "<<jjj<<" "<<endl<<a[i1][jjj]<<endl;
		return false;
	}
	return true;
}
void bfs(int i,int j){
	do{
		head++;
		for(k=1;k<=4;k++){
			int ii=i+dx[k],jj=j+dy[k];
			if(pd(ii,jj)){
				tail++;
				b[ii][jj]=1;
				q[tail][1]=ii;
				q[tail][2]=jj;
				q[tail][3]=q[head][3]+1;
				if(ii==zi && jj==zj)
				  exit(0);
			}
		}
	}while(head<tail);
}
int main()
{
	cin>>n;
	for(int l=1;l<=n;l++)
	  scanf("%s",a[l]);
	cin>>qi>>qj>>zi>>zj;
	q[1][1]=qi;
	q[1][2]=qj;
	b[qi][qj]=1;
	bfs(qi,qj);
	cout<<q[tail][3];
	return 0;
}
3
001
101
100
1 1 3 3
1 2
1
1 2
1
1
--------------------------------
Process exited after 11.81 seconds with return value 0
请按任意键继续. . .

a数组:

001
101
100

它认为a[1][2]==1

2020/10/6 18:15
加载中...