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

代码随想录 day62 第十一章 图论part11

第十一章:图论part11

Floyd 算法精讲

Floyd 算法代码很简单,但真正理解起原理 还是需要花点功夫,大家在看代码的时候,会发现 Floyd 的代码很简单,甚至看一眼就背下来了,但我为了讲清楚原理,本篇还是花了大篇幅来讲解。

https://www.programmercarl.com/kamacoder/0097.%E5%B0%8F%E6%98%8E%E9%80%9B%E5%85%AC%E5%9B%AD.html

if __name__ == '__main__':max_int = 10005  # 设置最大路径,因为边最大距离为10^4n, m = map(int, input().split())grid = [[[max_int] * (n+1) for _ in range(n+1)] for _ in range(n+1)]  # 初始化三维dp数组for _ in range(m):p1, p2, w = map(int, input().split())grid[p1][p2][0] = wgrid[p2][p1][0] = w# 开始floydfor k in range(1, n+1):for i in range(1, n+1):for j in range(1, n+1):grid[i][j][k] = min(grid[i][j][k-1], grid[i][k][k-1] + grid[k][j][k-1])# 输出结果z = int(input())for _ in range(z):start, end = map(int, input().split())if grid[start][end][n] == max_int:print(-1)else:print(grid[start][end][n])

A * 算法精讲 (A star算法)

一般 笔试或者 面试的时候,不会考察A*, 都是会结合具体业务场景问 A*算法,例如:地图导航,游戏开发 等等。

其实基础版的A* 并不难,所以大家不要畏惧,理解本篇内容,甚至独立写出代码,大家可以做到,加油

https://www.programmercarl.com/kamacoder/0126.%E9%AA%91%E5%A3%AB%E7%9A%84%E6%94%BB%E5%87%BBastar.html


import heapqn = int(input())moves = [(1, 2), (2, 1), (-1, 2), (2, -1), (1, -2), (-2, 1), (-1, -2), (-2, -1)]def distance(a, b):return ((a[0] - b[0]) ** 2 + (a[1] - b[1]) ** 2) ** 0.5def bfs(start, end):q = [(distance(start, end), start)]step = {start: 0}while q:d, cur = heapq.heappop(q)if cur == end:return step[cur]for move in moves:new = (move[0] + cur[0], move[1] + cur[1])if 1 <= new[0] <= 1000 and 1 <= new[1] <= 1000:step_new = step[cur] + 1if step_new < step.get(new, float('inf')):step[new] = step_newheapq.heappush(q, (distance(new, end) + step_new, new))return Falsefor _ in range(n):a1, a2, b1, b2 = map(int, input().split())print(bfs((a1, a2), (b1, b2)))

最短路算法总结篇

最各个最短路算法有个全面的了解

https://www.programmercarl.com/kamacoder/%E6%9C%80%E7%9F%AD%E8%B7%AF%E9%97%AE%E9%A2%98%E6%80%BB%E7%BB%93%E7%AF%87.html

如果遇到单源且边为正数,直接Dijkstra

至于 使用朴素版还是 堆优化版 还是取决于图的稠密度, 多少节点多少边算是稠密图,多少算是稀疏图,这个没有量化,如果想量化只能写出两个版本然后做实验去测试,不同的判题机得出的结果还不太一样。

一般情况下,可以直接用堆优化版本。

如果遇到单源边可为负数,直接 Bellman-Ford,同样 SPFA 还是 Bellman-Ford 取决于图的稠密度。

一般情况下,直接用 SPFA。

如果有负权回路,优先 Bellman-Ford, 如果是有限节点最短路 也优先 Bellman-Ford,理由是写代码比较方便。

如果是遇到多源点求最短路,直接 Floyd

图论总结

https://www.programmercarl.com/kamacoder/%E5%9B%BE%E8%AE%BA%E6%80%BB%E7%BB%93%E7%AF%87.html

相关文章:

代码随想录 day62 第十一章 图论part11

