5 条题解
- 
  -1
#include<bits/stdc++.h> using namespace std; int a[10000][10000],cur[10000][10000]; int n; int vis[8][2] = {{1,0},{1,1},{1,-1},{-1,0},{-1,1},{-1,-1},{0,1},{0,-1}}; int cnt = 0; void dfs(int x, int y){ if(x == 1 && y == n){ cnt++; return; } for(int i = 0;i < 8;i++){ if(cur[x + vis[i][0]][y + vis[i][1]] == 0 && a[x + vis[i][0]][y + vis[i][1]] == 1){ cur[x + vis[i][0]][y + vis[i][1]] = 1; dfs(x + vis[i][0],y + vis[i][1]); cur[x + vis[i][0]][y + vis[i][1]] = 0; } } } int main(){ cin >> n; for(int i = 1;i <= n;i++){ for(int j = 1;j <= n;j++){ cin >> a[i][j]; if(a[i][j] == 1){ a[i][j] = 0; } else{ a[i][j] = 1; } } } cur[1][1] = 1; dfs(1,1); cout << cnt; } 
信息
- ID
 - 1296
 - 时间
 - 1000ms
 - 内存
 - 256MiB
 - 难度
 - 6
 - 标签
 - 递交数
 - 382
 - 已通过
 - 129
 - 上传者