题意:输入一个n*m的迷宫,和一个T:可以在迷宫中生存的最大时间。S为起点,D为终点。并且,每个格子只能踩一次,且只能维持一秒,然后该块地板就会塌陷。所以你必须每秒走一步,且到D点时,所用时间为T。用深搜。
奇偶性剪枝:如果当前的狗所在的坐标与D的坐标奇偶性不一样,那么狗需要走奇数步。
同理,如果狗所在坐标与D的坐标奇偶性一样,那么狗需要走偶数步数。

也就是说,狗的坐标x、y和对2取余是它的奇偶性,Dxy和对2取余是D的奇偶性。
两个奇偶性一加再对2取余,拿这个余数去与剩下时间对2取余的余数作比较即可。

Sample Input
4 4 5
S.X.
..X.
..XD
....
3 4 5
S.X.
..X.
...D
0 0 0

Sample Output
NO
YES

 #include <cstdio>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <vector>
#include <queue> using namespace std; int m,n,t;
char map[][];
int dir[][]={{,},{-,},{,-},{,}};
int ex,ey,sx,sy,ok;//e表示end,终点,s表示start,出发点,ok用来判断是否在规定时间到达 void dfs(int x,int y,int cnt)
{
int i;
if(cnt==t)//剪枝:到时间了符合条件ok=1再退出,不符合条件直接退出。
{
if(ex==x&&ey==y)ok=;
return;
}
if(ok)return;//找到解后还有部分在继续搜索,这条是为了让其它搜索停止 for(i=;i<;i++)
{
int fx=x+dir[i][];
int fy=y+dir[i][];
if(fx>=&&fx<n&&fy>=&&fy<m&&map[fx][fy]!='X')
{
map[fx][fy]='X';
dfs(fx,fy,cnt+);
map[fx][fy]='.'; //回溯
}
}
}
int main()
{
int i,j;
//freopen("in.txt","r",stdin);
while(scanf("%d%d%d",&n,&m,&t))
{
if (m == && n == & t == )
break ; for(i=;i<n;i++)
{
scanf("%s",map[i]);
for(j=;map[i][j]!='\0';j++)
{
if(map[i][j]=='S')
{
sx=i;sy=j;
}
else if(map[i][j]=='D')
{
ex=i;ey=j;
} }
}
if(abs(sx - ex) + abs(sy - ey) > t || (sx +sy+ex+ey+t)% == )//如果步数大于时间 或步数的奇偶性不一致
printf("NO\n");
else
{
ok=;
map[sx][sy]='X';
dfs(sx,sy,);
if(ok)printf("YES\n");
else printf("NO\n");
}
}
return ;
}

hdu 1010 走到终点时刚好花掉所有时间 (DFS + 奇偶性剪枝 )的更多相关文章

  1. hdu - 1010 Tempter of the Bone (dfs+奇偶性剪枝) && hdu-1015 Safecracker(简单搜索)

    http://acm.hdu.edu.cn/showproblem.php?pid=1010 这题就是问能不能在t时刻走到门口,不能用bfs的原因大概是可能不一定是最短路路径吧. 但是这题要过除了细心 ...

  2. hdu 2157 从a点走到b点刚好k步的方案数是多少 (矩阵快速幂)

    n个点 m条路 询问T次 从a点走到b点刚好k步的方案数是多少 给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值把 给定的图转为邻接矩阵,即A(i,j)=1当且仅当存 ...

  3. hdu 1372 骑士从起点走到终点的步数 (BFS)

    给出起点和终点 求骑士从起点走到终点所需要的步数 Sample Inpute2 e4 //起点 终点a1 b2b2 c3a1 h8a1 h7h8 a1b1 c3f6 f6 Sample OutputT ...

  4. HDU 1010 Tempter of the Bone(深度+剪枝)

    http://acm.hdu.edu.cn/showproblem.php?pid=1010 题意:就是给出了一个迷宫,小狗必须经过指定的步数到达出口,并且每个格子只能走一次. 首先先来介绍一下奇偶性 ...

  5. hdu 1010:Tempter of the Bone(DFS + 奇偶剪枝)

    Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe ...

  6. HDU 1010 (DFS搜索+奇偶剪枝)

    题目链接:  http://acm.hdu.edu.cn/showproblem.php?pid=1010 题目大意:给定起点和终点,问刚好在t步时能否到达终点. 解题思路: 4个剪枝. ①dep&g ...

  7. HDU 1010 Tempter of the Bone --- DFS

    HDU 1010 题目大意:给定你起点S,和终点D,X为墙不可走,问你是否能在 T 时刻恰好到达终点D. 参考: 奇偶剪枝 奇偶剪枝简单解释: 在一个只能往X.Y方向走的方格上,从起点到终点的最短步数 ...

  8. HDU 1010 temp of the bone 解题报告 (DFS)

    转载大佬的blog,很详细,学到了很多东西 奇偶剪枝:根据题目,dog必须在第t秒到达门口.也就是需要走t-1步.设dog开始的位置为(sx,sy),目标位置为(ex,ey).如果abs(ex-x)+ ...

  9. hdu 1010 深搜+剪枝

    深度搜索 剪枝 还不是很理解 贴上众神代码 //http://blog.csdn.net/vsooda/article/details/7884772#include<iostream> ...

随机推荐

  1. Tomcat8.5配置https启动报空指针错误

    tomcat8.5版本和tomcat8.0有了很大的区别,默认的server.xml中https的配置方式也有了变化: <Connector port="8443" prot ...

  2. 〖C语言学习笔记 〗(一) HelloWorld

    前言 本文为c基础入门学习笔记 正文 HelloWorld #include <stdio.h> //标准输出流 int main() //每种语言都有一个执行入口,main方法就是其一 ...

  3. 【原创】angularjs1.3.0源码解析之执行流程

    Angular执行流程 前言 发现最近angularjs在我厂的应用变得很广泛,下周刚好也有个angular项目要着手开始做,所以先做了下功课,从源代码开始入手会更深刻点,可能讲的没那么细,侧重点在于 ...

  4. ssh 登录出现Are you sure you want to continue connecting (yes/no)?解决方法

    ssh 登录出现Are you sure you want to continue connecting (yes/no)?解决方法 1,可以使用ssh -o 的参数进行设置例如: ssh -o St ...

  5. 键盘按键js效果

    <input id="name" type="text" > JS: <script> document.onkeydown = fun ...

  6. 如何往linux上面上传东西

    在linux中rz 和 sz 命令允许开发板与主机通过串口进行传递文件了,下面我们就来简单的介绍一下rz 和 sz 命令的例子. rz,sz是Linux/Unix同Windows进行ZModem文件传 ...

  7. 电脑kail linux 连接手机Nethunter,手机和电脑互传文件

    1.开启nethunter的ssh 修改/etc/ssh/sshd_config 参考:解决kali linux 开启ssh服务后连接不上的问题 2.如果在手机终端修改不了(我的就是怎么也改不了),可 ...

  8. ubuntu14.04 安装Kdevelop 进行ROS开发

    1. 安装gcc sudo apt-get build-dep gcc sudo apt-get install build-essential  2. 安装Kdevelop sudo apt-get ...

  9. Docker容器命令

    ★根本前提:本地主机有镜像才能创建容器 ⒈docker run [Options] 镜像名称或镜像ID [Command] [Arg...] 用途:利用镜像创建容器实例 Options说明(常用):注 ...

  10. ReLu、LeakyRelu、PReLu(转载)

    转载链接:http://blog.csdn.net/cham_3/article/details/56049205