有两点需要注意,第一点就是,题意是指在第T秒时门才打开,并不是越早到门口就能越早出去,而是只要存在指定长的路径即可以出去。
第二点,每次深搜发现答案不符都必须将点重新初始化。
#include<iostream>
#include<utility>
#define INF 10000
using namespace std;
char maze[100][7];
int d[100][7];
int n,m,t,start_i,start_j,end_i,end_j;
int dx[]= {0,1,0,-1},dy[]= {1,0,-1,0};
bool dfs(int i,int j);
int main()
{
    while(cin>>n>>m>>t && n &&m
            && t)
    {
        for(int i=0; i<n; i++)
            for(int j=0; j<m; j++)
            {
                cin>>maze[i][j];
                if(maze[i][j]=='S')
                {
                    start_i=i;
                    start_j=j;
                }
                if(maze[i][j]=='D')
                {
                    end_i=i;
                    end_j=j;
                }
            }
        for(int i=0; i<n; i++)
            for(int j=0; j<m; j++)
                d[i][j]=INF;
        d[start_i][start_j]=0;
        if(dfs(start_i,start_j))
            cout<<"YES"<<endl;
        else
            cout<<"NO"<<endl;
    }
    return 0;
}
bool dfs(int i,int j)
{
    if(i==end_i && j==end_j)
    {
        if(d[i][j]==t)
        {
            d[i][j]=INF;
            return true;
        }
        else
        {
            d[i][j]=INF;
            return false;
        }
    }
    else
    {
        for(int k=0; k<4; k++)
        {
            int nx=dx[k]+i,ny=dy[k]+j;
            if( nx>=0 &&nx < n &&ny>=0 && ny<m && (d[nx][ny]==INF) &&((maze[nx][ny]=='.')||(maze[nx][ny]=='D')))
            {
                    d[nx][ny]=d[i][j]+1;
                    if(dfs(nx,ny))
                    {
                        d[nx][ny]=INF;
                        return true;
                    }
                    else
                        d[nx][ny]=INF;
            }
        }
        d[i][j]=INF;
        return false;
    }
}
 
 
 
 
 
 
 

HDOJ--1010题C++的更多相关文章

  1. HDOJ.1010 Tempter of the Bone (DFS)

    Tempter of the Bone [从零开始DFS(1)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HDOJ.1010 Tem ...

  2. HDU 4768 Flyer (2013长春网络赛1010题,二分)

    Flyer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. HDU 4664 Triangulation(2013多校6 1010题,博弈)

    Triangulation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  4. HDOJ 1004题 Let the Balloon Rise strcmp()函数

    Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...

  5. HDOJ 1312题Red and Black

    Red and Black Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...

  6. HDOJ 1013题Digital Roots 大数,9余数定理

    Problem Description The digital root of a positive integer is found by summing the digits of the int ...

  7. hdoj 1010 Tempter of the Bone【dfs查找能否在规定步数时从起点到达终点】【奇偶剪枝】

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

  8. HDU 4747 Mex (2013杭州网络赛1010题,线段树)

    Mex Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submis ...

  9. HDU 4705 Y (2013多校10,1010题,简单树形DP)

    Y Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submiss ...

  10. HDU 4685 Prince and Princess (2013多校8 1010题 二分匹配+强连通)

    Prince and Princess Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Othe ...

随机推荐

  1. 20203412马畅若 实验二《Python程序设计》实验报告

    20203412马畅若    实验二<Python程序设计>实验报告 课程:<Python程序设计>班级: 2034姓名:马畅若学号:20203412实验教师:王志强实验日期: ...

  2. Java多线程编程技术方案原理

    一 ,多线程相关的一些概念 1,线程和进程: 线程指的是进程中一个单一顺序的控制流, 进程中可以并发多个线程,每条线程并行执行不同的任务,被认为是一个计算资源的集合.进程不能被任务是一个应用,因为有些 ...

  3. 智能插座的制作(esp01,继电器,arduino)

    前言: 现在小学信息技术的教材中已经出现了物联网的内容,比如泰山版小学信息技术教材第六册第二单元第一课就是用手机控制智能插座.就起了自己动手制作一个的心思,通过到网上浏览制作智能插座的文章后,有了基本 ...

  4. 掌控安全学院SQL注入靶场

    注入的本质:用户输入的字符被带入数据库中并且执行了 靶场地址:http://inject2.lab.aqlab.cn/ 第六关:http://inject2.lab.aqlab.cn/Pass-06/ ...

  5. UART4模板

    #define UART4_Bps 9600 #define UART4_RecSize 20 uchar UART4_RecData[UART4_RecSize];uchar UART4_Loc; ...

  6. ubuntu系统更换源和apt命令参数

    一:问题概述 ubuntu,我们在使用apt新装软件的时候,会使用官方的网站去下载软件,但是会因为国内的转接点太多,而导致下载的速度非常慢 ,我们可以通过换成一些中间的节点来进行下载,比如阿里源,中科 ...

  7. ERA5气压层数据驱动WRF的一些问题

    感谢Dawn的建议,兰溪之水的WRF教程 参考了一些经验,并结合实际后,成功用ERA5驱动WRF.实际上,用ERA5数据驱动WRF的方法和用ERA-Interim 数据驱动WRF极其类似. 总结几点是 ...

  8. k8s入门_label标签、nodeSelector

    什么是label Label以key/value键值对的形式附加到任何对象上,如Pod,Service,Node, RC(ReplicationController)/RS(ReplicaSet)等. ...

  9. win10家庭版vmwarework启动蓝屏

    最终升级到vmwarework16.2.5解决 据说17支持win11 再出问题直接上vm17了

  10. 好用的天气插件www.tianqi.com/plugin/

    1.好用的天气插件https://www.tianqi.com/plugin/ 根据访问IP地址可以判断当地的天气,生成天气预报信息放到页面上. 2.天气预报接口: import requests U ...