HDU 1241 Rescue ——————BFS , 优先队列

VMware ESXi +DELL虚拟化存储磁盘容量处于紧急状态问题的处理 1、环境介绍 exsi server两台(DELL R730 ): 192.168.3.206 VMware EXSi6.5 192.168.3.207 VMware EXSi6.5 磁盘存储柜一台(DELL SC2000): 192.168.3.208 2、故障处理 由于前期规划的卷空间过大,虚拟机文件逐年增大以后,造成卷的磁盘占用过与整个磁盘空间的容量,虚拟化平台可用容量爆掉,DELL SC2000自动切换到紧急状态,禁止所有磁盘I/O,exsi主机上的虚拟机无法开机 首先,安装 阅读详情

Rescue

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 37778    Accepted Submission(s): 13101


Problem Description
Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison.

Angel’s friends want to save Angel. Their task is: approach Angel. We assume that “approach Angel” is to get to the position where Angel stays. When there’s a guard in the grid, we must kill him (or her?) to move into the grid. We assume that we moving up, down, right, left takes us 1 unit time, and killing a guard takes 1 unit time, too. And we are strong enough to kill all the guards.

You have to calculate the minimal time to approach Angel. (We can move only UP, DOWN, LEFT and RIGHT, to the neighbor grid within bound, of course.)
 

Input
First line contains two integers stand for N and M.

Then N lines follows, every line has M characters. “.” stands for road, “a” stands for Angel, and “r” stands for each of Angel’s friend.

Process to the end of the file.
 

Output
For each test case, your program should output a single integer, standing for the minimal time needed. If such a number does no exist, you should output a line containing “Poor ANGEL has to stay in the prison all his life.”
 

Sample Input

7 8
#.#####.
#.a#..r.
#..#x…
..#..#.#
#…##..
.#……
……..
 

Sample Output
13


比较乱,不过还能看。

#include<bits/stdc++.h>
using namespace std;
const int MAXN=202;
char str[MAXN][MAXN];
bool vis[MAXN][MAXN];
int d[4][2]={1,0, -1,0, 0,1, 0,-1};
int n,m,cnt,stx,sty;
int k;
struct node{
    int x,y,step;
    node(){};
    node(int _x,int _y,int _step)
    {
        x=_x; y=_y; step=_step;
    }
    bool operator <(const node &b)const
    {
        return step>b.step;
    }
};

void bfs(int x,int y)
{
    vis[x][y]=1;
    priority_queue<node> que;
    node e1,e2;
    que.push(node(x,y,0));
    while(que.size())
    {
        e1=que.top();
        que.pop();
//        printf("(%d,%d)\n",e.x,e.y);
        if(str[e1.x][e1.y]=='r')
        {
            cnt=e1.step;
            k=1;
            break;
        }
        if(k)   break;
        for(int i=0;i<4;i++)
        {
            e2.x=e1.x+d[i][0];
            e2.y=e1.y+d[i][1];
            e2.step=e1.step;
            int dx=e1.x+d[i][0];
            int dy=e1.y+d[i][1];
            if(!vis[dx][dy] && str[dx][dy]!='#' &&  0 <= dx && dx < n && 0 <= dy && dy <m)
            {
                vis[dx][dy]=1;
                if(str[dx][dy]=='x')    e2.step++;
                e2.step++;
                que.push(e2);
            }
        }
    }
}

int main()
{
    while(~scanf("%d %d",&n,&m))
    {
        memset(vis,0,sizeof(vis));
        for(int i=0;i<n;i++)    scanf("%s",str[i]);
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
            {
                if(str[i][j]=='a')
                {
                    stx=i;
                    sty=j;
                    break;
                }
            }
        cnt=0;
        k=0;
        bfs(stx,sty);
        if(k)   printf("%d\n",cnt);
        else    printf("Poor ANGEL has to stay in the prison all his life.\n");
    }
    return 0;
}
SAP S4业务伙伴(BP)实战指南:从角色分配到数据同步的完整流程 本文详细解析了SAP S4业务伙伴(BP)功能,从基础概念到实战操作,涵盖角色分配、数据同步及常见问题排查。通过BP机制,企业可高效管理客户、供应商等多重身份,实现数据共享和动态切换,显著提升主数据管理效率。特别适合SAP实施顾问和ERP管理员参考。 阅读详情

