骨头的诱惑

在看之前,先把他关注了,谢谢iwowo 的个人中心 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

代码思路主要来自他(说实话,代码我也会)++但是,思路和代码还是不一样的,所以++

++快去关注啊!!!++

++所以,关注我的同时,一定要关注他!!!!!!!!++

++禁止机惨!!++

题目描述

题目描述

在一个迷宫里面有一只小狗发现了一根骨头,现在他准备逃出迷宫,迷宫中只有一个地方有门可以出去,而且这个门只会在T秒的时候打开,开了之后下一时刻就会关闭。每移动一步要花费1秒,规定不能停留在某一个位置上,即走到一个位置要立刻前往下一个位置。每个位置不能重复走。假设小狗很聪明,它能成功逃出迷宫么?

输入格式

第一行输入三个整数𝑛,𝑚,𝑇n,m,T,表示迷宫的尺寸以及门打开的时间

接下来𝑛n行每行𝑚m个字符,表示迷宫中每一个位置上的信息。

'X': 表示墙,不能进入

'S': 小狗现在的位置

'D': 门

'.': 空地

输出格式

根据能否成功逃离,输出"YES" 或者"NO"

样例输入1

复制代码
4 4 5
S.X.
..X. 
..XD 
....

样例输出

NO

样例输入2

复制代码
3 4 5 
S.X. 
..X. 
...D

样例输出2

YES

标注tj是我 标注iwowo是某个神犇

复制代码
#include<bits/stdc++.h>//tj
using namespace std;//tj
int dx[4]={0,0,-1,1};//tj+iwo
int dy[4]={1,-1,0,0};//tj+iwo
int T,n,m;
char mp[11][45];//tj(暗藏玄机)
bool vis[14][19];//iwo(暗藏玄机)
int sx,sy,fx,fy;//iwowo+tj
void dfs(int x,int y,int t){//iwowo
 // cout<<1;
  if(x==fx&&y==fy&&t==T){//iwowo//时间和位置都对
    cout<<"YES\n";//对的
    exit(0);//tj+iwowo//结束全部程序,在任何函数内都可以瞬间停止程序 *此注释由iwowo提供
  }

  vis[x][y]=1;//iwowo
  for(int i=0;i<4;i++){
    int nx=x+dx[i],ny=y+dy[i];//tj//现在的地方
    if(nx>n||ny>m||nx<1||ny<1||mp[nx][ny]=='X'||vis[nx][ny]==1){//iwowo
      continue;//tj 停止这次循环
      //条件 tj(本人):1,2,5   iwowo:3,4,5,6
    }
    
    dfs(nx,ny,t+1);//iwowo   考虑下一秒的情况,深入搜索  *此注释由iwowo提供
  }
  vis[x][y]=0;//iwowo    回溯
  
}
int main(){

  
  cin>>n>>m>>T;//tj
  for(int i=1;i<=n;i++){//iwowo+tj  迷宫题从1开始
    for(int j=1;j<=m;j++){//iwowo+tj
      cin>>mp[i][j];//tj
      //cout<<0+j;
      if(mp[i][j]=='S'){//tj+iwowo//是S标注起点位置
        sx=i;
        sy=j;
        //cout<<sx<<' '<<sy<<endl;
      }
      if(mp[i][j]=='D'){//tj+iwowo//是D标注重点位置
        fx=i;
        fy=j;
        //cout<<fx<<' '<<fy<<endl;
      }
    }
  }
  
  dfs(sx,sy,0);//iwowo
  cout<<"NO";//tj
  return 0;
}

约定:

1<𝑛,𝑚<7, 0<𝑇<50

提示:

相关推荐
Tisfy12 分钟前
LeetCode 3090.每个字符最多出现两次的最长子字符串:二重循环 / 滑动窗口
算法·leetcode·字符串·题解·模拟·双指针·滑动窗口
-dzk-12 分钟前
【技巧】LC 136.只出现一次的数字
算法·异或
专注仿真1 小时前
问答大模型技术方案算法实现-RAPTOR树构建算法与BEG集成使用
python·算法
zlinear数据采集卡2 小时前
数据采集卡从入门到精通(10):采样率与分辨率的核心关系——反比律、架构分布与过采样
arm开发·嵌入式硬件·算法·fpga开发·架构·开源
GeekZHR3 小时前
C语言指针进阶补充6:动态内存管理、mem系列内存函数、复杂指针声明,一次补齐指针的“三大盲区“
java·c语言·算法·指针
Herbert_hwt3 小时前
第七章 Java深入理解枚举类型
java·开发语言·算法
.道阻且长.3 小时前
8.LeetCode算法习题讲解--滑动窗口--长度最小的子数组
算法·leetcode·职场和发展
(❁´◡`❁)Jimmy(❁´◡`❁)3 小时前
P1156 [USACO01OPEN] 垃圾陷阱
算法·动态规划
疯狂打码的少年4 小时前
【数据结构】二叉排序树(BST)的定义与操作
数据结构·笔记·算法
lally.4 小时前
整数等差数列超图中的三个非微扰现象
算法