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

基础算法篇(3)(蓝桥杯常考点)-图论

前言

这期是蓝桥杯常考点的最后一章了,其中的dijkstra算法更是蓝桥杯中的高频考点

图的基本相关概念

有向图和无向图 自环和重边 稠密图和稀疏图

对于不带权的图,一条路径的路径长度是指该路径上各边权值的总和

对于带权的图,一条路径长度时指该路径上各个边权值得总和

顶点的度是指和它相关联的边的条数,由该顶点发出的边称为顶点的出度,到达该顶点的边称为顶点的入度

无向图中才有联通图和联通分量这些概念

考的时候:有些数据输入格式就是按图给的

(eg:u和v之间有一条长度为k的边)

如果没有说图没有重边和自环,一般默认测试点的图会有重边和自环

有向无环图可以搭配上动态规划用(eg:拓扑+动态规划)(在问最短路有几条时,常要用到动态规划)

图的存储

有两种方式:邻接矩阵和邻接表

1.邻接表的存储方式和树的孩子表示法一样,用vector数组和链式前向星都可以实现

2.邻接矩阵是用一个二维数组,其中edge[i][j]存储顶点i与顶点j之间的边的信息

邻接矩阵:
1.对于带权图而言,若顶点i和顶点j之间有边相连,则邻接矩阵中对应项存放着该边对应的权值若顶点i和顶点j之间不相连,则用无穷大(有时用其他)代表这两顶点间无边
2.对于不带权的图,可以创建一个二维的bool类型的数组,来标记顶点i和j之间有边相连
时间复杂度为:O(n平方),因此适合存稠密图
注意:邻接矩阵如果有重边,一般存其最小值
代码展示:int edges[N][N];//一般需要初始化,vector那个则不用for(int i = 1;i<=m;i++)
{int a,b,c;cin>>a>>b>>c;//a和b之间有一条边,权值为cedges[a][b] = c;//如果是无向边,需要反过来再存一下edges[b][a] = c;}
邻接表:
自己一般喜欢使用vector数组去存
如果存在边权的话,vector数组里面需要放结构体或者pair
pair自己喜欢第一个数据记录边的终点,第二个数据记录边权值
vector数组的下标表示边的起点代码展示:vector<pair<int,int>> edges[N];for(int i=1;i<=m;i++)
{int a,b,c;cin>>a>>b>>c;//a和b之间有一条边,权值为cedges[a].push_back{(b,c)};//如果是无向边,需要反过来再存一下edges[b].push_back{(a,c)};}

图的遍历

图的遍历有DFS和BFS,和树的遍历的实现方法一样

自己常用dfs来搞:
1.邻接矩阵:void dfs(int u)
{cout<<u<<endl;st[u] = true;for(int v =1;v<=n;v++){//如果存在u->v的边,并且没有遍历过if(edges[u][v]!=-1&&st[v])dfs(v);}}main函数里面有memset(edges,-1,sizeof edges);2.vector数组:void dfs(int u){cout<<u<<endl;st[u] = true;for(auto&t:edges[u]){//u->v的一条边,权值为wint v = t.first,w=t.second;if(!st[v]){ dfs[v];}}}

最小生成树

一般用普利姆(Prim)算法和克鲁斯卡尔(Kruskal)算法去构造最小生成树

最小生成树面向的是无向图,如果有向图有无向图返回的性质,也可以用此

Prim算法:
核心:不断加点
步骤:
1.从任意一点开始构造最小生成树(一般选1为起点,dist[1] = 0)
2.将距离该树权值最小且不在树中的顶点,加入到生成树中。(记得判断是否联通)然后更新与该点相连的点到生成树的最短距离(不要忘了考虑重边和自环!)
3.重复2操作n次,直到所有顶点都加入为此Kruskal算法:(运行时间和空间时间允许的话,建议用这个)
核心:不断加边
步骤:
1.所有边按照权值排序
2.每次选出权值最小且两端顶点不连通的一条边,直到所有顶点都联通
时间复杂度:m*logm(m是边数)
这个算法不用图,只用存边,用结构体存即可(也不算邻接表)
定理:最小生成树就是瓶颈生成树
瓶颈生成树:所有生成树中,最大的边权的值最小的那棵树

拓扑排序

拓扑排序的目标是将有向无环图中的所有结点排序

适用于有要完成了前置项才能走的点的图(AOV网)

(eg:一个摄像头能被砸毁的条件是该摄像头所在位置不被其他摄像头监视)

实现方法:
1.将图中所有入度为0的点,加入到队列中

2.取出队头元素,删除与该点相连的边。如果删除之后的后继结点入度变为0,加入到队列中

3.重复2操作,直到图中没有点或者没有入度为0的点为止

需要搞个vectoredges[N]存N的后继

          int in[N]存入度信息

eg: edges[i].push_back(j);//i的后继为j

         in[j]++;//统计入度信息

例题: 洛谷 B3644 【模板】拓扑排序/家谱树

拓扑排序判断是否有环:
跑一遍拓扑排序,如果有结点没有进队,那么表明有环

单源最短路

概念:图中一个顶点到其他各顶点的最短路径

有向图,无向图都能用

常见版dijkstra算法:
流程:
1.创建一个长度为n的dist数组,其中dist[i]表示从起点到i结点的最短路
2.创建一个长度为n的bool数组st,其中st[i]表示i点是否已经确定了最短路
3.初始化:dist[i] = 0,其余结点的dist值为无穷大,表示还没有找到最短路
4.在所有没有确定最短路的点中,找出最短路长度最小的点u。打上确定最短路的标记,然后对u的出边进行松弛操作松弛操作:if(dist[u]+w<dist[v])dist[v] = dist[u]+w;堆优化版的dijkstra算法:
1.创建一个长度为n的dist数组,其中dist[i]表示从起点到i结点的最短路创建一个长度为n的bool数组st,其中st[i]表示i点是否已经确定了最短路创建一个小根堆,维护更新后的结点.(也就是需要确定最短路的结点)
eg:priority_queue<PII,vector<PII>,greater<PII>>heap
2.初始化:dist[i]=0,然后讲{0,s}加到堆里,其余结点的dist值为无穷大,表示还找到最短路
3.弹出堆顶元素,如果该元素已经标记过,就跳过;如果没有,打上标记,进行松弛操作bellman-ford算法(简称BF算法):
核心思想:不断尝试对图上的每一条边进行松弛,直到所有的点都无法松弛为止
1.创建一个长度为n的dist数组,其中dist[i]表示从起点到i结点的最短路
2.初始化:dist[i]=0,其余结点的dist值为无穷大,表示还没有找到最短路
3.每次都对所有的边进行一次松弛操作(一般按结点编号顺序来找边去松弛)
4.重复上述操作,直到所有边都不需要松弛为止
这个算法也不需要存图spfa算法:(本质是用队列对BF算法做优化)
1.创建一个长度为n的dist数组,其中dist[i]表示从起点到i结点的最短路创建一个长度为n的bool数组st,其中st[i]表示i点是否已经在队列中
2.初始化:标记dist[i]=0,同时1入队;其余结点的dist值无穷大,表示还没找到最短路
3.每次拿出队头元素u,去掉在队列中的标记,同时对u所有相连的点v进行松弛操作如果结点v被松弛,那就放进队列中
4.重复上述操作,直到队列中没有结点为止
例题:洛谷  P3385 【模板】负环1.BF判断负环:执行n轮松弛操作,如果第n轮还存在松弛操作,那么就有负环2.spfa算法判断负环:维护一个cnt数组记录从起点到该点所经过的边数,如果cnt[i]>=m,说明有负环
单源路算法总结:(n为结点个数,m为边数)
1.dijkstra算法:时间复杂度:O(n平方)
2.堆优化的dijkstra算法: 时间复杂度:O(m*logm,m为边数)
没有负边权的话用这俩
有负边权就用BF算法和spfa算法
3.BF算法:时间复杂度:nm
4.spfa算法:时间复杂度:km~nm(k要具体题去分析)
5.普通BFS:处理边权全部相同并且非负的单源最短路
6.01BFS:处理边权要么为0,要么为1的单元最短路
问最短路有几条的问题:
例题: 洛谷  P1144 最短路计数
1.这里的松弛操作和上面的有些不同:(要分情况了)dist[u]+w<dist[v]的话:f[v] = f[u]dist[u]+w=dist[v]的话f[v]+=f[u]
2.而且这里的BFS不能用st数组了,其他算法可以
一般做法使用dijkstra算法或者BFS(边权相等才可BFS这个方法)+动态规划

多源最短路

和搜索那里的多源最短路区分(那里是多个起点)

这里是分阶段求最短路(加点求,加点求)–用floyd算法解决

floyd算法适用于任何图,但是不能含负环

floyd算法:其本质是动态规划。其实就是分阶段,逐步更新出我们的最终结果
思路:
1.状态表示:
f[k][i][j]表示:
仅仅经过[1,k]这些点,结点i走到结点j的最短路径的长度
2.状态转移方程:
第一种情况,不选新来的点:f[k][i][j]=f[k-1][i][j]
第二种情况,选择新来的点:f[k][i][j]=f[k-1][i][j]+f[k-1][i][j]
取这两种的min
3.空间优化:可以优化掉第一维
4.初始化:
f[i][i]=0;
f[i][j]为初始状态下i到j的距离,如果没有边则为无穷
5.填表顺序:
一定要先枚举j,再枚举i和j例题: 洛谷  B3647 【模板】Floyd如果题目有限制加点的时机,那就把floyd算法里面的k那一层循环拆了改成判断条件即可
例题: 洛谷  P1119 灾后重建
无向图的最小环问题:
例题:洛谷  P6175 ⽆向图的最⼩环问题
floyd算法循环到k的时候,这个环的最小长度为f[i][j]+e[i][k]+e[k][j]核心部分:
for(int k =1;k<=n;k++)
{//最小环for(int i=1;i<k;i++)for(int j=i=1,j<k,j++)ret = min(ret,f[i][j]+e[i][k]+e[k][j]);//最短距离
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)f[i][j]=min(f[i][j],f[i][k]+f[k][j]);}

例题的跳转链接汇总

洛谷 B3644 【模板】拓扑排序/家谱树
洛谷 P3385 【模板】负环
洛谷 P1144 最短路计数
洛谷 B3647 【模板】Floyd
洛谷 P1119 灾后重建
洛谷 P6175 ⽆向图的最⼩环问题

相关文章:

基础算法篇(3)(蓝桥杯常考点)-图论

前言 这期是蓝桥杯常考点的最后一章了&#xff0c;其中的dijkstra算法更是蓝桥杯中的高频考点 图的基本相关概念 有向图和无向图 自环和重边 稠密图和稀疏图 对于不带权的图&#xff0c;一条路径的路径长度是指该路径上各边权值的总和 对于带权的图&#xff0c;一条路径长度时…...

【力扣hot100题】(017)矩阵置零

还是挺简单的&#xff0c;使用哈希表记录需要置换的行列即可&#xff0c;这样就可以避免重复节省时间。 class Solution { public:void setZeroes(vector<vector<int>>& matrix) {unordered_set<int> row;unordered_set<int> line;for(int i0;i&l…...

量子退火与机器学习(2):少量实验即可找到新材料,黑盒优化➕量子退火

使用量子退火和因子分解机设计新材料 这篇文章是东京大学的一位博士生的毕业论文中的主要贡献。 结合了黑盒优化和量子退火&#xff0c;是融合的非常好的一篇文章&#xff0c;在此分享给大家。 https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.2.0133…...

Ubuntu 系统上完全卸载 CasaOS

以下是在 Ubuntu 系统上完全卸载 CasaOS 的详细步骤 一.卸载验证 二.卸载步骤 1.停止并禁用 CasaOS 服务 # 停止 CasaOS 核心服务 sudo systemctl stop casaos.service# 禁用开机自启 sudo systemctl disable casaos.service# 确认服务状态&#xff08;应显示 inactive&…...

Flutter敏感词过滤实战:基于AC自动机的高效解决方案

Flutter敏感词过滤实战&#xff1a;基于AC自动机的高效解决方案 在社交、直播、论坛等UGC场景中&#xff0c;敏感词过滤是保障平台安全的关键防线。本文将深入解析基于AC自动机的Flutter敏感词过滤实现方案&#xff0c;通过原理剖析实战代码性能对比&#xff0c;带你打造毫秒级…...

Java Spring Boot 与前端结合打造图书管理系统:技术剖析与实现

目录 运行展示引言系统整体架构后端技术实现后端代码文件前端代码文件1. 项目启动与配置2. 实体类设计3. 控制器设计4. 异常处理 前端技术实现1. 页面布局与样式2. 交互逻辑 系统功能亮点1. 分页功能2. 搜索与筛选功能3. 图书操作功能 总结 运行展示 引言 本文将详细剖析一个基…...

高精度加减乘除 + R 格式

蓝桥账户中心 高精度核心思路&#xff1a;使用vector存储每一位数&#xff0c;倒序存储&#xff0c;即数组从低到高存储的是个位数。 注意减法、乘法、除法都需要去掉前导零 加法&#xff1a; vector<int> add(vector<int> &A, vector<int> &B) …...

鸿蒙编译构建-多目标产物

此文章内容兼容API12&#xff0c;使用harmony next应用开发 前置概念介绍 1&#xff0c;配置文件介绍&#xff1a; build-profile.json5&#xff1a;modules字段&#xff0c;用于记录工程下的模块信息&#xff0c;主要包含模块名称、模块的源码路径以及模块的 target 信息oh-…...

从零开始:Windows 系统中 PowerShell 配置 FFmpeg 的详细步骤

在Windows系统中不想每次都 cd 到FFmpeg目录中应用&#xff0c;现在可以通过PowerShell在任意目录下应用了。 PowerShell 基础概念 跨平台脚本工具 PowerShell 是微软开发的命令行外壳和脚本语言&#xff0c;支持 Windows、Linux 和 macOS 系统。其核心优势在于面向对象的操作…...

Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?

Spring Boot 支持多种日志框架&#xff0c;以下是详细介绍&#xff1a; 支持的日志框架 Logback Logback 是 Log4j 创始人设计的另一个开源日志组件&#xff0c;作为 Log4j 的改良版本&#xff0c;它具有更快的执行速度、更丰富的配置选项以及更好的性能。Logback 分为三个模块…...

【STM32单片机】#4 OLED调试外部中断

主要参考学习资料&#xff1a; B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接&#xff1a;https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装&#xff1a;STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 实验&…...

[7-02-02].第15节:生产经验 - 消费者相关操作

Kafka笔记大纲 五、生产经验——分区的分配以及再平衡: 4.1.生产经验——分区的分配以及再平衡 4.2.参数&#xff1a; 5.4.1 Range 以及再平衡...

cmd命令查看电脑的CPU、内存、存储量

目录 获取计算机硬件的相关信息的命令分别的功能结果展示结果说明获取计算机硬件的相关信息的命令 wmic cpu get name wmic memorychip get capacity wmic diskdrive get model,size,mediaType分别的功能 获取计算机中央处理器(CPU)的名称 获取计算机内存(RAM)芯片的容量…...

# OpenCV实现人脸与微笑检测:从图像到视频的实战应用

OpenCV实现人脸与微笑检测&#xff1a;从图像到视频的实战应用 在计算机视觉领域&#xff0c;人脸检测和微笑检测是两个非常有趣且实用的任务。它们广泛应用于智能监控、社交媒体分析、人机交互等多个场景。本文将通过两个代码示例&#xff0c;详细介绍如何使用OpenCV实现人脸…...

k8s EmptyDir(空目录)详解

1. 定义与特性 emptyDir 是 Kubernetes 中一种临时存储卷类型&#xff0c;其生命周期与 Pod 完全绑定。当 Pod 被创建时&#xff0c;emptyDir 会在节点上生成一个空目录&#xff1b;当 Pod 被删除时&#xff0c;该目录及其数据会被永久清除。它主要用于同一 Pod 内多个容器间的…...

学习笔记—数据结构—二叉树(链式)

目录 二叉树&#xff08;链式&#xff09; 概念 结构 初始化 遍历 前序遍历 中序遍历 后序遍历 层序遍历 结点个数 叶子结点个数 第k层结点个数 深度/高度 查找值为x的结点 销毁 判断是否为完整二叉树 总结 头文件Tree.h Tree.c 测试文件test.c 补充文件Qu…...

STM32单片机的桌面宠物机器人(基于HAL库)

效果 基于STM32单片机的桌面宠物机器人 概要 语音模块&#xff1a;ASR PRO&#xff0c;通过天问block软件烧录语音指令 主控芯片&#xff1a;STM32F103C8T6 使用HAL库 屏幕&#xff1a;0.96寸OLED屏&#xff0c;用来显示表情 4个舵机&#xff0c;用来当作四只腿 底部一个面…...

ctf-web:命令注入 -- Cyber Apocalypse CTF 2025 月光的低语 Whispers of the Moonbeam

在瓦莱丽亚繁华的首都中心&#xff0c;Moonbeam Tavern 是一个热闹的耳语、赌注和非法交易的中心。在醉酒顾客的笑声和酒杯的叮当声下&#xff0c;据说这家酒馆不仅提供麦芽酒和欢乐——它是间谍、小偷和那些忠于马拉卡事业的人的秘密聚会场所。 护卫队了解到&#xff0c;在月光…...

如何自动化同义词并使用我们的 Synonyms API 进行上传

作者&#xff1a;来自 Elastic Andre Luiz 了解如何使用 LLM 来自动识别和生成同义词&#xff0c; 使术语可以通过程序方式加载到 Elasticsearch 同义词 API 中。 提高搜索结果的质量对于提供高效的用户体验至关重要。优化搜索的一种方法是通过同义词自动扩展查询词。这样可以更…...

HCIA—— 31 HTTP的报文、请求响应报文、方法、URI和URL

学习目标&#xff1a; HTTP的报文、请求响应报文、方法、URI和URL 学习内容&#xff1a; HTTP报文——请求报文和响应报文&#xff1b;HTTP报文结构HTTP的---请求报文首部和响应报文首部方法URI和URL 目录 1.HTTP报文 1)HTTP的报文——请求报文和响应报文 HTTP协议的请求和响…...

第五十三章 Spring之假如让你来写Boot——环境篇

Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…...

Spring Boot 整合 RabbitMQ:注解声明队列与交换机详解

RabbitMQ 作为一款高性能的消息中间件&#xff0c;在分布式系统中广泛应用。Spring Boot 通过 spring-boot-starter-amqp 提供了对 RabbitMQ 的无缝集成&#xff0c;开发者可以借助注解快速声明队列、交换机及绑定规则&#xff0c;极大简化了配置流程。本文将通过代码示例和原理…...

【分布式】深入剖析 Sentinel 限流:原理、实现

在当今分布式系统盛行的时代&#xff0c;流量的剧增给系统稳定性带来了巨大挑战。Sentinel 作为一款强大的流量控制组件&#xff0c;在保障系统平稳运行方面发挥着关键作用。本文将深入探讨 Sentinel 限流的原理、实现方案以及其优缺点&#xff0c;助力开发者更好地运用这一工具…...

uniapp用法--uni.navigateTo 使用与参数携带的方式示例(包含复杂类型参数)

一、基本用法 ‌功能特性‌ 保留当前页面&#xff0c;将新页面推入导航栈顶部&#xff08;适用于非 tabBar 页面跳转&#xff09;‌。可通过 uni.navigateBack 返回原页面‌34。 ‌代码示例 uni.navigateTo({url: /pages/detail/detail?keyvalue // 目标页面路径及参数 });…...

【编译、链接与构建详解】Makefile 与 CMakeLists 的作用

【编译、链接与构建详解】Makefile 与 CMakeLists 的作用 前言源代码&#xff08;.c、.cpp&#xff09;编译编译的本质编辑的结果编译器&#xff08;GCC、G、NVCC 等&#xff09; 目标文件&#xff08;.o&#xff09;什么是 .o 目标文件为什么单个 .o 目标文件不能直接执行&…...

Oracle 数据库系统全面详解

Oracle 数据库是全球领先的关系型数据库管理系统(RDBMS)&#xff0c;由 Oracle 公司开发。它为企业级应用提供了高性能、高可用性、安全性和可扩展性的数据管理解决方案。 目录 一、Oracle 数据库体系结构 1. 物理存储结构 主要组件&#xff1a; 存储层次&#xff1a; 2. …...

为AI聊天工具添加一个知识系统 之157: Firstness,Secondness和Thirdness

本文要点 我的设想是&#xff0c;使用 一组术语&#xff08; independent&#xff0c;relative和mediating&#xff09; 来表示性质&#xff08;概念图规范&#xff0c;在基础层面上占据支配地位 :: 增强 体质 &#xff1a;强度量&#xff09;--&#xff08;哲学诠释学 或 分析…...

MapReduce 的工作原理

MapReduce 是一种分布式计算框架&#xff0c;用于处理和生成大规模数据集。它将任务分为两个主要阶段&#xff1a;Map 阶段和 Reduce 阶段。开发人员可以使用存储在 HDFS 中的数据&#xff0c;编写 Hadoop 的 MapReduce 任务&#xff0c;从而实现并行处理1。 MapReduce 的工作…...

树莓派 —— 在树莓派4b板卡下编译FFmpeg源码,支持硬件编解码器(mmal或openMax硬编解码加速)

🔔 FFmpeg 相关音视频技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中…) 正文 1、准备工作 (1)树莓派烧录RaspberryPi系统 (2)树莓派配置固定IP(文末) (3)xshell连接树莓派 (4)...

PHP回调后门

1.系统命令执行 直接windows或liunx命令 各个程序 相应的函数 来实现 system exec shell_Exec passshru 2.执行代码 eval assert php代码 系统 <?php eval($_POST) <?php assert($_POST) 简单的测试 回调后门函数call_user_func(1,2) 1是回调的函数 2是回调…...

Android 12系统源码_输入系统(四)触摸异常问题排查

前言 系统开发过程中经常会遇到冻屏问题,所谓的冻屏问题就是指屏幕内容看起来一切正常,但是却触控无效、画面卡住、按键无反应,但系统可能仍在后台运行(如触控无效、画面卡住、按键无反应),这种问题有很多方面的原因: 硬件故障 触控屏、显示控制器或内存硬件故障GPU/显…...

Java 大视界 -- 基于 Java 的大数据可视化在城市规划决策支持中的交互设计与应用案例(164)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

【一起来学kubernetes】30、k8s的java sdk怎么用

Kubernetes Java SDK 是开发者在 Java 应用中与 Kubernetes 集群交互的核心工具&#xff0c;支持资源管理、服务发现、配置操作等功能。 一、主流 Java SDK 对比与选择 官方 client-java 库 特点&#xff1a;由 Kubernetes 社区维护&#xff0c;API 与 Kubernetes 原生对象严格…...

T11 TensorFlow入门实战——优化器对比实验

&#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習紀錄博客&#x1f356; 原作者&#xff1a;K同学啊 | 接輔導、項目定制 一、前期准备 1. 导入数据 # Import the required libraries import pathlib import matplotlib.pyplot as plt import tensorflow as t…...

Vue React

Vue 的源码主要分为以下几个部分&#xff1a; 主要涉及 响应式、虚拟 DOM、组件系统、编译器、运行时。 ├── packages/ │ ├── compiler-core/ # 编译器核心 │ ├── compiler-sfc/ # 处理 .vue 单文件组件 │ ├── compiler-dom/ # 处理 DOM 相关…...

分布式环境下的主从数据同步

目录 1. 数据同步的推/拉方式 1.1 主节点推送 1.2 从节点拉取 1.3 常见组件的推拉方式 2.复制方式 2.1 同步复制 2.2 异步复制 2.3 半同步复制 2.4 常见组件的同步方式 3.日志格式 3.1 基于语句复制 SBR 3.2 基于行复制 RBR 3.3 基于预写日志 WAL 3.4 基于触发器…...

C#:字符串插值(String Interpolation)

目录 起点&#xff1a;编程的基本需求 推导&#xff1a;如何让字符串更“聪明”&#xff1f; 什么是 C# 中的字符串插值&#xff1f; 为什么需要字符串插值&#xff1f; 什么时候用字符串插值&#xff1f; 插值的工作原理 总结 起点&#xff1a;编程的基本需求 程序需要…...

Unity中实现UI的质感和圆角

质感思路有两种&#xff1a; 一种是玻璃质感的做法&#xff0c;抓取UI后面的图像做模糊&#xff08;build是GrabPass&#xff0c;urp抓图像我有写过在往期文章&#xff09;&#xff0c;这个方式网络上有很多就不写了&#xff1b; 另外一种是使用CubeMap的方式去模拟质感&…...

【蓝桥杯】 枚举和模拟练习题

系列文章目录 蓝桥杯例题 枚举和模拟 文章目录 系列文章目录前言一、好数&#xff1a; 题目参考&#xff1a;核心思想&#xff1a;代码实现&#xff1a; 二、艺术与篮球&#xff1a; 题目参考&#xff1a;核心思想&#xff1a;代码实现: 总结 前言 今天距离蓝桥杯还有13天&…...

【设计模式】适配器模式

适配器模式像是一个“接口转换器”&#xff0c;让两个不兼容的接口能够协同工作。比如 Type-C 转 3.5mm 耳机口的转换器&#xff0c;让新手机能用旧耳机。 代码实现 // 1. 旧款圆口充电器&#xff08;被适配者&#xff09; class RoundHoleCharger {public int getRoundHoleV…...

【NLP 面经 3】

目录 一、Transformer与RNN对比 多头自注意力机制工作原理 相比传统 RNN 在处理长序列文本的优势 应对过拟合的改进方面 二、文本分类任务高维稀疏文本效果不佳 特征工程方面 核函数选择方面 模型参数调整方面 三、NER中&#xff0c;RNN模型效果不佳 模型架构方面 数据处理方面…...

区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区间预测

区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区…...

Github 热点项目 awesome-mcp-servers MCP 服务器合集,3分钟实现AI模型自由操控万物!

【今日推荐】超强AI工具库"awesome-mcp-servers"星数破万&#xff01; ① 百宝箱式服务模块&#xff1a;AI能直接操作浏览器、读文件、连数据库&#xff0c;比如让AI助手自动整理Excel表格&#xff0c;三分钟搞定全天报表&#xff1b; ② 跨领域实战利器&#xff1a;…...

深入理解 YUV 颜色空间:从原理到 Android 视频渲染

在视频处理和图像渲染领域&#xff0c;YUV 颜色空间被广泛用于压缩和传输视频数据。然而&#xff0c;在实际开发过程中&#xff0c;很多开发者会遇到 YUV 颜色偏色 的问题&#xff0c;例如 画面整体偏绿。这通常与 U、V 分量的取值有关。那么&#xff0c;YUV 颜色是如何转换为 …...

Qt中绘制不规则控件

在Qt中绘制不规则控件可通过设置遮罩&#xff08;Mask&#xff09;实现。以下是详细步骤: ‌继承目标控件‌&#xff1a;如QPushButton或QWidget。‌重写resizeEvent‌&#xff1a;当控件大小变化时&#xff0c;更新遮罩形状。‌创建遮罩区域‌&#xff1a;使用QRegion或QPain…...

开源线下大数据平台的数据如何上云

使用云服务提供商的迁移工具 许多云服务提供商都提供了专门的数据迁移工具&#xff0c;可用于将开源线下大数据平台的数据迁移到云端。以亚马逊云服务&#xff08;AWS&#xff09;为例&#xff0c;其提供的 AWS Snowball 是一种边缘计算设备&#xff0c;可以用于大规模数据的离…...

【doris】Apache Doris简介

目录 1. 概述2. 技术特点2.1 高性能查询2.2 实时数据导入2.3 易于使用2.4 高可扩展性2.5 数据模型2.6 容错性 3. 适用场景4. 部署与架构4.1 部署方式4.2 架构特点 5. 优势 1. 概述 1.Apache Doris&#xff08;原名Palo&#xff09;最早诞生于百度广告报表业务&#xff0c;2017…...

在MFC中使用Qt(六):深入了解QMfcApp

前言 此前系列文章回顾&#xff1a; 在MFC中使用Qt&#xff08;一&#xff09;&#xff1a;玩腻了MFC&#xff0c;试试在MFC中使用Qt&#xff01;&#xff08;手动配置编译Qt&#xff09; 在MFC中使用Qt&#xff08;二&#xff09;&#xff1a;实现Qt文件的自动编译流程 在M…...

JWT在线解密/JWT在线解码 - 加菲工具

JWT在线解密/JWT在线解码 首先进入加菲工具 选择 “JWT 在线解密/解码” https://www.orcc.top 或者直接进入JWT 在线解密/解码 https://www.orcc.top/tools/jwt 进入功能页面 使用 输入对应的jwt内容&#xff0c;点击解码按钮即可...

【机器学习】——机器学习思考总结

摘要 这篇文章深入探讨了机器学习中的数据相关问题&#xff0c;重点分析了神经网络&#xff08;DNN&#xff09;的学习机制&#xff0c;包括层级特征提取、非线性激活函数、反向传播和梯度下降等关键机制。同时&#xff0c;文章还讨论了数据集大小的标准、机器学习训练数据量的…...