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

【代码随想录算法训练营第六十四天|卡码网47.参加科学大会、94.城市间货物运输I】

文章目录

  • 47.参加科学大会
  • 94.城市间货物运输I

47.参加科学大会

其实和昨天的方法差不多,一个是用邻接列表来表示点之间的连接,一个是用小顶堆的方式来存储边的权值,在找最短边的时候不用再去比较。

import heapq
n, m = map(int, input().split())
grid = [[] for _ in range(n+1)]
for i in range(m):s, t, v = map(int, input().split())grid[s].append([v, t])
start = 1
end = n 
visited = [False] * (n+1)
minDist = [float('inf')] * (n+1)
minDist[start] = 0
heap = []
heapq.heappush(heap, [0, start])
while heap:cur = heapq.heappop(heap)if visited[cur[1]]:continuevisited[cur[1]] = Truefor edge in grid[cur[1]]:if not visited[edge[1]] and minDist[cur[1]]+ edge[0] < minDist[edge[1]]:minDist[edge[1]] = minDist[cur[1]] + edge[0]heapq.heappush(heap, [minDist[edge[1]], edge[1]])
if minDist[end] < float('inf'):print(minDist[e nd])
else:print(-1)

94.城市间货物运输I

Bellman_ford也好理解,就是每次对所有可以连接到的点(即对所有边)都更新一次距离原点的距离,每更新一次就能推断出距离原点+1结点位置的最近距离,那对于n个结点最多需要n-1次更新退出最近的距离。

n, m = map(int, input().split())
grid = []
for i in range(m):s, t, v = map(int, input().split())grid.append([s, t, v])
start = 1
end = n 
minDist = [float('inf')] * (n + 1)
minDist[1] = 0
for i in range(n-1):for edge in grid:if minDist[edge[0]]!=float('inf') and minDist[edge[1]] > minDist[edge[0]] + edge[2]:minDist[edge[1]] = minDist[edge[0]] + edge[2]updated = True
if minDist[end]!=float('inf'):print(minDist[end])
else:print('unconnected')

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 少年时期的黑客天才
  • 电焰灶:烹饪性能的深度剖析
  • Spring中常见知识点及使用
  • leetcode300:最长递增子序列
  • 如何使用nestjs生成一个新的控制器
  • 【区块链 + 智慧政务】一体化政务数据底座平台 | FISCO BCOS应用案例
  • 算法——二分法
  • 懂点技术就可以做,适合程序员的一种生意思路|在FlowUs记录成长 发布知识库
  • 什么是数据挖掘(python)
  • 防火墙(ensp USG6000v)---安全策略 + 用户认证综合实验
  • redis的setnx实现分布式锁
  • 获取商铺信息,以及商铺信息的增删改查
  • 工厂人员定位系统介绍及解决方案
  • View->LinearLayout中动态添加多行多列的ItemView(来源RecyclerView中的ViewHodler)
  • 【Docker-compose】搭建php 环境
  • avalon2.2的VM生成过程
  • CSS 三角实现
  • E-HPC支持多队列管理和自动伸缩
  • Git初体验
  • golang 发送GET和POST示例
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Sass Day-01
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • webpack入门学习手记(二)
  • 订阅Forge Viewer所有的事件
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 简单实现一个textarea自适应高度
  • 入门到放弃node系列之Hello Word篇
  • 物联网链路协议
  • 携程小程序初体验
  • 用Python写一份独特的元宵节祝福
  • 字符串匹配基础上
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 移动端高清、多屏适配方案
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​Redis 实现计数器和限速器的
  • ​Spring Boot 分片上传文件
  • ​如何防止网络攻击?
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (27)4.8 习题课
  • (Java数据结构)ArrayList
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (三)模仿学习-Action数据的模仿
  • (十一)手动添加用户和文件的特殊权限
  • (数据结构)顺序表的定义
  • (四)图像的%2线性拉伸
  • (正则)提取页面里的img标签
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core引入性能分析引导优化
  • .NET 回调、接口回调、 委托
  • .NET 中什么样的类是可使用 await 异步等待的?