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

【刷题2025】高级数据结构(并查集+优先队列+图论)

1.并查集

(1)基础理论

并查集是一种树形的数据结构,用于处理一些不相交集合的 合并查询 问题。比如,可以用并查集判断一个森林中有几棵树、某个节点是否属于某棵树。

并查集由一个整形数组 pre[] 和两个函数 find() 、 join() 构成。

  • 数组 pre[] 记录了每个点的前驱结点
  • find(x) 函数用于查找指定节点x属于哪个集合
  • join(x,y) 函数用于合并两个节点x、y
# find函数,寻找最上层节点(代表元)
def find(x):				# 查找 x 最上层节点while(pre[x] != x):	    # 如果x的上层不是自己(则说明找到的人不是最上层节点)x = pre[x]			# x 继续找上层节点,直到找到最上层节点为止return x				# 返回最上层节点# join函数,将两个节点合并到一棵树中
dfs join(x, y)                     # 将两个节点 x 和 y 合并到一棵树中fx, fy = find(x), find(y)      # 寻找 x, y 的代表元if(fx != fy)                   # 如果 x 和 y 的代表元不相等pre[fx]=fy                 # 则将 x 的代表元设置为 y

路径压缩算法 :将x到根节点路径上的所有点的pre(上级)都设为根节点

def find(x):               # 查找结点 x 的根结点 if pre[x] == x:return x		   # 递归出口:x 的代表元为 x 本身,即 x 为根结点pre[x] = find(pre[x])  # 找到 x 的上层节点,并将其上层节点更改为根节点return x	           # 将 x 到根节点路径上的所有节点的前驱结点更改为根节点 

路径压缩算法(加权标记法) :用权值大小决定谁做前驱结点

def union(x, y)x, y = find(x), find(y)	  # 寻找 x,y 的代表元if x==y:return 				  # 如果 x,y 的代表元一致,不需要合并,直接返回if rank[x]>rank[y]:       # 如果 x 的高度大于 y,则令 y 的上级为 xpre[y]=x		else:				      # 否则if rank[x]==rank[y]:rank[y]++	      # 如果 x 的高度和 y 的高度相同,则令 y 的高度加1pre[x]=y			  # 让 x 的上级为 y

 (2)字符串化繁为简

题目说明

给定一个输入字符串,字符串只可能由英文字母 ('a'~'z'、'A'~'Z' )和左右小括号 ('('、')')组成。当字符里存在小括号时,小括号是成对的,可以有一个或多个小括号对,小括号对不会嵌套,小括号对内可以包含1个或多个英文字母,也可以不包含英文字母。当小括号对内包含多个英文字母时,这些字母之间是相互等效的关系,而且等效关系可以在不同的小括号对之间传递,即当存在'a'和'b'等效和存在'b'和'c' 等效时,'a' 和 'c' 也等效,另外,同一个英文字母的大写字母和小写字母也相互等效 (即使它们分布在不同的括号对里)。
需要对这个输入字符串做简化,输出一个新的字符串,输出字符串里只需保留输入字符串里的没有被小括号对包含的字符(按照输入字符串里的字符顺序) ,并将每个字符替换为在小括号对里包含且字典序最小的等效字符。
如果简化后的字符串为空,请输出为"0"。
 
示例:
输入字符串为"never(dont)give(run)up(f)()",初始等效字符集合为('d','o','n','t')、('r','u','n'),由于等效关系可以传递,因此最终等效字符集合为('d','o','n','t','r','u'),将输入字符串里的剩余部分按字典序最小的等效字符替换后得到"devedgivedp"。

输入描述

input_string
输入为 1 行,代表输入字符串。

输出描述

output_string
输出为 1 行,代表输出字符串。

补充说明

输入字符串的长度在 1 ~ 100000 之间。

示例    
示例1    
输入    ()abd
输出    abd
说明    输入字符串里没有被小括号包含的子字符串为"abd",其中每个字符没有等效字符,输出为"abd"。
示例2    
输入    (abd)demand(fb)for
输出    aemanaaor
说明    等效字符集为('a','b','d','f'),输入字符串里没有被小括号包含的子字符串集合为 "demandfor",将其中字符替换为字典序最小的等效字符后输出为:"aemanaaor"。
示例3    
输入    ()happy(xyz)new(wxy)year(t)
输出    happwnewwear
说明    等效字符集为('x','y','z','w'),输入字符串里没有被小括号包含的子字符串集合为"happynewyear",将其中字符替换为字典序最小的等效字符后输出为:"happwnewwear"。
示例4    
输入    ()abcdefgAC(a)(Ab)(C)
输出    AAcdefgAC
说明    等效字符集为('a','A','b'),输入字符里没有被小括号包含的子字符串集合为"abcdefgAC",将其中字符替换为字典序最小的等效字符后输出为:"AAcdefgAC"。

