题目
题目链接
题解
实现题。
这也很基础,写代码的时候细心点就行。
代码
#include<bits/stdc++.h>
using namespace std;
const int N = 55;
int T, Q, n, sx, sy, tx, ty;
string mp[N], op;
int dx[] = {-1, 1, 0, 0};
int dy[] = {0, 0, -1, 1};
int main()
{
cin>>T;
while(T--) {
cin>>n;
for(int i = 0;i < n;i ++) {
cin>>mp[i];
for(int j = 0;j < n;j ++)
if(mp[i][j] == 'S') sx = i, sy = j;
else if(mp[i][j] == 'T') tx = i, ty = j;
}
cin>>Q;
while(Q--) {
cin>>op;
int x = sx, y = sy, flag = 0;
for(int i = 0;i < op.size();i ++) {
int k;
if(op[i] == 'U') k = 0;
else if(op[i] == 'D') k = 1;
else if(op[i] == 'L') k = 2;
else if(op[i] == 'R') k = 3;
int xx = x+dx[k], yy = y+dy[k];
if(xx < 0 || yy < 0 || xx >= n || yy >= n) {flag = 1; puts("I am out!"); break;}
if(mp[xx][yy] == '#') {flag = 1; puts("I am dizzy!"); break;}
if(xx == tx && yy == ty) {flag = 1; puts("I get there!"); break;}
x = xx, y = yy;
}
if(!flag) puts("I have no idea!");
}
}
return 0;
}