第十一章&#xff1a;图论part11 Floyd 算法精讲 Floyd 算法代码很简单&#xff0c;但真正理解起原理 还是需要花点功夫&#xff0c;大家在看代码的时候&#xff0c;会发现 Floyd 的代码很简单&#xff0c;甚至看一眼就背下来了&#xff0c;但我为了讲清楚原理&#xff0c;本…...

springboot571基于协同过滤算法的私人诊所管理系统(论文+源码)_kaic

摘 要 随着时代的发展&#xff0c;人们的生活方式得到巨大的改变&#xff0c;从而慢慢地出现了大量私人诊所信息&#xff0c;私人诊所信息管理需要一个现代化的管理系统&#xff0c;进行私人诊所的管理。 私人诊所管理系统的开发就是为了解决私人诊所信息管理的问题&#xff0…...

Uniapp Android 本地离线打包(详细流程)

一、简介 App 离线 SDK 暂时不支持 Kotlin&#xff0c;未来不清楚。 uniapp 提供了 云打包 与 本地打包 两种方案&#xff0c;云打包 需要排队且还有次数限制&#xff0c;本地打包 则就没有这些限制&#xff0c;而且会 本地打包 对开发 原生插件 有很大的帮助。 细节&#x…...

vite+vue3动态引入资源文件(问题已解决但离了个大谱)

教程很详细&#xff0c;直接上代码 解决方法&#xff08;赶时间的小友理解下这函数就能解决问题了&#xff0c;就是处理了下路径&#xff0c;运气不好遇到问题再回来也不迟&#x1f923;&#x1f923;&#x1f923;&#xff09; const getSvgUrl (name) > {// name: svg_1…...

通过 4 种方式快速将音乐从 iPod 传输到 Android

概括 在 iPod 上听音乐很酷&#xff0c;但是当您拥有最新的 Android 手机时&#xff0c;也许您想在新手机上欣赏 iPod 音乐。那么&#xff0c;你的计划是什么&#xff1f;如何将音乐从 iPod 传输到 Android&#xff1f; 如果您担心这个问题&#xff0c;请看看下面的方法。他们…...

ArcGIS中怎么把数据提取到指定范围(裁剪、掩膜提取)

最近&#xff0c;经常能收到怎么把数据提取到指定范围、栅格数据怎么裁剪、矢量数据怎么裁剪、栅格数据怎么掩膜提取的咨询。 下面是我对这个问题的解决思路&#xff1a; 对于矢量数据&#xff1a; ①首先把数据加载进来 ②软件界面上面的工具栏找到→地理处理→裁剪&#x…...

【Vaadin flow 实战】第3讲-快速上手构建VaadinFlow+Springboot的全栈web项目

快速构建VaadinFlowSpringboot的全栈web项目 温馨提示&#xff0c;本文讲解比较精炼&#xff0c;主要以快速上手开发为主。 官方提供了与本文类似的教程讲解&#xff0c;地址https://vaadin.com/docs/latest/getting-started 1访问vaadin官方提供的start网站(类似于 spring i…...

HBase Cassandra的部署和操作

目录 一&#xff0e;数据库的部署与配置 二&#xff0e;使用命令访问数据库 三&#xff0e;数据库的设计 四&#xff0e;编程实现数据库的访问 一&#xff0e;数据库的部署与配置 1.在单个节点上对进行数据库的单机部署 &#xff08;1&#xff09;下载apache-cassandra-4.1.7-…...

用户界面软件01

Jens Coldewey 著&#xff0c;Tom.X 译 本文中的模式语言逐步深入地探讨用户界面架构的设计&#xff0c;它基于人机工程学&#xff0c;足以形成一套完整的体系。如果你对这方面有兴趣&#xff0c;请参考[Tog92]&#xff0c;[Coo95]和[Col95]。 本文不讨论用户界面的布局&…...

【云原生】Docker Compose 从入门到实战使用详解

目录 一、前言 二、Docker Compose 介绍 2.1 Docker Compose概述 2.2 Docker Compose特点 2.3 Docker Compose使用场景 三、Docker Compose 安装 3.1 安装docker环境 3.2 Docker Compose安装方式一 3.2.1 下载最新版 3.2.2 设置权限 3.2.3 设置软链接 3.2.4 查看版本…...

