当前位置: 首页 > news >正文

python版本dikstra堆优化

 题目:

 

代码:

from heapq import *
#堆优化版本的最短路算法(dijkstra)
N=150010
h=[-1 for _ in range(N)]
e=[-1 for _ in range(N)]
ne=[-1 for _ in range(N)]
w=[-1 for _ in range(N)]
idx=0
st=[False for _ in range(N)]
dist=[float('inf') for _ in range(N)]def add(a,b,c):global idxe[idx]=bw[idx]=cne[idx]=h[a]h[a]=idxidx+=1def dijkstra():dist[1]=0heap=[]heappush(heap,(0,1))while heap:d,ver=heappop(heap)if(st[ver]) :continuest[ver]=Truei=h[ver]while i!=-1:j=e[i]if dist[j]> d + w[i]:dist[j]=d+w[i]heappush(heap,(dist[j],j))i=ne[i]if dist[n] == float('inf'):return -1else: return dist[n]if __name__== "__main__":n,m=map(int, input().split())while m:m-=1a,b,c=map(int,input().split())add(a,b,c)print(dijkstra())


http://www.mrgr.cn/news/26718.html

相关文章:

  • 【C++】c++的继承
  • 【数据仓库】数据仓库常见的数据模型——维度模型
  • SAP B1 Web Client MS Teams App集成连载二:安装Install/升级Upgrade/卸载Uninstall
  • Mysql | 知识 | 理解是怎么加锁的
  • SpringBoot
  • 我知道,不少人会有质疑,为什么当地的医生,会想不到是这种病?
  • 详细步骤指导:怎么轻松设置代理IP和端口
  • Echarts中文版 2D世界地图
  • POI生成Excel文件增加数据验证(下拉序列)
  • GEE Python:采用比利时的VITO(100m)分辨率数据的NDVI 时序计算
  • k8s常用指令续:
  • 高可用性设计在非结构化数据中台的应用研究
  • Mysql 的查询过慢如何排查以及优化
  • 利用apache-pdfbox库修改pdf文件模板,进行信息替换
  • LIMS:全方位管理实验室数据、仪器和工作流程
  • Java学习路线
  • 从零开始:AI产品经理的入门路线图
  • mysql的高级查询:函数的运用(日期/数字/字符/聚合)及分组查询
  • 初识软件测试
  • 秒懂:父子进程与bash(命令行参数)的关系