相关推荐

数码管动态扫描避坑指南:如何用188芯片实现50Hz无闪烁显示?

本文深入解析188数码管动态扫描技术,提供工业级无闪烁显示方案。通过优化轮询扫描机制、硬件电路设计和软件架构,实现50Hz高刷新率显示,解决亮度不均和鬼影问题,适用于医疗设备和工业控制面板等高要求场景。

hhh00的博客 975

广度优先搜索BFS进阶(一):多源BFS、优先队列BFS、双端队列BFS

普通队列BFS:适用于无权图;双端队列BFS:适用于边权为0或1且到每个顶点的边权都相等的带权图;优先队列BFS:适用于边权不为负且到每个顶点的边权都相等的带权图;如果图上到每个顶点的边权不等,则需使用最短路算法。

yuhaomogui的博客 2488

当OTN网络遭遇LOS告警:5个运维老手才知道的故障定位技巧(含CA动作对照表)

本文深入解析OTN网络中LOS告警的实战定位技巧,涵盖光功率深度诊断、模块差异分析及核心的CA动作机制。通过逆向追踪告警流与对照速查表,帮助运维人员快速锁定故障段落,区分硬软故障,并掌握系统健康度评估方法,从而提升排障效率与网络稳定性。

weixin_29266007的博客 551

算法沉淀——队列+宽度优先搜索(BFS)(leetcode真题剖析)

队列 + 宽度优先搜索算法(Queue + BFS)是一种常用于图的遍历的算法,特别适用于求解最短路径或最少步数等问题。该算法通常用于在图中寻找从起点到目标点的最短路径。

立志做一个高产且细节博主 3035

BLHeli_S电调刷Bluejay固件实战:解锁双向DShot与RPM滤波全攻略

本文详细介绍了如何为BLHeli_S电调刷写开源Bluejay固件,以解锁双向DShot协议与RPM滤波等关键功能。内容涵盖硬件兼容性检查、固件刷写全流程、双向DShot启用与OSD报错解决方案,并对48kHz与96kHz PWM频率的选择提供了实战建议,帮助穿越机玩家在不更换硬件的前提下显著提升飞行性能与操控体验。

weixin_29188997的博客 512

使用.NET 免费开源包ViewFaceCore做一个人脸识别并注册的功能,没有比我更全的

本文介绍了一个基于WinForm的免费人脸识别系统实现方案。系统使用AForge和ViewFaceCore库,支持从USB或电脑自带摄像头采集图像,具备人脸注册和快速识别功能。硬件方面仅需普通摄像头,软件依赖多个NuGet包(如AForge.Video、ViewFaceCore等)。界面包含视频显示、图像预览和功能按钮控件,后台采用SQLServer存储用户面部特征数据。核心代码展示了人脸检测、特征提取和多线程处理逻辑,通过ViewFaceCore实现高效识别。系统具有识别速度快、准确率高的特点,适合Win

一个靠“吃代码”长大的程序猿,专治各种“Bug 饥饿症”。 817

最短路径之BFS(宽度优先搜索)+优先队列(Dijkstra算法)c++/c语言

比如,在最开始时a入队,扩展邻节点b,e,d,距离分别为1,9,5,a出队。接着选择距离起点最短的b,再扩展新节点c,距离为5,b出队。接下来最短的是c,扩展新节点g,f,距离为15,11,再判断旧节点e,距离为12,大于e的距离,舍去,c出队。其实BFS(宽度优先搜索)+优先队列我们也可以将其看作是Dijkstra算法,但两者之间还是有些许的区别,当优先队列中的优先级是距离起点的最小值时,那么BFS(宽度优先搜索)+优先队列=Dijkstra算法,我们甚至可以延申出A*算法以及IDA*算法等。

