1 条题解
-
3
#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
- 上传者