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

数据结构与算法-图论-最短路和其他的结合

介绍

最短路算法常与深度优先搜索(DFS)、动态规划(DP)、二分答案、拓扑排序等算法结合使用:

- 最短路与DFS结合:在一些图的路径问题中,当需要访问特定的多个结点,且数据范围较小时,可使用DFS。例如在一个有(n)个结点、(m)条无向边的图中,有(x)个结点必须访问,求最短路径。此时问题可转化为如何排列这(x)个结点,使得从起始结点依次经过其余结点所经过的路径最短。由于DFS时间复杂度较高,一般先用Dijkstra算法对这(x)个结点间的最短路做预处理,然后用DFS进行结点排列尝试,时间复杂度约为(O(ntimes ntimeslog(m)))。

- 最短路与DP结合:在涉及路径选择和最优值求解,且问题具有最优子结构性质时,会结合DP。比如在一个图中,从起点到终点的过程中,在不同的结点有不同的花费或收益,同时路径存在一定的限制条件,要求找到能获取最大收益或最小花费的路径。可以用DP来记录每个状态(到达某个结点的情况)下的最优值,用最短路算法来确定路径的可达性和距离信息,二者相互配合求解。

- 最短路与二分答案结合:当问题是求解使得某一条件满足的最优值(如路径中第(k)大的边最小)时,且该最优值存在二段性(即大于该值的情况和小于该值的情况有明显区分),可以使用二分答案的方法。通过二分枚举可能的最优值,然后利用最短路算法来判断在该值下是否满足题目条件(如查找该路径中有多少条边的权重大于枚举值),从而逐步缩小范围找到最优解。

- 最短路与拓扑排序结合:在处理有向无环图(DAG)且存在边权(可正可负)的最短路问题时,常结合拓扑排序。例如有多块区域通过道路(边权大于(0))和航线(边权可正可负,单向)相连,求最短路。由于存在负权边,不能直接用Dijkstra算法。此时先对区域间的道路用Dijkstra算法处理,对于航线,利用拓扑排序得到拓扑序,根据该顺序计算各个区域间的最短路,这样能有效处理负权边和有向图的情况。

新年好(dfs+最短路)

分析:


这道题可以结合深度优先搜索(DFS)和 SPFA(Shortest Path Faster Algorithm)算法来求解,以下是具体分析:

算法思路

图的存储:使用邻接表来存储图的结构,对于每个车站(节点),记录与其相连的车站以及通过公路所需的时间(边的权重)。

SPFA 求单源最短路径:从车站 1 出发,利用 SPFA 算法计算到车站 a, b, c, d, e 的最短路径。SPFA 算法基于队列实现,不断更新到各个节点的最短距离。初始时,将起点的距离设为 0,其他节点设为无穷大。每次从队列中取出一个节点,更新其相邻节点的距离,如果某个节点的距离被更新且该节点不在队列中,则将其加入队列。重复此过程,直到队列为空。

DFS 进行路径搜索:在得到从车站 1 到各个亲戚所在车站的最短距离后,使用 DFS 来枚举所有可能的拜访顺序。从车站 1 出发,依次选择一个未访问过的亲戚所在车站进行访问,记录路径长度,当访问完所有亲戚所在车站后,再返回车站 1,计算总路径长度。通过比较所有可能路径的总长度,找出最短的那一条。

伪代码:

2:通信线路(二分+最短路):

分析:


这道题可以通过二分答案和最短路算法来求解,以下是详细分析:

算法思路

1. 二分答案:由于要找的是完成升级的最少花费,而这个花费是路径上剩余电缆中最贵的那条的价格,所以可以对这个价格进行二分。价格的范围是从 (1) 到所有电缆升级花费中的最大值 (L_{max})。每次二分一个价格 (mid),判断是否存在一条从 (1) 号基站到 (N) 号基站的路径,在这条路径上不超过 (K) 条电缆的花费大于 (mid)。如果存在这样的路径,说明可以尝试更小的价格;如果不存在,则需要增大价格。

