1 条题解

  • 3
    @ 2023-12-16 13:26:43
    #include<bits/stdc++.h>
    using namespace std;
    const int dx[5]={0,0,-1,0,1};
    const int dy[5]={0,-1,0,1,0};
    string s;
    int n;
    int a[30][30];
    int b[30][30];
    struct node{
    	int x;
    	int y;
    }c[1001];
    int len;
    void print(){
    	for(int i=1;i<len;i++){
    		cout<<"("<<c[i].x<<","<<c[i].y<<")"<<"->";
    	}
    	cout<<"("<<c[len].x<<","<<c[len].y<<")";
    }
    int tx=0,ty=0;
    void dfs(int x,int y,int dep){
    	c[dep].x=x,c[dep].y=y;
    	b[x][y]=1;
    	if(x==n&&y==n){
    		len=dep;
    		print();
    	}
    
    	for(int i=1;i<=4;i++){
    		tx=x+dx[i],ty=y+dy[i];
    		if(tx>=1&&tx<=n&&ty>=1&&ty<=n&&a[tx][ty]==0&&b[tx][ty]==0){
    			dfs(tx,ty,dep+1);
    		}
    	}	
    }	
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>s;
    		for(int j=0;j<n;j++){
    			a[i][j+1]=int(s[j]-'0');
    		}
    	}
    	dfs(1,1,1); 
    	return 0;
    }
    
    • 1

    信息

    ID
    658
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    113
    已通过
    43
    上传者