文章目录前言1.排序(1)快速排序(2)归并排序(求逆序对)2.基础算法(1)二分3.数学(1)线性筛(朴素,最小质因子,因子数)-朴素线性筛-最小质因子筛-因子数筛(2)快速幂(龟速乘)(3)欧几里得算法(gcd,exgcd)(4)jiangly的模板元板子(5)jiangly的组合数板子(6)ygg的组合数板子4.数据结构(1)单调队列(单调递减,递增)(2)树状数组(前缀和,差分)(3)线段树(维护区间和模板)(4)重链剖分(维护树结构)(5)分块(维护区间和模板)(6)并查集(7)可持久化线段树(维护区间和)(8)珂朵莉树(ODT)5.图论(1)Dijkstra(堆优化)(2)Spfa
一、迪杰斯特拉(Dijkstra)算法迪杰斯特拉算法使用类似广度优先搜索的方法解决了带权图的单源最短路径问题。这是一个贪心算法。1.核心思想(1)每次选中一个点,这个点满足两个条件:未被选过距离最短(2)对于这个点的所有邻近点都尝试去松弛2.算法步骤实现 图片转自:这个博主
一、需求背景现有一张地图,各结点代表城市,两结点间连线代表道路,线上数字表示城市间的距离。如下图所示,请找出从起点A到终点E的最短距离。二、算法描述利用动态规划的思想,求解最短路径问题,算法过程如下:1.节点标号。将节点A到节点E进行标号,A节点标号0,B1节点标号1......以此类型,节点E标号10。2.描述最优解方程。令f(i)表示从起点0到节点i的最短距离,节点j为与节点i相连接的节点,d[j][i]表示节点j与节点i之间的距离,则:f(i)=min(f(j)+d[j][i])很显然,f(0)=0。3.自底向上,逐步求解。利用第2步的公式,从节点1开始,逐步求解,直至节点10结束。三、
1Laplacian算子给定无向图\(G=(V,E)\),我们在上一篇博客《谱图论:Laplacian二次型和Markov转移算子》中介绍了其对应的Laplacian二次型:\[\mathcal{E}[f]=\frac{1}{2}\cdot\mathbb{E}_{u\simv}\left[(f(u)-f(v))^2\right]\]这里\(f:V\rightarrow\mathbb{R}\)为图的顶点标签,\(u\simv\)表示服从均匀分布的随机无向边\((u,v)\inE\)。直观地理解,Laplacian二次型刻画了图的“能量”(energy)。\(\mathcal{E}[f]\)的值越
欧拉图、哈密顿图、二部图、平面图1欧拉图无向图G是欧拉图⇔\Leftrightarrow⇔G连通,且无奇度点。无向图G是半欧拉图⇔\Leftrightarrow⇔G连通,且仅有两个奇度点。有向图G是欧拉图⇔\Leftrightarrow⇔G强连通,且所有顶点的入度=出度。有向图G是半欧拉图⇔\Leftrightarrow⇔G单向连通,且仅有两个奇度点,其中一个顶点的出度-人度=1,另一个顶点的入度-出度=1,其余顶点的入度=出度。2哈密顿图定义:设G=是哈密顿图,则对V的每个非空子集V1V_1V1,均有下式成立:p(G−V1)≤∣V1∣p(G-V_1)\le|V_1|p(G−V1)≤∣V1
图的概述和存储结构(一)文章目录前言一、图的概述1)图的分类2)图的要素二、图的存储结构三、邻接矩阵四、邻接表前言有一种说法是程序是由数据结构和算法组成的,这很能体现出数据结构在编码中的重要性。而代码优化的能力也是区别有基础的程序员和码农的重要标准,所以对于这一块的学习一定要稳重与细致,每一个章节都要实打实敲出能够实现该种结构的代码才算完成。数据结构的学习本质上是让我们能见到很多前辈在解决一些要求时间和空间的难点问题上设计出的一系列解决方法,我们可以在今后借鉴这些方法,也可以根据这些方法在遇到具体的新问题时提出自己的解决方法。(所以各种定义等字眼就不用过度深究啦,每个人的表达方式不一样而已)在
文章目录一、线性规划模型(Lingo)1.线性规划问题(模板)2.求解最优化问题3.包装箱平板车问题4.职员时序安排问题5.运输问题6.排菜单问题7.工地施工问题8.生产计划优化研究(柴油机生产)二、线性规划问题(Matlab)1.线性规划问题(模板题)2.线性规划问题(模板题)3.仓储问题4.投资的收一个风险三、灵敏度分析(Lingo)1.模板题2.玩具公司生产玩具问题四、运输问题(Lingo)五、整数规划问题(Lingo)1.修建工厂问题2.垃圾处理问题六、最短路径问题(Lingo)七、网络最优化问题(Lingo)1.最小费用问题2.最大流问题2.5最大流变形问题(多个收发点)2.6最小费
一、简述\(Floyd\)算法是一种可以快速求解图上所有顶点之间最短路径的算法。\(Bellman-Ford\)和\(Dijkstra\)算法求解的都是从一个起始点开始的最短路。如果想要求解图中所有顶点之间的最短路,就需要枚举每个点做为起点,这样十分低效。\(Floyd\)算法(也称\(Floyd-Warshall\)算法)处理用邻接矩阵存储的有向图(无向图的一条边可以看做有向图的两条边)十分方便。二、Floyd算法memset(f,127,sizeoff);f[0][i][j]=a[i][j];for(intk=1;k\(f[k][i][j]\)表示从\(i\)到\(j\)并且可以经过\(1
知识:顶点,边|权,度数1.图的种类:有向图|无向图有环|无环联通性基础1:图的存储(主要是邻接矩阵和邻接表)例一:B3643图的存储-洛谷|计算机科学教育新生态(luogu.com.cn)#includeusingnamespacestd;intn,m,d[1010];booledges[1010][1010];intmain(){cin>>n>>m;for(inti=1;i>u>>v;edges[u][v]=true;edges[v][u]=true;}for(inti=1;i例二:B3613图的存储与出边的排序-洛谷|计算机科学教育新生态(luogu.com.cn)该代码须加上快读快写#