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

网站备案增加域名天津招聘网人才招聘官网

网站备案增加域名,天津招聘网人才招聘官网,谁有网站推荐一下好,企业检索网站建设【专题】图论 1、蓝桥王国(Dijstra算法模板题) Dijstra算法:从一个节点到达其他所有节点的最短路径【一对多】。 蓝桥王国有N个建筑和M条单向通道,每条通道都连接两个建筑,每个建筑都有自己的编号,分别为1…

【专题】图论

1、蓝桥王国(Dijstra算法模板题)

Dijstra算法:从一个节点到达其他所有节点的最短路径【一对多】。

蓝桥王国有N个建筑和M条单向通道,每条通道都连接两个建筑,每个建筑都有自己的编号,分别为1~N(其中皇宫编号为1)。国王想让小明回答从皇宫到每个建筑的最短路径是多少。

输入描述

第一行输入n,m。

第2到M+1行每行有三个正整数u,v,w。表示 u -> v 之间存在一条距离为w的路

输出描述

输出一行,共N个数,分别表示从皇宫到编号为1~N建筑的最短距离

import heapq  # 导入堆def dij(s):done = [0 for i in range(n + 1)]  # 记录是否处理过hp = []  # 堆dis[s] = 0heapq.heappush(hp, (0, s))  # 入堆,小顶堆while hp:u = heapq.heappop(hp)[1]  # 出堆元素结点if done[u]:  # 当前结点处理过continuedone[u] = 1for i in range(len(G[u])):  # 遍历当前结点的邻居v, w = G[u][i]if done[v]: continuedis[v] = min(dis[v], dis[u] + w)  # 更新当前结点邻居的最短路径heapq.heappush(hp, (dis[v], v))n, m = map(int, input().split())
s = 1  # 从1开始访问
G = [[] for i in range(n + 1)]  # 邻接表存储
inf = 2 ** 50
dis = [inf] * (n + 1)  # 存储距离
for i in range(m):  # 存边,这里是单向边u, v, w = map(int, input().split())G[u].append((v, w))  # 记录结点u的邻居和边长dij(s)
for i in range(1, n + 1):if dis[i] == inf:print("-1", end=' ')else:print(dis[i], end=' ')
---------------------------------------------
输入:3 31 2 11 3 52 3 2
输出:0 1 3 
---------------------------------------------

2、蓝桥公园 (Floyd算法模板题)

Floyd算法:所有点对之间的最短路径【多对多】。

小明喜欢观景,于是今天他来到了蓝桥公园。

已知公园有 N 个景点,景点和景点之间一共有 M 条道路。小明有 Q 个观景计划,每个计划包含一个起点 st 和一个终点 ed,表示他想从 st 去到 ed。但是小明的体力有限,对于每个计划他想走最少的路完成,你可以帮帮他吗?

输入描述

输入第一行包含三个正整数 N,M,Q

第 2 到 M+1 行每行包含三个正整数 u,v,w,表示 u↔v 之间存在一条距离为 w 的路。

第 M+2 到 M+Q−1 行每行包含两个正整数 st,ed,其含义如题所述。

输出描述

输出共 QQ 行,对应输入数据中的查询。若无法从 st 到达 ed 则输出 −1。

def floyd():global dpfor i in range(1, n + 1):for j in range(1, n + 1):for k in range(1, n + 1):dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j])n, m, q = map(int, input().split())
inf = 2 ** 120
dp = [[inf] * (n + 1) for i in range(n + 1)]
choice = []
for i in range(m):u, v, w = map(int, input().split())dp[u][v] = wdp[v][u] = w
for i in range(q):s, d = map(int, input().split())choice.append((s, d))
floyd()
for s, d in choice:if dp[s][d] != inf:print(dp[s][d])continueprint(-1)
---------------------------------------------
输入:3 3 31 2 11 3 52 3 21 21 32 3
输出:132
---------------------------------------------
http://www.dtcms.com/a/549156.html

相关文章:

  • 有什么做外贸的好网站直播网站app下载
  • seo网站改版方案怎么写如何做网站内部优化
  • 找婚庆公司去什么网站亚马逊雨林动物大全
  • 基于百度地铁 API 的长沙地铁站点详情查询与路线导航实践
  • C# 继承
  • Ubuntu 24.04 从源码编译 dcgm-exporter
  • 【软件测试基础】详解数据库核心操作:增删改查,及测试关注点
  • 建网站服务厦门市建设路网站
  • 大模型-多模态机器学习
  • JavaSE基础——第十三章 泛型
  • 从传统到未来:Java在现代开发中的新价值与进化方向
  • 设置linux公钥,私钥登录ssh登录
  • html的网站案例wordpress文章彩色字体
  • set/map刷力扣题/(哈希表+排序类型)仿函数和捕获-两种方法解决
  • 基于单片机与 DeepSeek-OCR 的盲人辅助阅读器设计与实现
  • 淘客网站cms怎么做肥乡专业做网站
  • 【底层机制】Android GC -- 为什么要有GC?GC的核心原理?理解GC的意义
  • 自动驾驶中的传感器技术76——Navigation(13)
  • 鸿蒙Flutter三方库适配指南: 05.使用Windows搭建开发环境
  • 律所网站建设方案书怎么写网站制作排名优化
  • 谷歌网站排名搭建一个平台要多少钱
  • 使用Node.js连接 OPC UA Server
  • h5游戏免费下载:保护堆芯
  • 怎么看网站关键词排名恩施网站制作
  • Jenkins 持续集成与部署
  • 企业查询网站有哪些深圳工业产品设计公司
  • 解析平面卷积/pytorch的nn.Conv2d的计算步骤,in_channels与out_channels如何计算而来
  • 医疗器械经营许可证识别技术通过OCR与AI技术实现资质信息自动提取,显著提升行业效率与合规管理水平
  • Lombok 不生效 —— 从排查到可运行 Demo(含实战解析)
  • 【自然语言处理】预训练02:近似训练