你经历过绝望吗?两次!

2023-11-05 06:08
文章标签 经历 两次 绝望

本文主要是介绍你经历过绝望吗?两次!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2个注意,
一个是优先级重写。利用,里面没有引用,然后是左大于右就排在后面。
bool operator<(mynode ne1, mynode ne2)
{
return ne1.cost > ne2.cost;
}
二是容器的元素每次都应该清除。

#include <iostream>
#include <cmath>
#include<set>
#include<string.h>
#include <queue>
#include <tuple>
#define scanf scanf_s
#define inf 0x3f3f3f3f
#define LL long long
#define mod 100000007
using namespace std;struct mynode {int cost, x, y;
};
bool operator<(mynode ne1, mynode ne2)//参数也可以为引用,值传递
{return ne1.cost > ne2.cost;
}
int main() {int m, n, T, cost, x, y;int vis[104][104];int way[][2] = { { 0,  1 },{ 1,  0 },{ -1, 0 },{ 0,  -1 } };mynode zhu;char c;char A[105][105];scanf("%d", &T);while (T--) {priority_queue<mynode> q;memset(vis, 0, sizeof(vis));int flag = 0;scanf("%d%d", &n, &m);for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> A[i][j];if (A[i][j] == '@') {zhu = mynode{ 0, i, j };vis[i][j] = 1;}}}for (q.push(zhu); !q.empty();q.pop()) {mynode now = q.top();cost = now.cost;if (now.x <= 0 || n - 1 <= now.x || now.y <= 0 || m - 1 <= now.y) {flag = 1;cout << cost << endl;break;}                  for (int i = 0; i < 4; i++) {x = now.x; y = now.y;x += way[i][0];y += way[i][1];if (!vis[x][y] && A[x][y] != '#') {if (A[x][y] == '*') {mynode a2 = mynode{ cost + 1,x,y };vis[x][y] = 1;q.push(a2);}else if(A[x][y]=='.'){mynode a2 = mynode{ cost ,x,y };vis[x][y] = 1;q.push(a2);}}}}if (!flag)puts("-1");}
}

这篇关于你经历过绝望吗?两次!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/347928

相关文章

hdu1254(嵌套bfs,两次bfs)

/*第一次做这种题感觉很有压力,思路还是有点混乱,总是wa,改了好多次才ac的思路:把箱子的移动当做第一层bfs,队列节点要用到当前箱子坐标(x,y),走的次数step,当前人的weizhi(man_x,man_y),要判断人能否将箱子推到某点时要嵌套第二层bfs(人的移动);代码如下:

CRtmpServer转推流到Nginx Rtmp及SRS(SimpleRtmpServer)的经历

转自:http://blog.csdn.net/fengyily/article/details/42557841 本人一直用的是CRtmpServer服务,在CRtmpServer服务中根据自已的想法也加入了许多功能,如通过http接口来加载配置等,苦于不支持HLS,自已添加ts分片水平又有限,思来想去决定借助SimpleRtmpServer的HLS功能。说干就干,马上查找相关资源

腾讯社招面试经历

前提:本人2011年毕业于一个普通本科,工作不到2年。   15号晚上7点多,正在炒菜做饭,腾讯忽然打电话来问我对他们的Linux C++的职位是否感兴趣,我表达了我感兴趣之后,就开始了一段简短的电话面试,电话面试主要内容:C++和TCP socket通信的一些基础知识。之后就问我一道算法题:10亿个整数,随机生成,可重复,求最大的前1万个。当时我一下子就蒙了,没反应过来,何况我还正在烧

【对线面试官】阿里面试经历,有些人走一步看一步就挂了

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 这个其实说来就话长了。是小编曾经面试阿里妈妈的经历。 这次面试最终在HR面挂掉,以至于后面回忆起来,仍然是一桩美谈。 这次面试长达一个月之久,共经历了4轮技术面,1轮HR。前四轮面试过关斩将,简直开了挂一般,跟面试官正面对线,丝毫不虚。听我一一道来。 第一轮 第一面是电话面试,晚上10点半。我特么一脸问号?你们这是刚加完班吧?事实上我

『 Spark 』14. 一次 Spark SQL 性能提升10倍的经历

写在前面 本系列是综合了自己在学习spark过程中的理解记录 + 对参考文章中的一些理解 + 个人实践spark过程中的一些心得而来。写这样一个系列仅仅是为了梳理个人学习spark的笔记记录,所以一切以能够理解为主,没有必要的细节就不会记录了,而且文中有时候会出现英文原版文档,只要不影响理解,都不翻译了。若想深入了解,最好阅读参考文章和官方文档。 其次,本系列是基于目前最新的 spark 1.6

浏览器输入url到渲染完成经历了那些内容

问: 浏览器输入url到渲染完成经历了那些内容 回答: 从浏览器输入 URL 到页面渲染完成的过程涉及多个步骤,每个步骤都涉及特定的网络和计算机科学技术。以下是这一过程的基本流程: URL 解析: 用户在浏览器地址栏输入 URL(统一资源定位符)。浏览器解析 URL,分解成协议(如 HTTP/HTTPS)、域名、路径、查询参数等。 DNS 查询: 浏览器检查本地缓存是否有该域名的 IP

一个本科-程序员的蜕变经历,有你的影子吗?

http://www.toutiao.com/a6350858700840026369/?tt_from=mobile_qq&utm_campaign=client_share&app=explore_article&utm_source=mobile_qq&iid=5840657922&utm_medium=toutiao_ios

那些年,程序员经历过的七大陷阱

http://www.toutiao.com/i6350896312036098562/?tt_from=mobile_qq&utm_campaign=client_share&app=news_article&utm_source=mobile_qq&iid=6176041275&utm_medium=toutiao_ios

一次Ajax查错的经历(html规范)

我有一朋友做网站,用jQuery的Ajax方法从后端载入一段HTML代码然后动态插入到网页的Div元件中。这个东西太普遍了。jQuery强大的load方法可以完成这个事情。朋友的代码是这么写的: vartab = jQuery("#dynamic_tab");varurl = "/list_ajax/";tab.load(url); 简单到不能再简单了。在Chrome,Fir

仓储管理这些坑,你有没有经历过?

在现代企业管理中,仓储管理常常成为令管理者头疼的一大难题。库存混乱、出入库效率低、空间利用率不高、货物损坏与丢失频发,这些问题不仅让日常工作变得复杂,还直接影响到企业的整体运营效率。每次盘点、找货、处理库存积压与短缺,耗费的不仅是时间和人力,更是企业发展的宝贵机会。 在仓储管理中,这些问题,你是不是已经忍了很久? 1、库存混乱 货品堆积如山,但每次盘点都像是在解谜,找不到需要的物料,