04 2022 档案
摘要:最短路 floyd算法 floyd是一个基于贪心思维和动态规划思维的计算所有点到所有点的最短距离的算法。 对于每个顶点v,和任一顶点对(i,j),i=j,v=i, v≠j,如果A[i][j]> A[i][v]+ A[v][j],则将 A[i][j] 更新 为 A[i][v] + A[v][j]的值,
阅读全文
摘要:Kuskual算法 流程 1 将图G看做一个森林,每个顶点为一棵独立的树 2 将所有的边加入集合S,即一开始S = E( 并查集) 3 从S中拿出一条最短的边(u,v),如果(u,v)不在同一棵树内,则连接u,v合并这两棵树,同时将(u,v)加入生成树的边集E' 重复(3)直到所有点属于同一棵树,边
阅读全文
摘要:最小生成树 ● 最小生成树的定义是给定一个无向图,如果它任意两个顶点都联通并且是一棵树,那么我们就称之为生成树(Spanning Tree)。如果是带权值的无向图,那么权值之和最小的生成树,我们就称之为最小生成树(MST, Minimum Spanning Tree)。 ● 求最小生成树的算法有很多
阅读全文
摘要:并查集 并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题。一些常见的用途有:求连通子图、求最小生成树的Kruskal算法和求最近公共祖先(LCA)等。 并查集的基本操作 1.初始化init 2.查询find 3.合并unionn //用数
阅读全文
摘要:差分 假设有一个数列,我们需要对数列中的一个区间加上或减去一个值,直接想到的便是对该区间进行一次循环逐项加减。 但是当请求的操作变得非常多的时候,每次请求都进行一次循环会很容易爆时间,因此我们引入了差分算法. 差分的特点就是在进行多次操作少量查询的时候可以快速得出结果。 一维差分 如果我们想将数列a
阅读全文
摘要:前缀和 前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和 作用: 一种预处理,求出的前缀和数组可以使得,输出原序列中从第l个数到第r个数和的时间复杂度变成了O(1) 。 一维前缀和 更实际的应用:利用前缀和数组我们可以得到第i项到第j项的和,比如:求原数列第4项到第9项的和。利用
阅读全文
摘要:常见术语 漏洞利用术语 战争源头 Vulnerability 漏洞 Vulnerability 即漏洞,是指计算机软件、硬件、系统、应用、协议等方面的缺陷,使得其保密性、完整性、可用性、访问控制等方面面临威胁。 基于技术分类,有命令执行、权限绕过、缓冲区溢出、注入、解析、弱口令、信息泄等漏洞;基于时
阅读全文