2. 判断路径是否存在(最短路算法):在二分过程中,对于每个假设的价格 (mid),需要判断是否存在满足条件的路径。这里可以使用最短路算法(如迪杰斯特拉算法或SPFA算法)进行改造。将花费大于 (mid) 的电缆看作权重为 (1)(表示这条电缆是需要额外付费考虑的),花费小于等于 (mid) 的电缆看作权重为 (0)。然后求从 (1) 号基站到 (N) 号基站的最短路,如果最短路的权重小于等于 (K),则说明存在满足条件的路径。

伪代码:

3-道路与航线(拓扑排序+最短路):

分析:


一种很巧妙的解题思路,利用连通块、拓扑排序和迪杰斯特拉算法结合来求解从发送中心城镇 (S) 到每个城镇的最便宜方案

算法思路

1. 划分连通块: - 仅考虑道路(因为道路是无向且可构成连通区域),使用深度优先搜索(DFS)或并查集算法来标记每个城镇所属的连通块。通过遍历所有道路,将相互连通的城镇划分到同一个连通块中,这样可以把整个图按道路连通性划分为若干个连通块。 - 记录每个连 通块包含的城镇节点。

2. 构建连通块之间的拓扑图: - 考虑航线,对于每条航线 ( (u, v) ) ,找到 (u) 和 (v) 所属的连通块 (block_u) 和 (block_v) 。如果 (block_u neq block_v) ,则在连通块之间构建一条有向边 ( (block_u, block_v) ) ,并记录这条边对应的航线信息(如花费等)。同时,记录每个连通块的入度(即指向该连通块的有向边数量)。 - 由于题目条件保证航线构成的图无环,所以这些连通块之间的有向边也构成一个有向无环图(DAG)。

3. 拓扑排序与迪杰斯特拉结合: - 把入度为 (0) 的连通块入队,开始拓扑排序。 - 对于每个连通块,先在其内部使用迪杰斯特拉算法,计算该连通块内从属于该连通块且是发送中心城镇 (S) 所在的节点(如果 (S) 在该连通块内)到其他节点的最短路径。 - 当处理一个连通块时,检查从该连通块出发的航线(即连通块之间的有向边),对于每条航线对应的目标连通块,如果目标连通块的入度减为 (0) ,则将其入队。同时,根据航线的花费,更新目标连通块内节点的最短距离(如果通过这条航线能使距离更短)。 - 重复上述步骤,直到队列为空,此时得到的就是从 (S) 到各个城镇的最短距离。

伪代码:

4最优贸易:

分析:

这种利用跑正反两次 SPFA 算法的思路是很巧妙的,下面详细分析其原理、实现步骤以及复杂度:

思路原理:

正向 SPFA:从 1 号城市出发,使用 SPFA 算法遍历所有能到达的城市。在遍历过程中,记录从 1 号城市到每个城市 k 路径上经过的所有城市中水晶球价格的最小值,存放在 dmin[k] 中。这样就能得到从起点 1 号城市到各个可达城市路径上的最低买入价格。

反向 SPFA:将图中的边方向全部反向(或者在实现时以相反的逻辑处理),从 n 号城市出发再次使用 SPFA 算法。这次记录从 n 号城市到每个城市 k 路径上经过的所有城市中水晶球价格的最大值,存放在 dmax[k] 中 。也就是得到了从各个城市到终点 n 号城市路径上的最高卖出价格。

计算结果:通过遍历所有城市 k,计算 dmax[k] - dmin[k],取其中的最大值就是在从 1 号城市出发到 n 号城市的过程中,进行最多一次买卖水晶球能赚取的最大旅费。如果所有的差值都小于等于 0,则表示赚不到差价。

伪代码:

相关文章:

数据结构与算法-图论-最短路和其他的结合

介绍 最短路算法常与深度优先搜索(DFS)、动态规划(DP)、二分答案、拓扑排序等算法结合使用: - 最短路与DFS结合:在一些图的路径问题中,当需要访问特定的多个结点,且数据范围较小时…...