LovelyCat_mm的博客 1623

别再傻傻分不清!5分钟搞懂倾斜摄影里‘地面分辨率’和‘模型精度’到底啥关系

本文深入解析倾斜摄影中‘地面分辨率’与‘模型精度’的关系,帮助读者快速理解两者的本质区别与内在关联。通过实战案例和公式计算,详细说明如何从航飞设计到精度验证全流程控制,避免常见认知误区,并针对不同应用场景提供精度需求建议。

weixin_33700350的博客 477

优先队列BFS

优先队列BFS总结

ZhuRanCheng的博客 797

GEE入门之路(从【初学者】角度,大白话)——附海面风速插值代码

非常初级的GEE入门教程!大白话!有手就行!附海面风速插值代码,克里金插值,时间插值。

weixin_46812066的博客 4086

OpenDataLab 大模型训练数据集下载记录

大模型 训练数据集

u013558123的博客 3341

基于优先队列的BFS——普适化版本BFS

文章目录基于优先队列的BFS——普适化的BFS思想篇:高屋建瓴优先队列与普通队列有什么区别?优先队列=普通队列-先进先出+优先级队列排列部分BFS题目中,我们为什么要使用优先队列?优先队列中,最前列符合条件的元素是否就是答案?怎么区分要用优先队列BFS,还是常规BFS?如何创建符合题意的优先队列?代码篇:思出码随创建优先队列の代码定义优先队列的排列顺序の代码基础操作の代码题目篇:相关典例拯救丁爸——典型优先队列BFS迷宫问题参考 基于优先队列的BFS——普适化的BFS ​ 前言:对于BFS的最少值的问题

LnJJF的博客 1990

【LLC快速上手系列】如何在LLC谐振里优雅地调死区时间?

用示波器死盯Vds波形,找到ZVS临界点;别听“经验值”,亲自调才准;死区时间并非越短越好,也不是越长越稳,而是要“刚刚好”;用热成像看MOSFET温升变化,ZVS调好了,温度马上掉2~5℃;轻载难ZVS?适当提升频率 or 降低Lr可破!

weixin_43199439的博客 493

HDU 1242 rescue (优先队列模板题)

Rescue Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24205Accepted Submission(s): 8537 Problem Description Angel was caught by the MOLI...

weixin_30377461的博客 91

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

BFS、双向BFS

vijos 1360 八数码问题 背景 Yours和zero在研究A*启发式算法.拿到一道经典的A*问题,但是他们不会做,请你帮他们. 描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。 格式 输入格式 输入初试状态,一行九个数字,空格用0...

nameofcsdn的博客 5026

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

hdu oj 1242 Rescue

Rescue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14222 Accepted Submission(s): 5164 Problem Description Angel was caught by the MOLI

尘飞——Data Scientist 812

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

50道hdu基础搜索总结

