解题思路:

参考代码:

#include<bits/stdc++.h>
#define hh ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
const int maxn=105;
int t,n,q;
int x,y,pos_x,pos_y;
char mmp[maxn][maxn];
string cmd;

int main() {
	//hh;
	cin>>t;
	while(t--) {
		memset(mmp,0,sizeof(mmp));
		cin>>n;
		for(int i=1; i<=n; i++) {
			for(int j=1; j<=n; j++) {
				cin>>mmp[i][j];
				if(mmp[i][j]=='S') {
					x=i,y=j;
					pos_x=i,pos_y=j;
				}
			}
		}
		cin>>q;
		while(q--) {
			cin>>cmd;
			x=pos_x,y=pos_y;
			for(int i=0; i<cmd.length(); i++) {
				if(cmd[i]=='L') {
					y--;
				} else if(cmd[i]=='R') {
					y++;
				} else if(cmd[i]=='U') {
					x--;
				} else if(cmd[i]=='D') {
					x++;
				}

				if(mmp[x][y]=='T') {
					cout<<"I get there!"<<endl;
					break;
				} else if(mmp[x][y]!='T'&&i==cmd.length()-1&&(x>=1&&x<=n&&y>=1&&y<=n)) {
					cout<<"I have no idea!"<<endl;
					break;
				} else if(mmp[x][y]=='#') {
					cout<<"I am dizzy!"<<endl;
					break;
				} else if(x<1||x>n||y<1||y>n) {
					cout<<"I am out!"<<endl;
					break;
				}
			}
			cmd.clear();
		}
	}
	return 0;
}
//这份代码错误50%

然后我看了一下别人的题解,进行了一下修改,吧else if换成了if进行判断,就对了

#include<bits/stdc++.h>
#define hh ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
const int maxn=105;
int t,n,q;
int x,y,pos_x,pos_y;
char mmp[maxn][maxn];

int main() {
	//hh;
	cin>>t;
	while(t--) {
		memset(mmp,0,sizeof(mmp));
		cin>>n;
		for(int i=1; i<=n; i++) {
			for(int j=1; j<=n; j++) {
				cin>>mmp[i][j];
				if(mmp[i][j]=='S') {
					x=i,y=j;
					pos_x=i,pos_y=j;
				}
			}
		}
		cin>>q;
		while(q--) {
			string cmd;
			cin>>cmd;
			x=pos_x,y=pos_y;
			for(int i=0; i<cmd.length(); i++) {
				if(cmd[i]=='L')
					y--;
				if(cmd[i]=='R')
					y++;
				if(cmd[i]=='U')
					x--;
				if(cmd[i]=='D')
					x++;
					
				if(mmp[x][y]=='T') {
					cout<<"I get there!"<<endl;
					break;
				} else if(mmp[x][y]=='#') {
					cout<<"I am dizzy!"<<endl;
					break;
				} else if(mmp[x][y]==0) {
					cout<<"I am out!"<<endl;
					break;
				}
				
				if(mmp[x][y]!='T'&&i==cmd.length()-1&&mmp[x][y]!=0) {
					cout<<"I have no idea!"<<endl;
					break;
				}
			}
		}
	}
	return 0;
}

AC

点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论