2849: 【广度优先】【优先队列】游戏装备

 题目描述

小未在玩一款武侠游戏,游戏里PK不仅要有高超的操作和智慧,还要有很牛的装备。现在他进入了一个副本,副本里面有极品15星的装备宝箱,但是从副本入口到宝箱有很多条路,当然不可能轻轻松松的拿到极品装备。一路上会随机刷出各种攻击力很强的怪物。它会攻击小未的角色,当然也必须打败它才能通过,这个过程角色的血量HP会减少(血量不会回复),预先给你副本的地图,请你帮小未计算一下能不能拿到极品装备。

注意:刚进入副本时角色是满血的,中途没有任何回血的措施,在过程中血量hp必需>0,不然副本结束(即拿不到极品装备)。

输入

输入一共有 n+k+2 行,
第一行依次为 n, m, k, H,分别表示副本行列数,怪物数,角色的满血血量。其中 n≤100,m≤100, k≤10, H≤200。
第二行四个整数,表示副本入口坐标和宝箱所在坐标。数据保证起点和终点所在的格子都是 空的。
接下来 n 行,每行一个长度为 m 的字符串,表示副本地图。‘.’表示可走,#表 示为不可走,A-Z 的字符表示怪物种类
接下来 k 行
接下来的第 1 行,一个数表示 A 怪物会使角色扣多少血;
接下来的第 2 行,一个数表示 B 怪物会使角色扣多少血;
……
接下来的第 k 行...
以此类推,扣的血量小于等于 200。

输出

输出共一行,表示到达终点最后最多剩下多少血。如果不能拿到装备,则输出game over

样例输入

5 5 2 15
1 1 5 4
....A
####.
.....
###B#
.....
9
3

样例输出

3

Code:

#include<bits/stdc++.h>
using namespace std;
char mp[205][205];
int n,m,k,h;
int ax,ay,bx,by;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
int a[250];
struct love{int x,y;int xueliang;friend bool operator < (love a,love b){return a.xueliang<b.xueliang;}
};
int bfs(int nx,int ny,int step){priority_queue <love> q;love first,next;first.x=nx;first.y=ny;first.xueliang=step;q.push(first);while(!q.empty()){first=q.top();q.pop();for(int i=0;i<4;i++){int fx=first.x+dx[i];int fy=first.y+dy[i];if(fx==bx&&fy==by){return first.xueliang;}if(fx>=1&&fx<=n&&fy>=1&&fy<=m&&mp[fx][fy]!='#'){if(mp[fx][fy]>='A'&&mp[fx][fy]<='Z'){next.xueliang=first.xueliang-a[mp[fx][fy]-'A'];}else{next.xueliang=first.xueliang;}next.x=fx;next.y=fy;mp[next.x][next.y]='#';q.push(next);}}}return -1;
}
int main(){cin>>n>>m>>k>>h;cin>>ax>>ay>>bx>>by;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>mp[i][j];}}for(int i=0;i<k;i++){cin>>a[i];}int ans=bfs(ax,ay,h);if(ans<=0){cout<<"game over";}else{cout<<ans;}return 0;
}
/**************************************************************Problem: 2849User: yangrenruiLanguage: C++Result: 正确Time:20 msMemory:2232 kb
****************************************************************/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/798760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Azure AI 新发布了 9 种更逼真的对话 AI 声音

Azure AI 新发布了 9 种更逼真的对话 AI 声音 0. 引言1. 更逼真的声音示例 0. 引言 Microsoft 一直在寻找使用 AI 提高创造力、生产力和技能的新方法。随着高质量、类人 AI 语音的出现&#xff0c;行业和应用程序正在发生转变&#xff0c;使与设备和服务交互变得更加容易和自然…

qt环境搭建-镜像源安装Qt Creator(5.15.2)以及配置环境变量

前言&#xff1a; 版本&#xff1a;5.15.2 镜像源&#xff1a;ustc与清华 纯小白&#xff0c;找了半天的镜像源安装qtcreator&#xff0c;搞了半天结果安装的是最新的&#xff0c;太新的对小白很不友好&#xff0c;bug比较多&#xff0c;支持的系统也不全&#xff0c;口碑不…

【SCI绘图】【小提琴系列1 python】绘制按分类变量分组的垂直小提琴图

SCI&#xff0c;CCF&#xff0c;EI及核心期刊绘图宝典&#xff0c;爆款持续更新&#xff0c;助力科研&#xff01; 本期分享&#xff1a; 【SCI绘图】【小提琴系列1 python】绘制按分类变量分组的垂直小提琴图&#xff0c;文末附完整代码 小提琴图是一种常用的数据可视化工具…

鸿蒙原生应用已超4000个!

鸿蒙原生应用已超4000个&#xff01; 来自 HarmonyOS 微博近期消息&#xff0c;#鸿蒙千帆起# 重大里程碑&#xff01;目前已有超4000个应用加入鸿蒙生态。从今年1月18日华为宣布首批200多家应用厂商正在加速开发鸿蒙原生应用&#xff0c;到3月底超4000个应用&#xff0c;短短…

约跑小程序源码(asp.net+vue+element++uniapp+sqlserver)

开发语言&#xff1a;c# 框架&#xff1a;后端 asp.net mvc pc管理页面&#xff1a;vueelement 数据库&#xff1a;sqlserver 开发软件&#xff1a;eclipse/myeclipse/idea 浏览器&#xff1a;谷歌浏览器 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X …

PyCharm关闭项目后等待时间长

每次关闭项目或PyCharm时&#xff0c;会显示正在关闭项目&#xff0c;而这个关闭时间很长且不可确定&#xff0c;很浪费我们的时间&#xff0c;不过愿意等的话&#xff0c;倒也是可以。 解决方法 Help -> Find Action -> 查找 Registry -> 禁用 ide.await.scope.comp…

