1 条题解
-
0
C++ :
#include <bits/stdc++.h> using namespace std; //a数组:代表迷宫 //b数组:描述路径,默认0,走一步+1 int n,m; char a[110][110]; int b[110][110]; int main() { cin>>n>>m; for(int i = 0;i < n;i++){ for(int j = 0;j < m;j++){ cin>>a[i][j]; //标记起始点 if(a[i][j] == 'L') b[i][j] = 1; } } string s = "LQBS";//行走顺序 int c = 1; //从一点出发,在上下左右寻找目标点,找到就继续 //找不到结束,死循环也结束 while(true){ int flag = 0;//标记是否找到 for(int i = 0;i < n;i++){ for(int j = 0;j < m;j++){ //从起点位置出发 if(b[i][j] == c){ //四方向找一个目标 if(a[i][j-1]==s[c%4]){ b[i][j-1] = c + 1; flag++; } if(a[i][j+1]==s[c%4]){ b[i][j+1] = c + 1; flag++; } if(a[i-1][j]==s[c%4]){ b[i-1][j] = c + 1; flag++; } if(a[i+1][j]==s[c%4]){ b[i+1][j] = c + 1; flag++; } } } } if(flag == 0) break;//上下左右都无法走 if(c > n * m) break;//无限循环 c++; } if(c > n * m) cout<<-1; else cout<<c / 4; return 0; }
- 1
信息
- ID
- 2770
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者