2024.7.7刷题记录

目录

一、849. Dijkstra求最短路 I - AcWing题库

二、850. Dijkstra求最短路 II - AcWing题库


根据讲解视频写的代码

一、849. Dijkstra求最短路 I - AcWing题库

N = 600
MAXL = 10010    # 最长边长
# 稠密图邻接矩阵
g = [[MAXL] * N for _ in range(N)]
dist = [MAXL] * N   # 储存到节点1的距离
st = [False for _ in range(N)]R = lambda: map(int, input().split())
n, m = R()
for _ in range(m):x, y, z = R()g[x][y] = min(g[x][y], z)   # 重边保留最小值def dijkstra() -> int:dist[1] = 0for _ in range(n):# 寻找未知节点中的最短距离节点t = -1for i in range(1, n + 1):if not st[i] and (t == -1 or dist[t] > dist[i]):t = i# 放入sst[t] = True# 更新节点for i in range(1, n + 1):dist[i] = min(dist[i], dist[t] + g[t][i])return -1 if dist[n] > 10000 else dist[n]print(dijkstra())

二、850. Dijkstra求最短路 II - AcWing题库

# 堆优化版
import heapq
# 稀疏图用邻接表
N = int(2e5)
# 头节点初始化为-1、值为最大值
h = [-1] * N; e = [0] * N; ne = [0] * N; val = [0] * N; idx = 0
st = [False] * N
dist = [float('inf') for _ in range(N)]     # 初始化成无穷大
q = []  # 堆def add(x, y, z):global idxe[idx] = yval[idx] = zne[idx] = h[x]h[x] = idxidx += 1R = lambda: map(int, input().split())
n, m = R()
for _ in range(m):x, y, z = R()add(x, y, z)def dijkstra():dist[1] = 0heapq.heappush(q, (0, 1))while q:# 寻找distance, ver = heapq.heappop(q)if st[ver]: continue# 放入sst[ver] = True# 更新其他节点cur = h[ver]while cur != -1:j = e[cur]if dist[j] > distance + val[cur]:dist[j] = distance + val[cur]heapq.heappush(q, (dist[j], j))     # 更新时,冗余存储cur = ne[cur]return dist[n]
ans = dijkstra()
print(-1 if ans > int(1e9) else ans)

感谢你看到这里一起!加油吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/43177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片kb太大了怎么改小?修改图片kb的方法介绍

图片kb太大了怎么改小?将图片的文件大小(以KB为单位)缩小可以带来多种优点,但也有一些缺点需要注意。缩小图片文件大小可以显著减少它在硬盘或其他存储设备上占用的空间,使你能够存储更多的图片和其他文件。而且&#…

KIVY 3D Rotating Monkey Head¶

7 Python Kivy Projects (With Full Tutorials) – Pythonista Planet KIVY 3D Rotating Monkey Head kivy 3D 旋转猴子头How to display rotating monkey example in a given layout. Issue #6688 kivy/kivy GitHub 3d 模型下载链接 P99 - Download Free 3D model by …

【Qt】QItemSelectionModel 添加选中行

1. 介绍 QItemSelectionModel 中没有直接添加选中行的方法&#xff0c;可以通过下面的方式添加。 2. 代码 //定义 QSqlTableModel* m_tableModel; QItemSelectionModel* m_selectionModel;//添加选中行, 全选 void addAllLine() {for(int i0; i<m_tableModel->rowCoun…

【AI大模型新型智算中心技术体系深度分析 2024】

文末有福利&#xff01; ChatGPT 系 列 大 模 型 的 发 布&#xff0c; 不 仅 引 爆 全 球 科 技 圈&#xff0c; 更 加 夯 实 了 人 工 智 能&#xff08;Artificial Intelligence, AI&#xff09;在未来改变人类生产生活方式、引发社会文明和竞争力代际跃迁的战略性地位。当…

mysql select count返回null

注意 mysql select count返回null 下面是百度的回答 在MySQL中&#xff0c;当SELECT COUNT(*)查询返回NULL时&#xff0c;通常意味着查询结果为空集&#xff0c;即没有记录匹配查询条件。COUNT()函数在没有匹配行的情况下返回NULL&#xff0c;而不是0。 解决方法&#xff1a…

ImportError: xxx: cannot open shared object file: No such file or directory

一类常见错误&#xff1a;编译器器无法在目录下找到共享目标文件&#xff0c; Linux(ubuntu)中共享的库目录为/usr/lib/x86_64-linux-gnu&#xff0c;gcc的编译库 在该目录下创建共享文件&#xff08;伪造、下载&#x1f91c;cp)即可 sudo ln -s libtiff.so.6 libtiff.so.5

昇思25天学习打卡营第11天|ResNet50图像分类

文章目录 昇思MindSpore应用实践基于MindSpore的ResNet50图像分类1、ResNet50 简介2、数据集预处理及可视化3、构建网络构建 Building Block构建 Bottleneck Block构建 ResNet50 网络 4、模型训练5、图像分类模型推理 Reference 昇思MindSpore应用实践 本系列文章主要用于记录…