# 这道题给我的启示就是虽然看错了题但是也能AC 75%
# 想开点吧孩子s = input()# 并查集实现
class UnionFindSet:def __init__(self, n):self.pre = [i for i in range(n)]def find(self, x):if x != self.pre[x]:self.pre[x] = self.find(self.pre[x])return self.pre[x]return xdef join(self, x, y):x_root = self.find(x)y_root = self.find(y)# 保证字典序小的字符优先为根if x_root < y_root:self.pre[y_root] = x_rootelse:self.pre[x_root] = y_rootdef solve():new_s = []  # 主体字符容器equal = []  # 等效字符容器ufs = UnionFindSet(128)  # 使用并查集记录等效传递关系, 数组索引对应 0~127 ASCII码值的字符letters = set()  # set记录已被加入到ufs的字母isOpen = False  # isOpen标志,表示有没有遇到 '(' 字符for c in s:if c == '(':isOpen = True  # 接下来将开始收集等效字符elif c == ')':isOpen = False  # 某个()内的等效字符收集完成if len(equal) == 0:continue# 括号间等效传递for letter in equal:# 不同括号间的大小写字母可以形成等效传递upper = letter - 32lower = letter + 32# set记录的是之前括号里面出现过的字母if lower in letters:ufs.join(letter, lower)if upper in letters:ufs.join(letter, upper)# 括号内等效传递cur_root = equal[0]for letter in equal:ufs.join(letter, cur_root)letters.add(letter)  # 将当前()内字符加入set# 清空eq, 用于收集下个()内的字母equal.clear()elif isOpen:equal.append(ord(c))  # 等效字符容器else:new_s.append(ord(c))  # 主体字符容器# 等效替换for i in range(128):root = ufs.find(i)  # 找到i字母的等效的字典序最小的字母root# 将i替换为rootfor j in range(len(new_s)):if new_s[j] == i:new_s[j] = rootres = "".join(map(lambda x: chr(x), new_s))if len(res) == 0:return("0")  # 如果简化后的字符串为空,请输出为"0"else:return(res)print(solve())

(3)服务器广播

题目描述
服务器连接方式包括直接相连,间接连接。

A和B直接连接,B和C直接连接,则A和C间接连接。

直接连接和间接连接都可以发送广播。

给出一个N*N数组,代表N个服务器,

matrix[i][j] == 1,
则代表i和j直接连接;不等于 1 时,代表i和j不直接连接。

matrix[i][i] == 1,

即自己和自己直接连接。matrix[i][j] == matrix[j][i]。

计算初始需要给几台服务器广播, 才可以使每个服务器都收到广播。

输入描述
输入为N行,每行有N个数字,为0或1,由空格分隔,

构成N*N的数组,N的范围为 1 <= N <= 40

输出描述
输出一个数字,为需要广播的服务器的数量

示例1

# 输入
1 0 0
0 1 0
0 0 1# 输出
3# 说明:3 台服务器互不连接,所以需要分别广播这 3 台服务器

示例2

# 输入
1 1
1 1# 输出
1# 说明:2 台服务器相互连接,所以只需要广播其中一台服务器

# 要在ufs的定义函数中做文章,self.pre可以不使用,也可以在init里定义其他需要用到的参数
# 本题中进行一次join操作相当于少了一个需要广播的计算机
# 因此对join函数进行改动matrix = []
while True:try:matrix.append(list(map(int, input().split())))except:breakclass UnionFindSet:def __init__(self, n):self.pre = [i for i in range(n)]self.count = ndef find(self, x):if x != self.pre[x]:self.pre[x] = self.find(self.pre[x])return self.pre[x]return xdef join(self, x, y):x_root = self.find(x)y_root = self.find(y)if x_root != y_root:self.pre[y_root] = x_rootself.count -= 1returndef solve():n = len(matrix)ufs = UnionFindSet(n)for i in range(n):for j in range(i, n):if matrix[i][j] == 1:ufs.join(i, j)return ufs.countprint(solve())

 (4)走梅花桩

