3 条题解
-
0
#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
- 标签
- 递交数
- 299
- 已通过
- 91
- 上传者