P1317 - [蓝桥杯2017初赛]迷宫 - New Online Judgehttp://oj.ecustacm.cn/problem.php?id=1317
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
string g[12];
int vis[12][12]= {0};
int res=0;
int dfs(int i,int j) {
if(i < 0 || j < 0 || i >= 10 || j >= 10) {
return 2;
}
if (vis[i][j]) {
return vis[i][j];
}
vis[i][j] = 1;
if (g[i][j] == 'U') {
vis[i][j] = dfs(i-1, j);
} else if (g[i][j] == 'D') {
vis[i][j] = dfs(i+1, j);
} else if (g[i][j] == 'L') {
vis[i][j] = dfs(i, j-1);
} else if (g[i][j] == 'R') {
vis[i][j] = dfs(i, j+1);
}
return vis[i][j];
}
int main() {
cin.tie(0);
for(int i=0; i<10; i++) {
cin >> g[i];
}
for(int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
if (dfs(i,j) == 2) {
res++;
}
}
}
cout << res;
return 0;
}