题目描述

少林寺武僧有一项训练科目就是走梅花桩,现在有 m 行 n 列的梅花桩,每个梅花桩都有一个高度,若相邻梅花桩之间的高度相差为 x,则可以走到相邻梅花桩上。

少林武僧可以选择任意起始位置,请你计算出少林武僧最多可以走多少个梅花桩。

输入描述

第一行输入 m 和 n 和 x,以空格分隔。m 和 n 不大于100。高度差 x 不大于10。

之后 m 行,每行 n 个数,分别表示梅花桩的高度。高度不大于100。

输出描述

请输出少林武僧最多可以走的梅花桩数量。

用例

输入

5 5 1
1 2 3 4 5
9 8 7 6 5
9 9 9 9 9
1 2 3 4 5
1 2 3 4 5

输出

15
# 竟然会做了!惊喜!
m, n, x = list(map(int, input().split()))
matrix = []
for _ in range(m):matrix.append(list(map(int, input().split())))
# print(matrix)class UnionFindSet:def __init__(self, m, n):self.pre = [i for i in range(m*n)]def find(self, x):if x != self.pre[x]:self.pre[x] = self.find(self.pre[x])return self.pre[x]return xdef join(self, x, y):x_root = self.find(x)y_root = self.find(y)if x_root != y_root:self.pre[y_root] = x_rootdef solve():ufs = UnionFindSet(m, n)dir = ((-1, 0), (0, -1), (1, 0), (0, 1))for i in range(m):for j in range(n):for d in dir:newi = i + d[0]newj = j + d[1]if 0 <= newi < m and 0 <= newj < n and abs(matrix[i][j] - matrix[newi][newj]) <= x:ufs.join(n*i+j, n*newi+newj)else:continueans = [0 for _ in range(m*n)]for index in range(m*n):ans[ufs.find(index)] += 1return max(ans)print(solve())

 (5)Linux 发行版的数量

题目描述
Linux操作系统有多个发行版,distrowatch.com提供了各个发行版的资料。这些发行版互相存在关联,例如Ubuntu基于Debian开发,而Mint又基于Ubuntu开发,那么我们认为Mint同Debian也存在关联。

发行版集是一个或多个相关存在关联的操作系统发行版,集合内不包含没有关联的发行版。

给你一个 n * n 的矩阵 isConnected,其中 isConnected[i][j] = 1 表示第 i 个发行版和第 j 个发行版直接关联,而 isConnected[i][j] = 0 表示二者不直接相连。

返回最大的发行版集中发行版的数量。

输入描述
第一行输入发行版的总数量N,

之后每行表示各发行版间是否直接相关

输出描述
输出最大的发行版集中发行版的数量

备注
1 ≤ N ≤ 200

用例

# 输入
4
1 1 0 0
1 1 1 0
0 1 1 0
0 0 0 1# 输出
3# 说明
Debian(1)和Unbuntu(2)相关
Mint(3)和Ubuntu(2)相关,
EeulerOS(4)和另外三个都不相关,
所以存在两个发行版集,发行版集中发行版的数量分别是3和1,所以输出3。
n = int(input())
matrix = []
for _ in range(n):matrix.append(list(map(int, input().split())))class UnionFindSet:def __init__(self, n):self.pre = [i for i in range(n)]def find(self, x):if x != self.pre[x]:self.pre[x] = self.find(self.pre[x])return self.pre[x]return xdef join(self, x, y):x_root = self.find(x)y_root = self.find(y)if x_root != y_root:self.pre[y_root] = x_rootdef solve():ufs = UnionFindSet(n)for i in range(n):for j in range(i+1, n):if matrix[i][j] == 1:ufs.join(i, j)ans = [0 for _ in range(n)]for i in range(n):ans[ufs.find(i)] += 1return max(ans)print(solve())

(6)精准核酸检测

题目描述

为了达到新冠疫情精准防控的需要,为了避免全员核酸检测带来的浪费,需要精准圈定可能被感染的人群。

现在根据传染病流调以及大数据分析,得到了每个人之间在时间、空间上是否存在轨迹的交叉。