C++day6

编写一个如下场景: 有一个英雄Hero类,私有成员,攻击,防御,速度,生命值,以及所有的set get 方法 编写一个 武器 Weapon 类,拥有私有成员攻击力,以及set get 方法 编写一个…...

【初阶数据结构】星河中的光影 “排” 象:排序(下)

文章目录 4.交换排序4.1 冒泡排序(BubbleSort)4.2 快速排序(QuickSort)4.2.1 hoare版本4.2.2 挖坑法4.2.3 前后指针法4.2.4 非递归实现 5.归并排序(MergeSort)5.1 递归实现5.2 非递归实现5.2.1 一次性全部拷…...

C++ 练习1

阐述g 有哪些常用的选项&#xff0c;该选项有什么作用 选项作用-o <file>指定输出文件名&#xff08;默认生成 a.out&#xff09;-c仅编译生成目标文件&#xff08;.o 文件&#xff09;&#xff0c;不链接-E只进行预处理&#xff0c;输出预处理后的代码&#xff08;展开…...

Ajax数据采集与分析详解

文章目录 1. 什么是 Ajax&#xff1f;2. Ajax 的工作原理3. Ajax 在网页中的应用场景4. 爬取 Ajax 数据的方法4.1 分析网络请求4.2 模拟 Ajax 请求4.3 使用 Selenium 模拟浏览器4.4 使用 Headless 浏览器 5. 处理动态参数6. 处理分页和滚动加载7. 处理反爬虫机制8. 数据存储9. …...

协方差(Covariance)与得分函数:从Fisher信息矩阵看统计关联

协方差与得分函数&#xff1a;从Fisher信息矩阵看统计关联 协方差&#xff08;Covariance&#xff09;是统计学中一个基础但强大的概念&#xff0c;它描述了两个随机变量之间的关系。在Fisher信息矩阵中&#xff0c;协方差以一种特别的形式出现&#xff1a;得分函数的协方差。…...

【CSS 选择器的特异度 CSS 继承 CSS 求值过程解析 CSS 布局方式及相关技术】

以下是关于 CSS 选择器特异度、继承、求值过程及布局技术 的详细解析&#xff0c;结合核心概念和实际应用场景&#xff1a; 一、CSS 选择器特异度&#xff08;Specificity&#xff09; 1. 特异度规则 特异度用于决定当多个选择器作用于同一元素时&#xff0c;哪个样式优先级更…...

Vue+ElementPlus的一些问题修复汇总

目录 一、ElementPlusVue-router做侧边栏问题 二、 组件样式问题 2.1修改文字颜色、大小、粗细、边框的颜色 2.2修改聚焦后文字的颜色、边框的颜色 2.3修改鼠标悬浮时文字的颜色、边框的颜色 三、 组件样式问题 3.1修改文字颜色、大小、粗细 四、 样式问题 4.1当数据为空…...

单链表删除算法(p=L; j=0;与p=p->next;j=1的辨析)

算法描述 Status ListDelete&#xff08;LinkList &L,int i&#xff09; { //在带头结点的单链表 L 中&#xff0c;删除第 i 个元素 pL; j0; while ((p->next) && (j<i-1)) {pp->next; j;} if (!(p->next)||(j>i-1)) return ERROR; qp->nex…...

从单片机的启动说起一个单片机到点灯发生了什么下——使用GPIO点一个灯

目录 前言 HAL库对GPIO的抽象 核心分析&#xff1a;HAL_GPIO_Init 前言 我们终于到达了熟悉的地方&#xff0c;对GPIO的初始化。经过漫长的铺垫&#xff0c;我们终于历经千辛万苦&#xff0c;来到了这里。关于GPIO的八种模式等更加详细的细节&#xff0c;由于只是点个灯&am…...

vue2项目打包后js文件过大, 首次加载缓慢