ChatGPT基础(一) GPT的前世今生

文章目录 GPT模型简史GPT系列模型ChatGPT的应用 最近ChatGPT3.5可以免注册使用了&#xff0c;出来刨一波坟 说一说ChatGPT的来源和应用。 GPT模型简史 Generative pre-trained transformers(GPT)生成式预训练转换模型是大语言模型的一种(Large Language Model–>LLM)。它是…

@SpringBootApplication 详解

SpringBootApplication 详解 SpringBootApplication标识在Spring工程的引导启动类上&#xff0c;是Spring最最最重要的注解&#xff0c;封装了如下注解&#xff1a; SpringBootConfiguration&#xff1a;底层封装了Configuration&#xff0c;用于声明当前类也是一个配置类。E…

PPT在线压缩工具推荐

有时候使用邮箱发送邮件时&#xff0c;添加的PPT、Word、PDF文档总会因为过大而转为其他类型的附件发送&#xff0c;不仅上传缓慢&#xff0c;对方查收下载时还有有效期限制&#xff0c;7天或15天后就过期再也无法下载了&#xff0c;有没有什么办法可以压缩PPT等文档&#xff0…

【QT+QGIS跨平台编译】076:【libdxfrw跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、libdxfrw介绍二、QGIS下载三、文件分析四、pro文件五、编译实践一、libdxfrw介绍 libdxfrw是一个用于读取和写入DXF(Drawing Exchange Format)文件的开源C++库。DXF是一种由AutoCAD开发的文件格式,用于存储CAD(计算机辅助设计)图形数据,它…

【大数据】安装hive-3.1.2

1、上传HIVE包到/opt/software目录并解压到/opt/modules/ tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/modules/ 2、修改路径 mv /opt/modules/apache-hive-3.1.2-bin/ /opt/modules/hive 3、将hIVE下的bin目录加入到/etc/profile中 export HIVE_HOME/opt/module…

3d怎么在一块模型上开个孔---模大狮模型网

在进行3D建模时&#xff0c;有时候需要在模型上创建孔&#xff0c;以实现特定的设计需求或功能。无论是为了添加细节&#xff0c;还是为了实现功能性的要求&#xff0c;创建孔都是常见的操作之一。本文将介绍在3D模型上创建孔的几种常用方法&#xff0c;帮助您轻松实现这一目标…

pytorch 演示 tensor并行

pytorch 演示 tensor并行 一.原理二.实现代码 本文演示了tensor并行的原理。如何将二个mlp切分到多张GPU上分别计算自己的分块,最后做一次reduce。 1.为了避免中间数据产生集合通信,A矩阵只能列切分,只计算全部batch*seqlen的部分feature 2.因为上面的步骤每张GPU只有部分featu…

使用dotnet-dump 查找 .net core 3.0 占用CPU 100%的原因解析

这篇文章介绍了3个工具 •dotnet-counters: 实时统计runtime的状况, 包括 CPU、内存、GC、异常等 •dotnet-trace: 类似性能探测器 •dotnet-dump: 程序崩溃时使用该工具 这次使用的是dotnet-dump, 即使程序没有崩溃, 也可以dump程序快照, 用于分析 实验环境 ubuntu-16.04.5-…

「PHP系列」PHP 循环详解

文章目录 一、while - 只要指定的条件成立&#xff0c;则循环执行代码块二、do...while - 首先执行一次代码块&#xff0c;然后在指定的条件成立时重复这个循环三、for - 循环执行代码块指定的次数四、foreach - 根据数组中每个元素来循环代码块五、相关链接 一、while - 只要指…

2024 Tuxera NTFS for Mac功能介绍及如何安装使用

随着科技的发展&#xff0c;我们的日常生活和工作越来越依赖于电子设备。而在这些设备中&#xff0c;Mac由于其出色的稳定性和易用性&#xff0c;成为了许多用户的首选。然而&#xff0c;尽管Mac自带的文件系统已经足够强大&#xff0c;但仍有一些用户希望获得更加高效、稳定的…

Java学习笔记NO.30

1. ArrayList ArrayList是Java中最常用的动态数组实现。它可以自动扩展以容纳任意数量的元素&#xff0c;并提供了快速的随机访问能力。 import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { // 创建 ArrayList Array…

【氮化镓】在轨实验研究辐射对GaN器件的影响

【Pioneering evaluation of GaN transistors in geostationary satellites】 摘要&#xff1a; 这篇论文介绍了一项为期6年的空间实验结果&#xff0c;该实验研究了在地球静止轨道上辐射对氮化镓&#xff08;GaN&#xff09;电子元件的影响。实验使用了四个GaN晶体管&#xf…

如何水出第一篇SCI:SCI发刊历程,从0到1全过程经验分享!!!

如何水出第一篇SCI&#xff1a;SCI发刊历程&#xff0c;从0到1全路程经验分享&#xff01;&#xff01;&#xff01; 详细的改进教程以及源码&#xff0c;戳这&#xff01;戳这&#xff01;&#xff01;戳这&#xff01;&#xff01;&#xff01;B站&#xff1a;Ai学术叫叫兽e…

代码随想录算法训练营第四十天|leetcode139题

一、leetcode第139题 本题是完全背包问题&#xff0c;由于可以重复使用&#xff0c;因此需要先遍历背包再遍历物品&#xff0c;dp[i]的含义是在长度为i处能否从数组中找到元素组成。 具体代码如下&#xff1a; class Solution { public:bool wordBreak(string s, vector<…