现在给定一组确诊人员编号(X1,X2,X3...Xn) 在所有人当中,找出哪些人需要进行核酸检测,输出需要进行核酸检测的人数。(注意:确诊病例自身不需要再做核酸检测)

需要进行核酸检测的人,是病毒传播链条上的所有人员,即有可能通过确诊病例所能传播到的所有人。

例如:A是确诊病例,A和B有接触、B和C有接触 C和D有接触,D和E有接触。那么B、C、D、E都是需要进行核酸检测的

输入描述

第一行为总人数N

第二行为确诊病例人员编号 (确证病例人员数量 < N) ,用逗号隔开

接下来N行,每一行有N个数字,用逗号隔开,其中第i行的第个j数字表名编号i是否与编号j接触过。0表示没有接触,1表示有接触

输出描述

输出需要做核酸检测的人数

补充说明

  • 人员编号从0开始
  • 0 < N < 100

示例1

输入:
5
1,2
1,1,0,1,0
1,1,0,0,0
0,0,1,0,1
1,0,0,1,0
0,0,1,0,1输出
3说明:
编号为1、2号的人员为确诊病例1号与0号有接触,0号与3号有接触,2号54号有接触。
所以,需要做核酸检测的人是0号、3号、4号,总计3人要进行核酸检测。
N = int(input())
people = list(map(int, input().split(",")))
matrix = []
for _ in range(N):matrix.append(list(map(int, input().split(","))))class UnionFindSet:def __init__(self, n):self.pre = [i for i in range(n)]def find(self, x):if x != self.pre[x]:self.pre[x] = self.find(self.pre[x])return self.pre[x]return xdef join(self, x, y, flag):x_root = self.find(x)y_root = self.find(y)if flag[y_ro

相关文章:

【刷题2025】高级数据结构(并查集+优先队列+图论)

1.并查集 (1)基础理论 并查集是一种树形的数据结构,用于处理一些不相交集合的 合并 及 查询 问题。比如,可以用并查集判断一个森林中有几棵树、某个节点是否属于某棵树。 并查集由一个整形数组 pre[] 和两个函数 find() 、 join() 构成。 数组 pre[] 记录了每个点的前驱…...

数据库性能优化(sql优化)_分布式优化思路01_yxy

数据库性能优化_分布式优化思路01 1 分布式数据库的独特挑战2 分布式新增操作符介绍2.1 数据交换操作符(ESEND/ERECV):2.2 数据迭代操作符GI:3 核心优化策略(一)_分区裁剪优化3.1 普通分区裁剪3.2 动态分区裁剪1 分布式数据库的独特挑战 在分布式数据库系统中,核心为数据被…...

云服务器和物理服务器有什么区别

云服务器与物理服务器的核心区别在于资源分配方式、性能稳定性、成本结构、运维管理及 适用场景。以下是具体分析: 一、资源分配与架构差异 云服务器:基于虚拟化技术,将物理服务器集群分割为多个虚拟实例&#xff0c;资源由多个用户 共享&#xff0c;可根据需求弹性调整配置…...

FPGA-DDS技术的波形发生器

1.实验目的 1.1掌握直接数字频率合成&#xff08;DDS&#xff09;的基本原理及其实现方法。 1.2在DE2-115 FPGA开发板上设计一个可调频率的正弦波和方波发生器&#xff0c;频率范围10Hz~5MHz&#xff0c;最小分辨率小于1kHz。 1.3使用Quartus II进行仿真&#xff0c;并通过S…...

晶晨线刷工具下载及易错点说明:Key文件配置错误/mac剩余数为0解决方法

晶晨线刷工具下载及易错点说明&#xff1a;Key文件配置错误&#xff0f;mac剩余数为0解决方法 各种版本晶晨线刷工具下载&#xff1a; 晶晨线刷工具易出错点故障解决方法&#xff1a; 1、晶晨线刷工具加载固件的时候提示mac红字且剩余数为0的解决办法 很多同学可能会与遇到加…...

idea如何使用git

在 IntelliJ IDEA 中使用 Git 的详细步骤如下&#xff0c;分为配置、基础操作和高级功能&#xff0c;适合新手快速上手&#xff1a; ​一、配置 Git​ ​安装 Git​ 下载并安装 Git&#xff0c;安装时勾选“Add to PATH”。验证安装&#xff1a;终端输入 git --version 显示版本…...

python——学生管理系统

学生管理系统主要分为以下三个大类&#xff1a; 一、用户类&#xff08;User&#xff09;&#xff1a; 属性&#xff1a;用户名&#xff08;username&#xff09;、密码&#xff08;password&#xff09; 功能&#xff1a;注册&#xff08;register&#xff09;、登录&#…...

快速幂+公共父节点

# 快速幂 求&#xff1a;23的10000次幂&#xff0c;那么就是求23的5000次幂&#xff0c;因为2350*235023^100;所以可以遍历log(n)次 int res1; int tmp23; for(int i1;i<logn;i) {tmp*tmp; }显然&#xff0c;我们无法通过logn计算次数&#xff1b; 比如是非偶数的怎么计算呢…...

【差分隐私相关概念】瑞丽差分隐私(RDP)命题4

命题4的证明详解&#xff08;分情况讨论&#xff09; 背景与设定 机制&#xff1a; f : D → R f: \mathcal{D} \to \mathcal{R} f:D→R 是由 n n n 个 ϵ \epsilon ϵ-差分隐私机制自适应组合而成。相邻输入&#xff1a; D D D 和 D ′ D D′ 是相邻数据集。目标&#xf…...

Vue 人看 React useRef:它不只是替代 ref

如果你是从 Vue 转到 React 的开发者&#xff0c;初见 useRef 可能会想&#xff1a;这不就是 React 版的 ref 吗&#xff1f;但真相是 —— 它能做的&#xff0c;比你想象得多得多。 &#x1f440; Vue 人初见 useRef 在 Vue 中&#xff0c;ref 是我们访问 DOM 或响应式数据的…...

C++第三方库【JSON】nlohman/json

文章目录 优势使用API从文件中读取json从json文本创建json对象直接创建并操作json对象字符串 <> json对象文件流 <> json对象从迭代器读取像使用STL一样的访问STL容器转化为 json数组STL容器 转 json对象自定义类型转化为 json对象 限制 优势 直观的语法&#xff…...

从源码到实战:深度解析`rsync`增量同步机制与高级应用

从源码到实战&#xff1a;深度解析rsync增量同步机制与高级应用 #mermaid-svg-C1ZMwvhtq4iP4E8m {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-C1ZMwvhtq4iP4E8m .error-icon{fill:#552222;}#mermaid-svg-C1ZMwvht…...

数据库表设计五层分类系统表设计

文章目录 数据库表设计五层分类系统表设计代码思路详解类概述核心方法详解1. processString(String input) 方法2. createNo(String input, boolean peerNode) 方法3. isParent(String parentNo, String sonNo) 方法 编号系统设计使用场景推测代码特点可能的使用示例 NoProcess…...

Centos/RedHat 7.x服务器挂载ISCSI存储示例(无多路径非LVM)

客户让帮忙挂载个ISCSI存储&#xff0c;大概结构如下图所示&#xff1a; ISCSI存储为一台安装了truenas的X86服务器&#xff0c;提供存储服务的IP地址为10.16.0.1 服务器的ETH1网卡配置与10.16.0.1同段网络。 为了给客户做个简单培训&#xff0c;整理了一下操作步骤。下面是配…...

【android bluetooth 协议分析 21】【ble 介绍 2】【什么是IRK,是如何生成和传递的】

1. 什么是 IRK&#xff1f; IRK&#xff0c;全称 Identity Resolving Key&#xff08;身份解析密钥&#xff09;&#xff0c;是 BLE 设备用于生成和解析 Resolvable Private Address&#xff08;RPA&#xff09; 的密钥。 2. IRK 的生成和传递过程 IRK 是在 BLE 配对&#xf…...

4.14-4.15学习总结 IO流:缓冲流+转换流+序列化流+打印流+压缩流+Commons—io工具包+Hutool工具包

图片加密操作&#xff1a; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class test {public static void main(String[] args) throws IOException {FileInputStream fisnull;FileOutputStream fosnull;try{fisnew…...

Linux入门学习笔记

一、文件路径相关 相对路径与绝对路径 相对路径&#xff1a;是从当前工作目录开始表示文件或目录位置的路径。例如&#xff0c;当前在 /home/user 目录下&#xff0c;若要访问 user 目录下 test 文件夹中的 file.txt 文件&#xff0c;相对路径就是 test/file.txt 。它依赖于当…...

Redis适用场景

Redis适用场景 一、加速缓存二、会话管理三、排行榜和计数器四、消息队列五、实时分析六、分布式锁七、地理位置数据八、限流九、数据共享十、签到 一、加速缓存 Redis最常见的应用之一是作为缓存层&#xff0c;用于存储频繁访问的数据&#xff0c;从而减轻数据库的负载。 通过…...

# WPS打开新文档,“工具”菜单下是空白

WPS打开新文档&#xff0c;“工具”菜单下是空白 在 WPS 中打开新文档后 “工具” 菜单下空白&#xff0c;可能由多种原因导致&#xff0c;如下图&#xff1a; 下面分析并给出对应的解决办法&#xff1a; 一、 功能区显示设置问题 1、原因&#xff1a; WPS 的功能区显示可能…...

【软考-架构】13.3、架构复用-DSSA-ABSD

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 1、软件架构复用2、特定领域软件架构DSSADSSA的三个基本活动参与DSSA的四种角色人员建立DSSA的过程三层次模型 考试真题第一题第二题 3、基于架构的软件开发ABSD的软件开发…...

K8S_ResourceQuota与LimitRange的作用

ResourceQuota 作用详解 资源总量控制&#xff1a;ResourceQuota能对命名空间内的资源使用总量进行限制。在一个Kubernetes集群中&#xff0c;存在多个命名空间&#xff0c;每个命名空间可看作一个独立的工作单元。通过设置ResourceQuota&#xff0c;可以防止某个命名空间过度…...

T101D加固平板电脑:无人机地面站的高效智能控制核心

随着无人机技术在应急救援、农业监测、军事侦察等领域的广泛应用&#xff0c;对地面控制设备的要求也日益提高。鲁成伟业推出的T101D加固平板电脑凭借其高性能、强防护和专业化设计&#xff0c;成为无人机地面站的核心控制终端&#xff0c;为复杂环境下的作业提供了可靠支持。 …...

LLM中的N-Gram、TF-IDF和Word embedding

文章目录 1. N-Gram和TF-IDF&#xff1a;通俗易懂的解析1.1 N-Gram&#xff1a;让AI学会"猜词"的技术1.1.1 基本概念1.1.2 工作原理1.1.3 常见类型1.1.4 应用场景1.1.5 优缺点 1.2 TF-IDF&#xff1a;衡量词语重要性的尺子1.2.1 基本概念1.2.2 计算公式1.2.3 为什么需…...

【基于Servlet技术处理表单】

文章目录 一、实验背景与目的二、实验设计与实现思路1. 功能架构2. 核心代码实现3. 测试用例 总结 一、实验背景与目的 本次实验旨在深入理解Servlet工作原理&#xff0c;掌握JSP与Servlet的协同开发&#xff0c;实现前端表单与后端数据处理的交互。具体目标包括&#xff1a;设…...

【差分隐私相关概念】瑞丽差分隐私(RDP)-瑞丽散度约束了贝叶斯因子后验变化

分步解释和答案&#xff1a; 在Rnyi差分隐私&#xff08;RDP&#xff09;框架中&#xff0c;通过贝叶斯因子和Rnyi散度的关系可以推导出关于后验变化的概率保证。以下是关键步骤的详细解释&#xff1a; 1. 贝叶斯因子的定义与分解 设相邻数据集 D D D 和 D ′ D D′&#x…...

Oracle查询大表的全部数据

2000w的大表 表结构如下&#xff0c;其中id是索引 查询处理慢的写法 List<String> queryLoidForPage(Integer startNum,Integer endNum){try {Connection oracleConnection initBean.oracleConnection;Statement stmt oracleConnection.createStatement();// 4.执行查…...

linux 内核 static-key机制分析

1、static key是什么 Linux内核的 Static Keys机制是一种高效的条件分支优化技术,主要用于在运行时动态启用或禁用特定代码路径,同时‌避免常规条件判断(如 if 语句)的性能开销‌。它通过结合编译时优化和运行时代码修补(如 Jump Label 技术)实现近乎零成本的开关切换,广泛应用…...

【Java学习】Knife4j使用流程

手动添加依赖&#xff0c;并刷新Maven <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.3.0</version> </dependency>在配置文件application.…...

Java 基本操作快速入门:理解与实践

在软件开发的世界里&#xff0c;Java 作为一种广泛使用的编程语言&#xff0c;已经成为构建企业级应用、移动应用甚至大型系统的主力军。对于任何一位初学者来说&#xff0c;理解 Java 的基本操作是学习编程的第一步。从变量声明到控制流的结构&#xff0c;每一个基础知识点都是…...

jetson orin nano 开发板conda 的 base 环境在 shell 启动时自动激活

使用MobaXterm_Personal_23.0.exe 连接jetson开发板时默认是不进入base环境的 1.输入此命令nano ~/.bashrc看到图1后把conda activate 你的环境名 放到图中标记位置 然后保存退出&#xff1a; Ctrl O 回车保存 Ctrl X 退出编辑器 输入此命令后&#xff0c;source ~/.bas…...

【高中数学/指数/对数】同构六君子之 x/e^x/lnx组合曲线

yx*e^x ye^x/x yx/e^x yx*lnx ylnx/x yx/lnx END...

Golang|在线排查协程泄漏

根据我们的代码&#xff0c;前5毫秒内&#xff0c;每隔1毫秒就会来一个请求&#xff0c;5毫秒之后由于前面的协程执行完&#xff0c;后面又会来新的协程&#xff0c;所以协程数目会保持稳定但是代码一运行&#xff0c;协程数量一直增长&#xff0c;发生了协程泄漏 我们可以list…...

健康养生指南

在快节奏的现代生活中&#xff0c;健康养生愈发重要&#xff0c;它是我们享受美好生活的基石。​ 饮食是养生的关键一环。秉持均衡原则&#xff0c;每日保证谷类、蔬果、优质蛋白等各类食物合理摄入。多吃富含膳食纤维的粗粮&#xff0c;像燕麦、糙米&#xff0c;可促进肠道蠕…...

实验二 两个多位十进制数相加实验

一、实验目的 1&#xff0e;掌握汇编子程序的编写方法。 2&#xff0e;掌握循环程序的设计方法。 二、实验内容 将键盘输入的两个5位十进制数相加&#xff0c;在屏幕上显示相加的结果。 三、实验要求 1&#xff0e;显示格式&#xff1a;被加数加数相加的结…...

多模态大模型MLLM基础训练范式 Pre-train + Instruction FineTuning

多模态大模型Pre-train 为了在图文嵌入空间中更好地对齐视觉和文本信息。为此&#xff0c;使用图像-文本对&#xff08;image-caption style data&#xff09;&#xff0c;表示为 ( X , Y a ) (\mathbf{X}, Y_a) (X,Ya​)&#xff0c;其中&#xff1a; X \mathbf{X} X&#x…...

2025.4.15六年之约day11

六年之约已经断更好几个月了&#xff0c;当初六年之约是当做日记来写的&#xff0c;然后被同事刷到了&#xff0c;被谈及的时候挺尴尬的&#xff0c;毕竟里面记录的是我的所思所想。在互联网下&#xff0c;是不适合发布日记的&#xff0c;但我又爱记录所思所想所做。 不知道距…...

Rust学习之实现命令行小工具minigrep(二)

Rust学习之实现命令行小工具minigrep&#xff08;二&#xff09; Rust学习之实现命令行小工具minigrep&#xff08;一&#xff09; 前言 继续记录一下Rust 语言学习过程&#xff0c;上次写了一个命令行查找字符串的小项目minigrep。学习完了闭包&#xff08;Closures&#x…...

Access Token 和 Refresh Token 的双令牌机制,维持登陆状态

目录 1. 双令牌机制2. 工作流程3. 客户端实现4. 服务器端实现5. 注意事项拓展&#xff1a;Token在客户端安全存储的几种方式 为了实现客户端在 JWT Token 过期后自动更新 Token&#xff0c;通常会采用 Access Token 和 Refresh Token 的双令牌机制。以下是实现自动更新 Token 的…...

前端 -- uni-app 的 splitChunks 分包详解与实战!

全文目录: 开篇语📝 前言📖 目录🌟 什么是 splitChunks?🛠 splitChunks 的核心原理📂 文件拆分的机制⚙️ 配置选项✨ splitChunks 实战案例1️⃣ 项目初始化2️⃣ 编写页面逻辑3️⃣ 配置 splitChunks4️⃣ 查看效果🧩 splitChunks 的高级用法与优化🔍 优化一…...

【教程】检查RDMA网卡状态和测试带宽 | 附测试脚本

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 检查硬件和驱动状态 测试RDMA通信 报错修复 对于交换机的配置&#xff0c;可以看这篇&#xff1a; 【教程】详解配置多台主机通过交换机实现互…...

OSPF的拓展配置

OSPF的拓展配置 1&#xff0c;ospf的手工认证 1&#xff0c;接口认证 r1: display ospf peer brief &#xff08;查看邻居关系&#xff09; int g 0/0/0 ospf authentication-mode md5 1 cipher 123456 display this r2: ospf authentication-mode md5 1 plain 12345…...

http、https、TLS、证书原理理解,对称加密到非对称加密问题,以及对应的大致流程

http 超文本传输协议 存在问题&#xff1a; 安全性、隐私性、数据完整性 易被中间人&#xff08;黑客之类的&#xff09;对数据进行劫持、篡改、隐私泄露 引出了 https &#xff08;source&#xff09; http 在网络模型中的应用层 Application > transport > inter…...

vscode格式化为什么失效?自动保存和格式化(Prettier - Code formatter,vue-format)

vscode自动格式化保存最终配置 博主找了好多的插件&#xff0c;也跟着教程配置了很多&#xff0c;结果还是没有办法格式化&#xff0c;最终发现了一个隐藏的小齿轮&#xff0c;配置完后就生效了 关键步骤 关键配置 一定要点小齿轮&#xff01;&#xff01;&#xff01; 这个小…...

两类中断控制器处理流程_链式和层级

今天呢&#xff0c;我们来用一种新的视角去看中断子系统&#xff0c;然后仿照人家的方法去写一个虚拟的中断子系统&#xff0c;我们先来讲讲链式和层级&#xff1a; 链式中断控制器(chained)&#xff1a; 上图中&#xff0c;左边的"chained intc"就是链式中断控制器…...

软件测试之接口测试用例设计

1.接口测试用例设计简介 我们对系统的需求分析完成之后&#xff0c;即可设计对应的接口测试用例&#xff0c;然后用接口测试用例进行接口测试。接口测试用例的设计也需要用到黑盒测试方法&#xff0c;其与功能测试用例设计的方法类似&#xff0c;接口测试用例设计中还需要增加…...

猫咪如厕检测与分类识别系统系列【九】视频检测区域在线绘制+支持摄像头+网络摄像头+整体构建【上】

前情提要 家里养了三只猫咪&#xff0c;其中一只布偶猫经常出入厕所。但因为平时忙于学业&#xff0c;没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关&#xff0c;频繁如厕可能是泌尿问题&#xff0c;停留过久也可能是便秘或不适。为了更科学地了解牠的如…...

MySQL-运维篇

日志主从复制分库分表读写分离 日志 在任何一种数据库当中都会有各种各样的日志&#xff0c;这些日志记录着数据库运行的各个方面 错误日志 这个命令可以查看文件尾部的50行日志&#x1f446; 这个命令是实时输出&#x1f446; 二进制日志 第三个是索引文件&#xff0c;里面…...

mysql关联查询语句

假设存在以下三张表&#xff1a; orders 表&#xff1a;记录订单信息&#xff0c;包含 order_id&#xff08;订单编号&#xff09;、customer_id&#xff08;客户编号&#xff09;、order_date&#xff08;订单日期&#xff09;等字段。customers 表&#xff1a;记录客户信息&…...

Uniapp权限申请优化方案

获取权限前给用户提示&#xff0c;并在用户拒绝后48小时内不再弹窗请求授权。 优化方案分析 您的代码已经实现了基本的权限申请逻辑&#xff0c;但可以进一步优化以满足应用商店的审核要求。 1. 权限申请前的用户提示优化 当前代码中已经包含了权限申请前的提示功能&#x…...

案例驱动的 IT 团队管理:创新与突破之路:第四章 危机应对:从风险预见到创新破局-4.2 人才流失危机-4.2.3梯队建设的“洋葱模型“

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 梯队建设的"洋葱模型"&#xff1a;破解IT团队人才流失危机的创新实践1. 人才流失危机的现实挑战1.1 行业现状与数据警示1.2 传统应对策略的失效 2. 洋葱模型的理论…...