Dfs: 大部分是直接递归枚举,即求满足约束条件下的解,虽不用剪枝,但也需要代码能力。 练习递归枚举的题目: 1241 Oil Deposits (dfs的连通块个数) 1016 Prime Ring Problem 1584 蜘蛛牌(简单dfs,简单的剪枝,还有人用DP做(???)) 1426 Sudoku Killer(练习...

weixin_30375427的博客 361

广度优先搜索(BFS)算法详解

int x;// 当前点的x坐标int y;// 当前点的y坐标int step;// 从起点到当前点的步数}P;N和M定义了数组的最大尺寸P结构体表示迷宫中的一个点,包含坐标和到达该点的步数。

不语的博客 4424

2021-09-02

103. 二叉树的锯齿形层序遍历 用了俩个队列和一个栈 class Solution { public List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<List<Integer>> list=new ArrayList<>(); Queue<TreeNode> queue1=new LinkedList<>();

wanabe3的博客 139

BFS&迪克斯特拉&优先队列

无向图------------&gt;(有权)加权图; 计算单源点到任意点的最短路长: 分类: 1.各个点到邻近点距离都相同:纯BFS 或 迪克斯特拉 2.存在某一点到临近点距离不同:               一、迪克斯特拉(BFS+贪心+张弛, 优化方法:堆排序:O(E+nlog2 n))               二、SPFA(没有张弛操作,时间复杂度:O(VE)) ###...

Ivanzn的博客 541

算法学习(19)—— 队列与 BFS

bfs又称宽搜,全称是“”,然后就是关于bfs的三个说法:“宽度优先搜索”,“宽度优先遍历”,“层序遍历”,这三个都是同一个东西,前面我们介绍了大量的深度优先遍历的题目已经衍生算法,对这类比较熟悉的纯队列的题目很少很少,队列这种数据结构大部分都是用来服务BFS算法的,所以我们就把BFS和队列放一起来介绍。和深搜一样,宽搜不仅仅只应用在树形结构中,这篇文章只列举了部分在树中的应用,先熟悉下BFS算法,后面会再展开细讲。

aaqq800520的博客 1137

BFS(图论)

BFS 全称是,中文名是宽度优先搜索,也叫广度优先搜索。是图上最基础、最重要的搜索算法之一。所谓宽度优先。就是每次都尝试访问同一层的节点。如果同一层都访问完了,再访问下一层。这样做的结果是,BFS 算法找到的路径是从起点开始的合法路径。换言之,这条路径所包含的边数最小。在 BFS 结束时,每个节点都是通过从起点到该点的最短路径访问的。算法过程可以看做是图上火苗传播的过程:最开始只有起点着火了,在每一时刻,有火的节点都向它相邻的所有节点传播火苗。

w_w_wwwww的博客 1085

BFS的优先队列优化

使用二元组(city,fuel)表示每个状态,其中city为城市编号,fuel为邮箱中剩余的油量,使用d[city][fuel]表示最少的费用。对于第一次询问:可以选择在0号点加满油,此时花费了100元,然后走到1号点,加7单位的油,花费70元,然后走到2号点,再走到3号点,到达目的地。然后输入K行,每行表示一次询问,每次询问包含三个整数q,w,e,为一辆容量为q的车子从w到e需最少需要花费多少钱。然后输入M行,每行包含三个数字a,b,c,表示从a城市到b城市存在一条油耗为c的道路。

S05251_1的博客 271

ACM记忆化DFS与基于优先队列的BFS

那么就要。

JUSTINLEECEO的博客 866

BFS+优先队列解决POJ上的拯救行动问题

描述 公主被恶人抓走,被关押在牢房的某个地方。牢房用N*M (N, M <= 200)的矩阵来表示。矩阵中的每项可以代表道路(@)、墙壁(#)、和守卫(x)。 英勇的骑士(r)决定孤身一人去拯救公主(a)。我们假设拯救成功的表示是“骑士到达了公主所在的位置”。由于在通往公主所在位置的道路中可能遇到守卫,骑士一旦遇到守卫,必须杀死守卫才能继续前进。 现假设骑士可以向上、下、左、右四个方向...

ls8023yx的博客 608

优先队列 + BFS

题目描述 乍一看是BFS最短路径,但仔细思考下,发现最短路径不一定是时间最短的,所以需要求最短时间,用优先队列去存储状态。 #include<bits/stdc++.h> using namespace std; int n,m,t,vis[105][105]; char arr[105][105]; int sx,sy,ex,ey,ans ; struct node{ int x,y,num; friend bool operator < (node x,node y){

qz的博客 287
上一篇: HDU 2011 How Many Equations Can You Find ——————DFS
下一篇: HDU 1372 Knight Moves——————BFS , 优先队列
陶鸿杰
博客等级 码龄9年 93粉丝 298原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值