问题 H: 逃出迷宫
问题 H: 逃出迷宫
时间限制: 1 Sec 内存限制: 128 MB
提交: 6 解决: 3
[提交][状态][讨论版]
题目描述
现在要求你算出起点位置到终点位置的最短时间,其中通过'.'时,消耗1个单位时间,通过'x'消耗两个单位时间。
输入
输出
样例输入
7 8 #.#####. #.a#..r. #..#x... ..#..#.# #...##.. .#...... ........
样例输出
13
提示
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<queue>
using namespace std;
char a[500][500];
struct node
{int x,y,step;friend bool operator<(node a,node b){return a.step>b.step;//“>"是步数少的先出队,"<"步数大的先出队}
}s,e;
int n,m;
int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
void bfs()
{priority_queue<node>q;node temp,t;q.push(s);a[s.x][s.y]='#';while(!q.empty()){temp=q.top();q.pop();if(temp.x==e.x&&temp.y==e.y){cout<<temp.step<<endl;return;}for(int i=0;i<4;i++){t.x=temp.x+dir[i][0];t.y=temp.y+dir[i][1];if(t.x>=0&&t.x<n&&t.y>=0&&t.y<m&&a[t.x][t.y]!='#')//满足条件的进队,步数少的先出队,所以要用优先队列{if(a[t.x][t.y]=='x')t.step=temp.step+2;elset.step=temp.step+1;a[t.x][t.y]='#';q.push(t);}}}cout<<"Oh No!"<<endl;
}
int main()
{while(scanf("%d%d",&n,&m)!=EOF){int i,j;for(i=0;i<n;i++)for(j=0;j<m;j++){cin>>a[i][j];if(a[i][j]=='a'){s.x=i;s.y=j;s.step=0;}if(a[i][j]=='r'){e.x=i;e.y=j;}}bfs();}
}
转载于:https://www.cnblogs.com/xunalove/p/6809206.html
问题 H: 逃出迷宫相关推荐
- CSUST选拔赛题解之-Problem H: 逃出监狱
Problem H: 逃出监狱 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 116 Solved: 42 [Submit][Status][Web ...
- 动画演示深度优先算法搜寻逃出迷宫的路径
深度优先算法(DFS 算法)是什么? 寻找起始节点与目标节点之间路径的算法,常用于搜索逃出迷宫的路径.主要思想是,从入口开始,依次搜寻周围可能的节点坐标,但不会重复经过同一个节点,且不能通过障碍节点. ...
- 老鼠逃出迷宫(递归)
如图一样的迷宫,红色部分代表有障碍物,老鼠从(1,1)坐标开始出发,坐标(6,5)代表迷宫出口,求出老鼠的逃离路径. /*老鼠出迷宫问题*/ public class P225MiGong {//先用 ...
- 逃出迷宫完整算法C++
迷宫图案,白色代表通道,黑色代表墙. 迷宫入口坐标(1,1),出口坐标(8,8) 0 1 2 3 4 5 6 7 8 9 0■■■■■■■■■■ 1■□□■□□□■□■ 2■□□■□ ...
- java实现老鼠出迷宫
如图一只小老鼠从起点通过一些障碍到达终点,四周的墙壁不能通行,求通过计算得出迷宫路径,使老鼠成功逃出迷宫 算法设计 ①分而治之思想: 首先将老鼠出迷宫问题分成两部分求解,第一,迷宫的设计,第二,迷宫的 ...
- 递归回溯——老鼠出迷宫
目录 前言 设计思路 绘制地图 寻找出路 绘制路线 总结 前言 这是一道关于递归回溯的经典题目,在布下障碍的迷宫中,为老鼠朋友找到一条可以逃出困境的路线,本文将为大家详细讲解如何运行递归的方法让老鼠走 ...
- Java-老鼠出迷宫(递归)
文章目录 问题描述 一.解题思想 二.编写代码 1.创建迷宫 2.写出findway方法 3.整体代码测试如下 三.总结 问题描述 一只小老鼠从起点通过一些障碍到达终点,四周的墙壁不能通行,请设计出迷 ...
- 逃出你的肖申克(二):仁者见仁智者见智?从视觉错觉到偏见
<Making Up the Mind>上讲了这么一个简单但深刻的实验: 我们看到这张图片的第一反应是:5个凸的按钮,1个凹的按钮. 现在仅仅将图片上下颠倒一下: 在我们眼中立即就变成了: ...
- C++实践 走出迷宫
c和c++学了快一个学期了,感觉也编不出什么像样的程序,不是解决数学问题就是打印图形,感觉没什么劲.今天找了一个有趣的题目来做做,这是imooc上老师布置的一个案例.先不管算法好坏,来实现一个人走出迷 ...
最新文章
- SAP UI5 log level
- 23种设计模式 -比喻
- Spring MVC如何测试Controller(使用springmvc mock测试)
- 一生温暖纯良,不舍爱与自由
- java方法介绍_Java 方法介绍
- Java 18 新特性
- 字符点击效果实现——YYLabel和YYTextHighlight
- 韩国NF功放芯片在音频音响领域的应用
- 2021-11-24【数据结构练习题】【二叉搜索树的插入删除】
- 微课--Python使用UDP协议实现局域网内屏幕广播(40分钟)
- HashMap的fast-fail和ConcurrentHashMap的fail-safe实例
- JS屏蔽功能类(屏蔽F5,退格键,空格键......
- 合肥通用职业技术学院计算机专业,2020年安徽高考专科提前批及大专录取时间及录取结果查询...
- php artisan tanker,Artisan 开发
- 你是我的四月天[转自天涯]
- Swi-Prolog 数值约束
- medoo update mysql_更新方法:Update API-Medoo使用指南
- IIS Express 使用 临时建站调试,功能短小精悍。
- 【微信小程序】background-image设置背景图片
- 服务器TIME_WAIT过多