G - Millionaire Madness

                    Kattis - millionairemadness

文章大意:就是给你一个n*m的图(int)代表货物的高度),可以上下左右移动一次一格,但是去高度高(比原来的地方)的地方得使用梯子。
求从最左上点到最右下的点,最少要用多长的梯子?。
题目分析:
就是一个bfs
还要用到优先队列,这是个很方便的工具。
就是bfs遍历,每次从队列的首位(top)拿出,然后push部分放的是与前一个点的差值,负的话就取零。
这样一来就能保证从队首取到的是最小的。从而实现了最小,然后到了终点就可以输出了。
放下代码:

 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
typedef  long long ll;
#define INF 0x3f3f3f3f
#include<bits/stdc++.h>
#include <cmath>
#include <math.h>
#define PI 3.1415926535
const int maxn=1e7+1;
void acc_ios()
{ios::sync_with_stdio(false);cin.tie(0);
}
struct node
{int x,y;ll val;bool operator<(const node &a)const{return a.val<val;}
};
int nextx[5]={0,0,1,-1};
int nexty[5]={1,-1,0,0};
int a[1010][1010];
int vis[1010][1010];
int n,m;
ll ans;
void bfs()
{memset(vis,0,sizeof(vis));priority_queue<node>Q;Q.push((node){0,0,0});while(!Q.empty()){node k=Q.top();Q.pop();if(vis[k.x][k.y]) continue;ans=max(ans,k.val);vis[k.x][k.y]=1;if(k.x==n-1&&k.y==m-1){return ;}for(int i=0;i<4;i++){int nx=k.x+nextx[i];int ny=k.y+nexty[i];if(nx<0||nx>=n||ny<0||ny>=m) continue;if(vis[nx][ny]){continue;}Q.push((node){nx,ny,max(0,a[nx][ny]-a[k.x][k.y])});}}}int main(){acc_ios();ans=0;cin>>n>>m;for(int i=0;i<n;i++){for(int j=0;j<m;j++){cin>>a[i][j];}}bfs();cout<<ans<<endl;return 0;}
```cpp
在这里插入代码片

关于优先队列在图中的应用G - Millionaire Madness Kattis - millionairemadness相关推荐

  1. G - Millionaire Madness(bfs+优先队列)

    题目:https://vjudge.z180.cn/contest/423164#problem/G 题意:n*m的矩阵,每个点有一个高度,从(1,1)走到(n,m),若这个点比下一个点小,拿梯子补上 ...

  2. 获得有向无环图中起点到终点的所有路径_力扣1514——概率最大的路径

    本题主要和图的遍历求解最短路径相关,可以用 Dijkstra 或者 Bellman-Ford 算法进行解决. 原题 给你一个由 n 个节点(下标从 0 开始)组成的无向加权图,该图由一个描述边的列表组 ...

  3. 图中异色点对最短距离(最小生成树+线段树)

    problem 给定一个 nnn 个点,mmm 条边的无向连通图,图有边权,每个点有一个颜色. 有 qqq 次操作,每次操作可更改某一个点颜色. 求每次操作后图中不同颜色点之间的最短距离. 若图中点颜 ...

  4. 综述|深度学习在SLAM定位与建图中的应用(近250篇参考文献)

    作者丨Jasper@知乎 编辑丨Realcat  计算机视觉SLAM " 近年来深度学习被广泛应用于定位与建图中.相比于传统的手动建模方法,深度学习提供了一种数据驱动的解决方案,并逐步发展成 ...

  5. R可视化删除ggplot2图中的网格线(Gridlines)

    R可视化删除ggplot2图中的网格线(Gridlines) #删除ggplot2中网格线最容易的方式使用theme_classic()函数: ggplot(df, aes(x=x, y=y)) +g ...

  6. [跟我学UML] UML包图中的包引入和包合并

    缩略语     UIS     UML Infrastructure Specification   UML基础结构规范     UML    Unifed Modeling Language     ...

  7. OpenCV 获取并修改图中的像素点

    使用for循环遍历图中的所有像素点 import cv2 as cv import numpy as np import matplotlib.pyplot as pltimage = np.zero ...

  8. python数学公式代码导入_在Matplotlib图中插入LaTex公式实例

    Matplotlib可以无缝的处理LaTex字体,在图中加入数学公式 from matplotlib.patches import Polygon import matplotlib.pyplot a ...

  9. python(matplotlib8)——图中图(在figure中画多个坐标图),次坐标(两个y轴)

    文章目录 前言 图中图 次坐标(两个y轴) 前言 来自 莫烦python的总结. 图中图 left,bottom,width,height = 百分比 fig = plt.figure() x = [ ...

最新文章

  1. linux 下 gcc o2优化可能出现的问题
  2. Hibernate基于JDBC的批量删除
  3. 跳蚤(POJ-1091)
  4. iso图像测试卡_走进真4K |图像质量测试有哪些“硬”标准?
  5. 二维\三维绘图AutoCAD 2022 for Mac
  6. 【MCVRP】基于matlab模拟退火算法求解带多种容量的车辆路径规划问题【含Matlab源码 918期】
  7. RealSense D435i数据录制 VINS离线运行
  8. Nutch开发(一)
  9. Pycharm相对路径
  10. python识别图片中的人_Python实现识别图片中的所有人脸并显示出来
  11. CSS字体透明度怎么设置?
  12. Windows 平台下局域网劫持测试工具 – EvilFoca
  13. 三行代码爬取京东数据
  14. 真实的上海IT圈:张江男vs漕河泾男
  15. (转)零基础入门--中文命名实体识别
  16. VC++中的WinMain()函数介绍
  17. 隐马尔科夫链(HMM)
  18. Kafka分区副本分配规则
  19. .net软件开发工程师面试题精选
  20. 游戏的衰落,更迭的结果

热门文章

  1. 工业互联网---人工智能技术-仿谷歌图片搜索算法SimilarImageSearch
  2. web图书销售管理系统_JSP+Struts2+JDBC+Mysql实现的校园宿舍管理系统
  3. DDGScreenShot —iOS 图片裁剪,切圆角,加边框,你还用cornerRadius,还有更高级的方法...
  4. 【CH559L单片机】串口下载程序说明
  5. 【C4AI-2022】基于可见光与激光雷达数据融合的航天器三维精细结构智能重建
  6. 本人初学者spss求多元回归系数
  7. 动画跳转+recyclerview
  8. 产品发布 | 京东云推出【云搜索】服务,海量数据全文检索从未如此简单
  9. Windows经常蓝屏 启动速度慢 经常死机 +常用dos命令(win10、win11适用)
  10. VO、DTO、DO、PO的概念、区别