Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
136456 林扬泉 迷宫问题 C++ 解答错误 53 1 MS 596 KB 790 2024-03-09 09:31:02

Tests(8/15):


#include<bits/stdc++.h> using namespace std; const int N=110; int n,m; int a[N][N]; bool f[N][N]; int r[N][3]; int dx[9]={0,0,0,-1,1,1,1,-1,-1}; int dy[9]={0,1,-1,0,0,-1,1,-1,1}; void pri(int k){ for(int i=1;i<=k;i++){ printf("%d %d\n",r[i][1],r[i][2]); } } void dfs(int x,int y,int k){ r[k][1]=x; r[k][2]=y; if(x==n&&y==m){ pri(k); exit(0); } int xx,yy; for(int i=1;i<=8;i++){ xx=x+dx[i],yy=y+dy[i]; if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&!f[xx][yy]){ f[xx][yy]=true; if(xx==1&&yy==1){ k=0; } dfs(xx,yy,k+1); } } } int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ scanf("%d",&a[i][j]); if(a[i][j]==1){ f[i][j]=true; } } } dfs(1,1,1); printf("-1\n"); return 0; }


测评信息: