1 条题解

  • 1
    @ 2024-3-13 22:09:09
    #include <bits/stdc++.h>
    using namespace std;
    int n,c;
    bool f[10][10];
    int fx[5]={0,0,1,0,-1};
    int fy[5]={0,1,0,-1,0};
    struct Node{
    	int xe,ye;
    }r[30];
    void print(int key){
    	c++;
    	cout<<c<<":";
    	for (int i=1;i<key;i++)cout<<r[i].xe<<","<<r[i].ye<<"->";
    	cout<<n<<","<<n<<endl;
    }
    void dfs(int x,int y,int k){
    	r[k]={x,y};
    	if (x==n&&y==n){
    		print(k);
    		return;
    	}
    	for (int i=1;i<=4;i++){
    		int tx=fx[i]+x;
    		int ty=fy[i]+y;
    		if (tx>=1&&tx<=n&&ty>=1&&ty<=n&&!f[tx][ty]){
    			f[tx][ty]=true;
    			dfs(tx,ty,k+1);
    			f[tx][ty]=false;
    		}
    	}
    }
    int main(){
    	cin>>n;
    	f[1][1]=true;
    	dfs(1,1,1);
    	return 0;
    }
    
    • 1

    信息

    ID
    735
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    16
    已通过
    11
    上传者