Salvation -- ---广搜 + 限定方向 ,
这个欣求 , 在迷宫里密室了方向 , 走过了一个地方 不做标记 还一个劲 , 找不到媳妇不亏 .
这个题 我跳了两个坑 , 1 : 习惯性添加标记走过的 位置 ,导致所有的位置都能 走过一遍 , 2 : 转弯的时候 变换面部朝向
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<stack>
#include<string>
#include<sstream>
#include<map>
#include<cctype>
using namespace std;
char a[][],T;
int b[][]={-,,,-,,,,},n,m,t,time1[][],mark/*,visited[105][105]*/; //按照 左上右下的顺序
void DFS(int x,int y,int q)
{
for(int i=;i<&&time1[y][x]<&&!mark;i++) //同一个点最多前后左右四次
{
time1[y][x]++;
int ac=(i+q)%;
if(!mark&&x+b[ac][]>=&&y+b[ac][]>=&&y+b[ac][]<n&&x+b[ac][]<m&&a[y+b[ac][]][x+b[ac][]]!='#'/*&&!visited[y+b[ac][1]][x+b[ac][0]]*/)
{
// visited[y+b[ac][1]][x+b[ac][0]]=1;
if(a[y+b[ac][]][x+b[ac][]]=='X')
{
mark=;
break;
}
a[y+b[ac][]][x+b[ac][]]='@';
DFS(x+b[ac][],y+b[ac][],q);
return ; // 因为会 迷失方向 所以 一条路走到底 之后 没路走了 ( 进了死胡同 )
// visited[y+b[ac][1]][x+b[ac][0]]=0; // 就 直接去死吧 .
}
}
}
int main()
{
int x,y;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=;i<n;i++)
{
for(int j=;j<m;j++)
{
scanf(" %c",&a[i][j]);
if(a[i][j]=='T')
{
x=j;
y=i;
}
}
}
scanf(" %c",&T);
switch(T)
{
case'N':t=;break; // 面朝北的话 向左走
case'S':t=;break;
case'W':t=;break;
case'E':t=;break;
}
memset(time1,,sizeof(time1));
// memset(visited,0,sizeof(visited));
mark=;
DFS(x,y,t);
if(mark)
printf("YES\n");
else
printf("NO\n");
}
return ;
}
Salvation -- ---广搜 + 限定方向 ,的更多相关文章
- nyoj 613 免费馅饼 广搜
免费馅饼 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy ...
- 双向广搜+hash+康托展开 codevs 1225 八数码难题
codevs 1225 八数码难题 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Yours和zero在研究A*启 ...
- hdu 1175 连连看 (广搜,注意解题思维,简单)
题目 解析见代码 #define _CRT_SECURE_NO_WARNINGS //这是非一般的最短路,所以广搜到的最短的路不一定是所要的路线 //所以应该把所有的路径都搜索出来,找到最短的转折数, ...
- hdu 5094 Maze 状态压缩dp+广搜
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4092176.html 题目链接:hdu 5094 Maze 状态压缩dp+广搜 使用广度优先 ...
- 【双向广搜+逆序数优化】【HDU1043】【八数码】
HDU上的八数码 数据强的一B 首先:双向广搜 先处理正向搜索,再处理反向搜索,直至中途相遇 visit 和 队列都是独立的. 可以用一个过程来完成这2个操作,减少代码量.(一般还要个深度数组) 优化 ...
- nyoj 523 双向广搜
题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=523 #include<iostream> #include<cstd ...
- 深搜(DFS)广搜(BFS)详解
图的深搜与广搜 一.介绍: p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify; orp ...
- 『ice 离散化广搜』
ice(USACO) Description Bessie 在一个冰封的湖面上游泳,湖面可以表示为二维的平面,坐标范围是-1,000,000,000..1,000,000,000. 湖面上的N(1 & ...
- P1256 显示图像(广搜)
题意:略 思路,先说如何建树吧.广搜很简单,就是一个队列+一个检测数组.但是本质还是对搜索树的构建. 这里的构建就是一个节点有4个孩子,每个孩子代表4个方向就构成了一个搜索树.根据题目的就离公式转化一 ...
随机推荐
- vue-cli npm install 失败
1.$ npm install -g vue-cli 2.vue init webpack sell (sell 是项目) 3.然后就是自动下载模板,根据提示输入 4.cd cell => np ...
- buf.readInt8()
buf.readInt8(offset[, noAssert]) offset {Number} 0 noAssert {Boolean} 默认:false 返回:{Number} 从该 Buffer ...
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛 Scores
#1236 : Scores 时间限制:4000ms 单点时限:4000ms 内存限制:256MB 描述 Kyle is a student of Programming Monkey Element ...
- 一个DBA对于开发人员使用MySQL的tips
http://neoremind.net/2011/06/%E4%B8%80%E4%B8%AAdba%E5%AF%B9%E4%BA%8E%E5%BC%80%E5%8F%91%E4%BA%BA%E5%9 ...
- vue.js通讯----父亲拿儿子的数据
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Quartz原理解密
Quartz原理解密 Author: Dorae Date:2018年7月17日15:55:02 转载请注明出处 一.quartz概述 quartz是一个用java实现的开源任务调度框架,可以用来创建 ...
- Crashing Robots POJ 2632 简单模拟
Description In a modernized warehouse, robots are used to fetch the goods. Careful planning is neede ...
- zabbix全方位监控MySQL +cacti监控mysql
http://www.linuxidc.com/Linux/2015-02/112690.htm http://john88wang.blog.51cto.com/2165294/1596272?ut ...
- 移动端,input输入获得焦点被键盘遮住简单解决方案
(function (window,document) { document.querySelector('input[type="text"]').addEventListene ...
- Linux: 通过命令行上传文件到ftp服务器
url -T fie-name ftp://server-address --user user:password