Emacs相关

Emacs 详细介绍 Emacs&#xff0c;全称 Editor MACroS&#xff0c;是一款功能强大、历史悠久的文本编辑器。它最早由 Richard Stallman 于 1976 年开发&#xff0c;是自由软件运动的重要组成部分。Emacs 的设计理念强调可定制性和扩展性&#xff0c;使得它不仅仅是一个编辑器&…

AsyncRequestTimeoutException

在Spring MVC中&#xff0c;当一个异步请求超过配置的最大等待时间时&#xff0c;会抛出AsyncRequestTimeoutException异常。这个异常通常是由于服务器端的处理时间超过了客户端允许的等待时间&#xff0c;或者是服务器本身的异步处理时间配置过短导致的。 spring: mvc: async…

scrapy写爬虫

Scrapy是一个用于爬取网站数据并提取结构化信息的Python框架 一、Scrapy介绍 1.引擎&#xff08;Engine&#xff09; – Scrapy的引擎是控制数据流和触发事件的核心。它管理着Spider发送的请求和接收的响应&#xff0c;以及处理Spider生成的Item。引擎是Scrapy运行的驱动力。…

基于go-zero二次开发的脚本

param$2 # 字符串风格格式为&#xff1a;DemoName model_name$(echo "${param}" | awk -F _ {for(i1;i<NF;i) $itoupper(substr($i,1,1)) tolower(substr($i,2));}1 | tr -d ) # 字符串风格格式为&#xff1a;demoName struct_name$(echo "${model_name}&qu…

ClickHouse表引擎概述

ClickHouse表引擎概述 表引擎的功能&#xff1a; 数据的存储方式 数据的存储位置 是否可以使用索引 是否可以使用分区 是否支持数据副本 并发数据访问 ClickHouse在建表时必须指定表引擎。 表引擎主要分为四大类&#xff1a;MergeTree系列、Log系列、与其他存储/处理系…

字节码编程bytebuddy之获取方法信息和方法入参信息

写在前面 本文看下通过bytebuddy如何获取方法信息和方法的入参信息。 1&#xff1a;代码 package com.dahuyou.bytebuddy.bb;import com.dahuyou.bytebuddy.TT; import net.bytebuddy.ByteBuddy; import net.bytebuddy.dynamic.DynamicType; import net.bytebuddy.implement…

【高中数学/对数函数】比较a=ln2/2,b=ln5/5的大小

【问题】 比较aln2/2,bln5/5的大小 【解答】 a-bln2/2-ln5/5(5*ln2-2*ln5)/10(ln2^5-ln5^2)/10(ln32-ln25)/10>0 所以a>b 【图像】 如果绘出函数ylnx/x的图像&#xff0c;再标记出a,b的位置&#xff0c;则绘出图像如下&#xff1a; 由上图可以看出&#xff0c;a,b两…

随手记:对比两个对象不一样的值,生成一个新的对象

diffObject(obj1, obj2) {let changeForm {}for (let key in obj1) {if (!obj1.hasOwnProperty(key) || obj1[key] ! obj2[key]) {// 新旧数据不相同的key值changeForm[key] obj1[key]}}console.log(changeForm, changeForm)},

初次用bable遍历vue项目下的中文

利用 babel 找到 AST 中的中文 // vite-plugin-babel-transform.js const parser require(babel/parser) const traverse require(babel/traverse).default // const types require(babel/types) // const generate require(babel/generator).default const fs require(f…

【PHP小课堂】学习PHP中的字符串操作函数(二)

学习PHP中的字符串操作函数&#xff08;二&#xff09; 接下来我们继续 PHP 中字符串函数的学习。今天学习的内容主要是带下划线的一些字符串函数&#xff0c;上篇文章说过&#xff0c;这些系统函数的命名是 PHP 非常令人诟病的&#xff0c;有些东西真的只能靠我们的记忆来强行…

显卡、显卡驱动、cuda、cuDNN之间关系

显卡、显卡驱动、CUDA 和 cuDNN 是构成高性能计算和深度学习环境的关键组件&#xff0c;它们之间有着紧密的联系。下面是对这些组件及其关系的详细介绍&#xff1a; 显卡&#xff08;GPU&#xff09; 显卡&#xff0c;全称为图形处理器&#xff08;Graphics Processing Unit&…

【Unity2D 2022:NPC】制作任务系统

一、接受任务 1. 编辑NPC对话脚本&#xff1a; &#xff08;1&#xff09;创建静态布尔变量用来判断ruby是否接受到任务 public class NPCDialog : MonoBehaviour {// 创建全局变量用来判断ruby是否接到任务public static bool receiveTask false; } &#xff08;2&#xff…

python学习-错误与异常

代码是人的逻辑思维的具体体现&#xff0c;因为没有一个人的逻辑思维是完美无缺的&#xff0c;所以人在编写代码时必然会出现各种错误。既然错误或多或少都会发生&#xff0c;那么如何捕捉错误&#xff0c;并且捕捉到错误后要如何处理&#xff0c;就显得很重要。 语法错误 Py…