1 条题解

  • 0
    @ 2023-12-16 13:26:01
    #include<bits/stdc++.h>
    using namespace std;
    struct node{
    	int x;
    	int y;
    };
    const int dx[4]={0,-1,0,1};
    const int dy[4]={-1,0,1,0};
    int an,bn,cn,dn;
    int n;
    queue<node>q;
    int a[101][101];
    int vis[101][101];
    void bfs(){
    	vis[an][bn]=1;
    	node d;
    	int tx,ty;
    	if(a[an][bn]==1){
    		cout<<"NO"<<endl;
    		exit(0);
    	}
    	while(!q.empty()){
    		node u=q.front();
    		q.pop();
    		for(int i=0;i<4;i++){
    			if(u.x==cn&&u.y==dn){
    				cout<<"YES"<<endl;
    				exit(0);
    			}
    			tx=u.x+dx[i];
    			ty=u.y+dy[i];
    			if(tx<1||ty<1||tx>n||ty>n||a[tx][ty]==1||vis[tx][ty]==1)continue;	
    			vis[tx][ty]=1;
    			d={tx,ty};
    			q.push(d);
    		}
    	}
    	cout<<"NO"<<endl;
    }
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=n;j++){
    			cin>>a[i][j];		
    		}
    	}
    	cin>>an>>bn>>cn>>dn;
    	node tmp={an,bn};
    	q.push(tmp);
    	bfs();
    	return 0;
    }
    
    • 1

    信息

    ID
    657
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    84
    已通过
    36
    上传者