vue2项目打包后js文件过大, 首次加载缓慢 安装插件 npm i compression-webpack-plugin6.1.1 -D配置vue.config.js const CompressionWebpackPlugin require(compression-webpack-plugin)module.exports {configureWebpack: {plugins:[new CompressionWebpackPlugin({filen…...

llama.cpp 一键运行本地大模型 - Windows

文章目录 llama.cpp 一键运行本地大模型 - Windows嘿&#xff0c;咱来唠唠 llama.cpp 这玩意儿&#xff01;gguf 格式是啥&#xff1f;咱得好好说道说道基座模型咋选&#xff1f;所需物料&#xff0c;咱得准备齐全咯核心命令&#xff0c;得记牢啦运行方式咋选&#xff1f;测试应…...

Android 老项目 jcenter 库失效

最近重新维护了一些老项目发现大部分jcenter库失效了&#xff0c; Could not resolve com.xx:2.1.3. 如果你也遇到了&#xff0c;不妨试试 替换为 aliyun的jcenter服务&#xff0c;就不用一个个找代替库了。 project 下的 build.gradle 文件添加&#xff1a; maven { url htt…...

MyBatis简明教程

MyBatis 是一个用于简化数据库操作的持久层框架&#xff0c;它的核心思想是 将 SQL 与 Java 代码解耦&#xff0c;让开发者专注于 SQL 的编写&#xff0c;同时自动处理重复的数据库操作步骤。 一、核心思想&#xff1a;SQL 与 Java 解耦 传统 JDBC 需要开发者手动管理数据库连…...

【Golang 面试题】每日 3 题(六十八)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…...

DeepSeek个人知识库

deepseek构建个人知识库 安装软件链接 : 安装链接 先在本地把deepseek跑起来&#xff0c;本地部署deepseek见前文链接: 本地部署ollama # 目前软件只支持1.5b小模型&#xff0c;将就着用 ollama run deepseek-r1:1.5b等服务器启动后开启软件 上传文件 输入消息 &#xff08…...

力扣练习之字符串的最大公因子

使用语言&#xff1a;c 题目&#xff1a; 对于字符串 s 和 t&#xff0c;只有在 s t t t ... t t&#xff08;t 自身连接 1 次或多次&#xff09;时&#xff0c;我们才认定 “t 能除尽 s”。 给定两个字符串 str1 和 str2 。返回 最长字符串 x&#xff0c;要求满足 x 能…...

姿态矩阵/旋转矩阵/反对称阵

物理意义&#xff0c;端点矢量角速率叉乘本身向量&#xff1b; 负号是动系b看固定系i是相反的&#xff1b; 一个固定 在惯性导航解算中&#xff0c;旋转矢量的叉乘用于描述姿态矩阵的微分方程。你提到的公式中&#xff0c; ω i b b \boldsymbol{\omega}_{ib}^b \times ωibb…...

项目一 - 任务3:搭建Java集成开发环境IntelliJ IDEA

通过本次实战&#xff0c;我们成功搭建了Java集成开发环境IntelliJ IDEA&#xff0c;并完成了多个任务。首先&#xff0c;安装了IntelliJ IDEA并进行了个性化设置&#xff0c;如选择主题、调整字体和编码等。接着&#xff0c;创建了Java项目、包和类&#xff0c;编写并运行了简…...

C++的类型转换

目录 一、隐式类型转换的触发场景 1.基本数据类型间的转换 i.提升转换 ii.截断转换 2.类与对象的转换 i.单参数构造函数 ii.类型转换运算符 3.继承体系中的指针/引用转换 向上转型 二、隐式转换的风险与问题 1.意外行为 2.二义性错误 3.性能损耗 三、C强制类型转…...

嵌入式项目:STM32刷卡指纹智能门禁系统

本文详细介绍基于STM32的刷卡指纹智能门禁系统。 获取资料/指导答疑/技术交流/选题/帮助&#xff0c;请点链接&#xff1a; https://gitee.com/zengzhaorong/share_contact/blob/master/stm32.txt 1 系统功能 1.1 功能概述 本系统由STM32硬件端&#xff08;下位机&#xff09;…...

DeepSeek基础之机器学习

文章目录 一、核心概念总结&#xff08;一&#xff09;机器学习基本定义&#xff08;二&#xff09;基本术语&#xff08;三&#xff09;假设空间&#xff08;四&#xff09;归纳偏好&#xff08;五&#xff09;“没有免费的午餐”定理&#xff08;NFL 定理&#xff09; 二、重…...

Docker 搭建 Nginx 服务器

系列文章目录 Docker 搭建 Nginx 服务器 系列文章目录前言一、准备工作二、设置 Nginx 容器的目录结构三、启动一个临时的 Nginx 容器来复制配置文件四、复制 Nginx 配置文件到本地目录五、删除临时 Nginx 容器六、创建并运行 Nginx 容器&#xff0c;挂载本地目录七、修改 ngin…...

【Docker基础】理解 Docker:本质、性质、架构与核心组件

文章目录 Docker 本质Docker 的引擎迭代Docker 和虚拟机的区别Docker 为什么比虚拟机资源利用率高&#xff0c;速度快&#xff1f;Docker 和 JVM 虚拟化的区别Docker 版本1. LXC (Linux Containers)2. libcontainer3. Moby4. docker-ce5. docker-ee总结&#xff1a; Docker 架构…...

QT:QLinearGradient、QRadialGradient、QConicalGradient

QLinearGradient QLinearGradient 是 Qt 框架中用于创建线性渐变的类&#xff0c;它允许在图形绘制中实现颜色沿着一条直线的平滑过渡效果。以下是关于 QLinearGradient 的详细介绍&#xff1a; 基本概念&#xff1a;线性渐变是指颜色从一个点&#xff08;起始点&#xff09;沿…...

MySql:Authentication plugin ‘caching sha2 password‘ cannot be loaded

报错问题解释 在 MySQL 数据库中&#xff0c;如果你尝试使用 caching_sha2_password 插件进行认证&#xff0c;但是遇到错误信息 "Authentication plugin caching sha2 password cannot be loaded"&#xff0c;这通常意味着客户端库或者连接器不兼容或者没有正确配置…...

c++类知识点复习与总结

类 c 是一种人机交互的面向对象的编程语言&#xff0c;面向对象思想主要体现在 类 上。 类是具有相同属性和相同行为的对象的集合&#xff0c; 具有封装&#xff0c;继承&#xff0c;多态的特性。 类的定义 class 类名 { }&#xff1b; 封装 例如&#xff1a;人就是一种类…...

Redis快速入门

一、Redis介绍 Redis 是一个开源&#xff08;BSD许可&#xff09;的&#xff0c;内存中的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构&#xff0c;如 字符串&#xff08;strings&#xff09;&#xff0c;散列&#xff08;has…...

嵌入式开发:傅里叶变换(5):STM32和Matlab联调验证FFT

目录 1. MATLAB获取 STM32 的原始数据 2. 将数据上传到电脑 3. MATLAB 接收数据并验证 STM32进行傅里叶代码 结果分析 STM32 和 MATLAB 联调是嵌入式开发中常见的工作流程&#xff0c;通常目的是将 STM32 采集的数据或控制信号传输到 MATLAB 中进行实时处理、分析和可视化…...

LLM/VLM进行票据识别工作

​ 票据识别任务的需求是给定不同类型的票据图像&#xff0c;提取出指定的字段值&#xff0c;以json格式给出结构化信息。 目前的范式包括OCR&#xff0c;OCRLLM, OCRVLM&#xff0c;VLM四种方法。 一、OCR 利用OCR技术进行图像文字识别。 例如&#xff1a;https://github.c…...

AWS SDK for Java 1.x 403问题解决方法和原因

问题表现 使用AWS SDK for Java 1.x访问S3&#xff0c;已经确认文件存在&#xff0c;且具有权限&#xff0c;仍然出现403 Forbidden应答。 解决方法 升级到AWS SDK for Java 2.x。 问题原因 AWS签名机制严格依赖请求的精确路径格式&#xff0c;任何URI的差异&#xff08;如…...

Spring Boot 项目中,JDK 动态代理和 CGLIB 动态代理的使用

在 Spring Boot 项目中&#xff0c;JDK 动态代理和 CGLIB 动态代理都是实现 AOP (面向切面编程) 的重要技术。 它们的主要区别在于代理对象的生成方式和适用范围。 下面详细介绍它们的使用场景&#xff1a; 1. JDK 动态代理 (JDK Dynamic Proxy) 原理&#xff1a; JDK 动态代理…...

蓝桥杯备赛-精卫填海-DP

精卫终于快把东海填平了&#xff01;只剩下了最后的一小片区域了。同时&#xff0c;西山上的木石也已经不多了。精卫能把东海填平吗&#xff1f; 事实上&#xff0c;东海未填平的区域还需要至少体积为 v 的木石才可以填平&#xff0c;而西山上的木石还剩下 n 块&#xff0c;每块…...

萌新学 Python 之闭包函数

闭包函数&#xff1a;在一个函数体内嵌套函数&#xff0c;是一个函数对象&#xff0c;允许在内部函数中修改或引用外部函数的变量 闭包函数对数据有封存功能 闭包函数需要满足以下几个条件&#xff1a; 1.函数必须有一个嵌套函数&#xff0c;在定义函数时&#xff0c;内部再…...

AI创作教程:用deepseek和猫箱做互动故事游戏

年轻的时候我看过典型的玛丽苏文学、小妞文学&#xff0c;老了虽然识破这是给女孩编织的琉璃般的梦&#xff0c;看起来梦幻美丽其实一击就碎&#xff0c;会伤人的碎渣渣。【叠甲完毕】 本来我想用橙光的&#xff0c;但是橙光的话&#xff0c;最好把剧本和立绘都多打磨一下。快…...

【Linux探索学习】第三十一弹——线程互斥与同步(下):深入理解确保线程安全的机制

线程互斥与同步&#xff08;上&#xff09;&#xff1a;【Linux探索学习】第三十弹——线程互斥与同步&#xff08;上&#xff09;&#xff1a;深入理解线程保证安全的机制-CSDN博客 Linux探索学习&#xff1a; https://blog.csdn.net/2301_80220607/category_12805278.html?…...

博客系统完整开发流程

前言 通过前⾯课程的学习, 我们掌握了Spring框架和MyBatis的基本使用, 并完成了图书管理系统的常规功能开发, 接下来我们系统的从0到1完成⼀个项⽬的开发. 企业开发的流程 1. 需求评审(产品经理(PM)会和运营(想口号),UI,测试,开发等沟通) ,会涉及到背景/目标/怎么做,可能会有多…...

【C++】面试常问八股

5、内存管理 野指针 野指针指的是未进行初始化或未清零的指针&#xff0c;不是NULL指针野指针产生原因及解决方案&#xff1a; 指针变量未初始化&#xff1a;指针变量定义时若未初始化&#xff0c;则其指向的地址是随机的&#xff0c;不为NULL&#xff1b;定义时初始化为NULL…...

自定义提交按钮触发avue-form绑定的submit事件

场景 使用avue-form时&#xff0c;提交按钮会绑定至form区域下方&#xff0c;如果想自定义按钮位置&#xff0c;需要通过dialog的footer位置进行编写&#xff0c;例如&#xff1a; <avue-form ref"form" v-model"dataInfo" :option"dataInfoOpti…...

HarmonyOS 无线调试

下载sdk 找到hdc位置> C:\Users\27638\AppData\Local\OpenHarmony\Sdk\14\toolchains 不要去DevEco Studio的窗口不知道为什么调不动 hdc tconn IP:PORT...

Android之APP更新(通过接口更新)

文章目录 前言一、效果图二、实现步骤1.AndroidManifest权限申请2.activity实现3.有版本更新弹框UpdateappUtilDialog4.下载弹框DownloadAppUtils5.弹框背景图 总结 前言 对于做Android的朋友来说&#xff0c;APP更新功能再常见不过了&#xff0c;因为平台更新审核时间较长&am…...

二、大模型微调技术栈全解析

大模型微调技术栈全解析&#xff1a;从微调方法到算力支撑 在大模型的领域中&#xff0c;微调&#xff08;Fine-tuning&#xff09;就像是为模型量身定制的高级裁缝服务&#xff0c;能够让通用的大模型更好地适应特定的任务和场景。而要完成这项精细的工作&#xff0c;需要一整…...

设置 C++ 开发环境

设置 C++ 开发环境 C++ 是一种通用编程语言,现在广泛用于竞争性编程。它具有命令式、面向对象的和通用编程功能。 C++ 可以在许多平台上运行,如 Windows、Linux、Unix、Mac 等。在我们开始使用 C++ 编程之前。我们需要在本地计算机上设置一个环境,以便成功编译和运行我们的…...

计算机基础知识

1、RAM和ROM RAM&#xff1a;随机存取存储器&#xff0c;也叫做主存。是与CPU直接交换数据的内部存储器。这种存储器在断电时将丢失其数据&#xff0c;故主要用于短时间使用的程序。 ROM&#xff1a;即只读存储&#xff0c;是一种只能读出事先所存数据的固态半导体存储器 2、…...

蓝桥杯——按键

一&#xff1a;按键得原理图 二&#xff1a;按键的代码配置 step1 按键原理图对应引脚配置为输入状态 step2 在GPIO中将对应引脚设置为上拉模式 step3 在fun.c中写按键扫描函数 写完后的扫描函数需放在主函数中不断扫描 扫描函数主要通过两个定义变量的值来判断&#xf…...

Zemax OpticStudio 中的扩散器建模

在 Zemax OpticStudio 中构建漫射器涉及创建散射或漫射光的表面或物体。以下是有关如何在 Zemax OpticStudio 中创建漫射器的一般指南&#xff1a; 转到非序列模式 (NSC) 选项卡。NSC 对于模拟与物体而非表面相互作用的非序列射线很有用。 在需要散光器的位置创建新对象。对象…...

网络安全防御:蓝队重保备战与应急溯源深度解析

课程目标 本课程旨在培养专业的网络安全蓝队成员&#xff0c;通过系统化的学习和实战演练&#xff0c;使学员能够掌握网络安全防御的核心技能&#xff0c;包括资产测绘、应急响应、系统安全应急溯源分析、网络层溯源分析以及综合攻防演练等。学员将能够熟练运用各种工具和技术…...

MySQL 和 Elasticsearch 之间的数据同步

MySQL 和 Elasticsearch 之间的数据同步是常见的需求&#xff0c;通常用于将结构化数据从关系型数据库同步到 Elasticsearch 以实现高效的全文搜索、聚合分析和实时查询。以下是几种常用的同步方案及其实现方法&#xff1a; 1. 应用层双写&#xff08;双写模式&#xff09; 原…...

【深度学习】矩阵的核心问题解析

一、基础问题 1. 如何实现两个矩阵的乘法&#xff1f; 问题描述&#xff1a;给定两个矩阵 A A A和 B B B&#xff0c;编写代码实现矩阵乘法。 解法&#xff1a; 使用三重循环实现标准矩阵乘法。 或者使用 NumPy 的 dot 方法进行高效计算。 def matrix_multiply(A, B):m, n …...

汽车开放系统架构(AUTOSAR)中运行时环境(RTE)生成过程剖析

一、引言 在当今高度智能化的汽车电子领域&#xff0c;软件系统的复杂性呈指数级增长。为了应对这一挑战&#xff0c;汽车开放系统架构&#xff08;AUTOSAR&#xff09;应运而生&#xff0c;它为汽车电子软件开发提供了标准化的分层架构和开发方法。其中&#xff0c;运行时环境…...