【ShuQiHere】使用 SCP 进行安全文件传输

【ShuQiHere】&#x1f680; 在日常的开发和运维工作中&#xff0c;文件传输是一个常见的任务。scp&#xff08;Secure Copy&#xff09;是一个基于 SSH 协议的文件传输工具&#xff0c;能够在本地和远程主机之间安全地复制文件和目录。本文将详细介绍 scp 的使用方法&#xf…...

海康威视H5player问题汇总大全

由于除了要支持Windows平台&#xff0c;还要支持国产系统的平台&#xff0c;这时就用到了H5player&#xff0c;但是这个在使用调试的时候会遇到各种各样的问题&#xff0c;便在此分享一下&#xff0c;供大家分享&#xff01;&#xff01;&#xff01; 问题一&#xff1a;Unexp…...

力扣23.合并K个升序链表

文章目录 一、前言二、最小堆解法三、分治解法 一、前言 23. 合并 K 个升序链表 本题的要求是把K个链表进行合并&#xff0c;合并后的链表必须是从小到大的。 并且这K个链表也是从小到大的升序链表。 二、最小堆解法 既然每个链表都是升序的&#xff0c;也就是从小到大的。 …...

【C 语言指针篇】指针的灵动舞步与内存的神秘疆域:于 C 编程世界中领略指针艺术的奇幻华章

文章目录 【C 语言篇】指针的灵动舞步与内存的神秘疆域&#xff1a;于 C 编程世界中领略指针艺术的奇幻华章前言一 、指针的介绍与使用1. 指针的介绍1.1指针表示1.2指针变量1.3空指针 2. 使用指针2.1交换两个变量的值2.2计算输出最小值和最大值 二、野指针的介绍与使用1. 野指针…...

游戏关卡设计的常用模式

游戏关卡分为很多种&#xff0c;但常用的有固定套路&#xff0c;分为若干种类型。 关卡是主角与怪物、敌方战斗的场所&#xff0c;包括装饰物、通道。 单人游戏的关卡较小&#xff0c;偏线性&#xff1b; 联机/MMO的关卡较大&#xff0c;通道多&#xff0c;自由度高&#xf…...

在一台服务器上使用docker运行kafka集群

1.拉取镜像 docker pull wurstmeister/kafka docker pull wurstmeister/zookeeper 2.创建集群之间通信的网络 docker network create kafka-cluster-net docker network inspect kafka-cluster-net 3.将zookeeper加入到网络中 docker network connect kafka-cluster-net zooke…...

Apache Celeborn 在B站的生产实践

背景介绍 Shuffle 演进 随着B站业务的飞速发展,数据规模呈指数级增长,计算集群也逐步从单机房扩展到多机房部署模式。多个业务线依托大数据平台驱动核心业务,大数据系统的高效性与稳定性成为公司业务发展的重要基石。如图1,目前在大数据基础架构下,我们主要采用 Spark、Fl…...

JOIN 和 OUTER JOIN,SQL中常见的连接方式

1. INNER JOIN&#xff08;简称 JOIN&#xff09; INNER JOIN 是 SQL 中最常用的一种连接方式&#xff0c;默认的 JOIN 就是 INNER JOIN。它返回两个表中满足连接条件的匹配记录。 作用&#xff1a;返回两个表中所有满足 ON 条件的记录。特性&#xff1a;如果表中的某些行在连…...

Vue2: table加载树形数据的踩坑记录

table中需要加载树形数据,如图: 官网给了两个例子,且每个例子中的tree-props都是这么写的: :tree-props="{children: children, hasChildren: hasChildren}" 给我一种错觉,以为数据结构中要同时指定children和hasChildren字段,然而,在非懒加载模式下,数据结…...

电子信息硕士面试经验

回顾2024年秋招一些面试常见的问题,主要涉及软件开发和嵌入式部分内容。 1. 浅拷贝深拷贝 深拷贝和浅拷贝是两种不同的拷贝方式,用于复制对象。它们主要区别在于对嵌套对象的处理方式。 浅拷贝:只复制对象的顶层,嵌套对象仍然是共享引用。 深拷贝:递归复制所有对象及其嵌…...

