Salvation(dfs)

来源:互联网 发布:知乎离职员工 编辑:程序博客网 时间:2024/06/01 09:38

Salvation

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述

     

    神秘瀑布镇是一个神秘的地方,那里有吸血鬼,狼人,巫师,二重身。 Klaus(吸血鬼祖先) 为了利用 Elena 的血液发展他的混血大军(吸血鬼&狼人),也来到了神秘瀑布镇。Stefan 因为深爱着 Elena ,于是 Stefan 决定去唤醒吸血鬼猎人,来解救 Elena 

     吸血鬼猎人被封锁在一个迷宫里,这个迷宫有一种特性,只要进入就会失去方向感。于是 Stefan 想到一种方法,以左为标准(即优先左走),其次向前,向右,如果都无法走就向后走(即向右转两次)。他可以向上下左右四个方向的空格移动一个格,每次耗费1分钟。Stefan 在得知你是一个有天赋的程序员后,决定让你判断他是否能找到吸血鬼猎人。

输入
输入包含多组测试数据,第一行输入 n , m ( 2 < n ,m <= 100) ,接下来n行每行m个字符,第 n + 2 行一个字符表示初始方向(E W S N)。
“.”代表空格 ,“#”代表墙 , “ T ”代表初始位置,“X”代表吸血鬼猎人的位置。
输出
输出一行,如果能找到输出“YES”,否则输出“NO”。
样例输入
4 4.....##..##.TX..N4 4.....##..###T#.XN
样例输出
YESNO
提示
优先左走即:如果左边能走就向左走,如果不能走向前走,如果前不能走,向右走,如果右不能走向后走。
 /*分类:来源:思路:We are giants.create by Lee_SD on 2017/4/*/#include<iostream>#include<algorithm>#include<string.h>#include<stdio.h>using namespace std;int n,m;char map[110][110];int vis[110][110];int dx[]={-1,0,1,0};int dy[]={0,-1,0,1}; bool flag;char ch; int x,y,w;int judge(int xx,int yy){if(xx<0||xx>=n||yy<0||yy>=m||map[xx][yy]=='#')return 0;return 1;}int fun(char ch){if(ch=='N')return 0;if(ch=='W')return 1;if(ch=='S')return 2;return 3;}void dfs(int x,int y,int d){if(flag)return ;for(int i=1;i>-3;i--){int ds=(d+i+8)%4;int xx=x+dx[ds];int yy=y+dy[ds];if(judge(xx,yy)){if(map[xx][yy]=='X'){flag=1;return ;}if(vis[xx][yy]==4)return ;vis[xx][yy]++;dfs(xx,yy,ds);return ;}}}int main(){while(scanf("%d%d",&n,&m)!=EOF){int i,j,d;for(i=0;i<n;i++){scanf("%s",map[i]);for(j=0;j<m;j++){if(map[i][j]=='T'){x=i;y=j;}}}getchar();scanf("%c",&ch);d=fun(ch);flag=0;memset(vis,0,sizeof(vis));vis[x][y]=1;dfs(x,y,d);if(flag)printf("YES\n");elseprintf("NO\n");}}        


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一年级小孩记忆力差怎么办 孩子的记忆力不好怎么办 孩子记忆力不好怎么办呢 小学三年级学生不听话怎么办 司法考试成绩单没打印怎么办 高一200分怎么办 初一孩子语文差怎么办 大学专业没选好怎么办 减肥口渴的厉害怎么办 开胸手术后胸闷气短怎么办 打游戏上网成瘾怎么办 老公打游戏成瘾怎么办 我老是沉迷游戏怎么办 18孩子沉迷游戏怎么办 志愿提交码丢失怎么办 幼儿园报名没进怎么办 考完教师资格证怎么办 两套房改房怎么办 cad打开无响应怎么办 高中生脸上痘痘怎么办 孩子玩心太大怎么办 开会听不懂讲什么怎么办 在国外玩手游老是进不去怎么办 广东普法考试不合格怎么办 尔雅考试错过了怎么办 大四考试错过了怎么办 电大考试错过了怎么办 吃了桂圆咳嗽怎么办 初中生游戏网瘾怎么办 孩子染上网瘾怎么办 郑州孩子厌学有网瘾怎么办 孩子网瘾严重怎么办 学生上课玩手机怎么办 老脱发怎么办才好 好几个月不来月经怎么办 电脑辐射脸上起痘痘怎么办 脸被手机辐射怎么办 宝宝沉迷于电视怎么办 青少年长了白发怎么办 刮胡子刮多了怎么办 孩子就不学习怎么办