Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
55908 | 朱宸瑜 | 走迷宫 | C++ | 通过 | 100 | 4 MS | 244 KB | 632 | 2022-07-31 20:41:37 |
#include<iostream> using namespace std; int n,mig[10][10],state[10][10]; int df[8][2]={ {1,0},{1,1},{-1,0},{-1,1}, {1,-1},{-1,-1},{0,1},{0,-1}, }; int ans=0; void dfs(int a,int b){ if(a==0&&b==n-1){ ans++; return; } for(int i=0;i<8;i++){ int ta=a+df[i][0],tb=b+df[i][1]; if(mig[ta][tb]||ta>=n||tb>=n||state[ta][tb]||ta<0||tb<0) continue; else{ // cout<<ta<<" "<<tb<<endl; state[ta][tb]=1; dfs(ta,tb); state[ta][tb]=0; } } } int main(){ cin>>n; for(int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>mig[i][j]; mig[0][0]=1; dfs(0,0); cout<<ans; return 0; }