保姆级避坑指南:Ubuntu 20.04 LTS源码编译Qt 5.15.2全流程

1. 为什么选择源码编译Qt 5.15.2&#xff1f; 在Ubuntu 20.04 LTS上安装Qt通常有两种方式&#xff1a;通过apt安装预编译版本&#xff0c;或者从源码编译安装。源码编译虽然步骤繁琐&#xff0c;但能带来三个关键优势&#xff1a;版本可控&#xff08;官方仓库的Qt版本往往较旧…...

嵌入式系统事件控制与连续处理架构设计

1. 嵌入式系统的事件控制连续处理架构解析 在工业自动化领域&#xff0c;嵌入式系统需要同时应对两种截然不同的处理需求&#xff1a;一方面要持续不断地处理传感器采集的实时数据流&#xff0c;另一方面又必须及时响应各种异步事件&#xff08;如用户指令、设备状态变化等&…...

基于深度学习的实时手语翻译系统架构设计与实现

基于深度学习的实时手语翻译系统架构设计与实现 【免费下载链接】Sign-Language-Interpreter-using-Deep-Learning A sign language interpreter using live video feed from the camera. 项目地址: https://gitcode.com/gh_mirrors/si/Sign-Language-Interpreter-using-Dee…...

从SAD到SGBM:双目立体视觉核心匹配算法演进与实战解析

1. 双目立体视觉的基石&#xff1a;为什么需要匹配算法&#xff1f; 第一次接触双目立体视觉时&#xff0c;我盯着左右两个摄像头拍摄的画面看了半天也没想明白&#xff1a;明明是两个普通2D图像&#xff0c;怎么就能变出深度信息&#xff1f;后来才发现&#xff0c;这个魔术的…...

ITE 联阳半导体推出新一代 IT6115:集成分路器与信号放大器的 MIPI 全能转换方案

随着 AR/VR、折叠屏及智能座舱等高端影像市场的爆发&#xff0c;MIPI 接口在带宽、传输距離以及协议兼容性上正面临前所未有的挑战 。联阳半导体&#xff08;ITE&#xff09;顺势推出了高度集成的 MIPI D-PHY / C-PHY 双模转换核心——IT6115 。IT6115 并非简单的桥接芯片&…...

bootstrap怎么实现带有验证状态的表单

需手动在表单控件&#xff08;input/select/textarea&#xff09;上添加 is-valid 或 is-invalid 类&#xff0c;并紧邻放置 valid-feedback 或 invalid-feedback 元素作为下一个兄弟节点&#xff0c;配合 blur 或 submit 事件触发验证逻辑。怎么给 Bootstrap 表单控件加 is-va…...

2026届必备的十大AI学术网站解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 知网已正式推出AIGC检测服务系统&#xff0c;此系统目的在于识别学术文本里由人工智能生成的…...

如何快速实现Windows AirPlay 2接收器:终极免费解决方案

如何快速实现Windows AirPlay 2接收器&#xff1a;终极免费解决方案 【免费下载链接】airplay2-win Airplay2 for windows 项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win 还在为Windows电脑无法接收iPhone、iPad和Mac投屏而烦恼吗&#xff1f;airplay2-win…...

从零到一:实战微调Transformer处理多标签文本分类

1. 为什么选择Transformer处理多标签分类&#xff1f; 我第一次接触多标签分类任务是在处理电商商品属性标注时。当时用传统机器学习方法效果总是不理想&#xff0c;直到尝试了Transformer架构才发现新大陆。Transformer之所以适合这类任务&#xff0c;核心在于它的自注意力机制…...

016、LangChain进阶:Memory、Retriever与工程化组织,才是你真正该补的部分

上一篇我们讲的是:如何把LangChain放进RAG,怎样真正地将知识库问答组织成一条可以维护的工程链路。 如果你已经打通了最短的那条链路,那么接下来你大概率会遇到两个比较实际的问题: 用户追问第二句的时候,系统却好像突然忘记了? 为什么同样是“检索资料”,项目一复杂了…...