0%

很遗憾的是这里不给出算法的实现过程,但是我可以给个讲的不错的链接。这里的最大流讲的不错

主要给出最大流的实现代码和应用背景,以及问题变化时的解决方案。

本文收录了Dijkstra和floyd求解最短路径的算法实现。这两个算法建议看看算法导论这本书,网上乱七八糟的什么错误都敢往上写。

  • Dijkstra类似贪心算法,从某个点出发不断的贪心,求得和其他点的最短路径。

  • Floyd为动态规划算法,不断的更新子问题,使得每两点之间的距离不断的减小。

如果问题发生了变化,比如最短路径不唯一时,我想走顶点最少的路径;或者在两点之间,我想走那个顶点最少的路径,又该怎么转化呢?则称为最短路最小顶点问题,本文也给出自己的解决方案写的太烂,删除了。

I exist because you need me.——The reaction of Ferryman.

写这个的主要目的是,整理那些年写 LaTeX中遇到的坑,有些东西在教科书里面没有,遇到就记下来。毕竟这玩意,见过就是会,没见过就是不会。

我脑子不好使,有些代码不写一遍实在是记不住。
本文简述了$\LaTeX$的发展历史和使用方法,确切的说是使用方法,对历史我没有了解过,其实是我的$\LaTeX$速查笔记。
如果你想从这里面学习$\LaTeX$的操作,也不是不可以,涵盖了所有的基本操作~
后来有人提到:能不能整理Lshort这里面的MWE,我想想,把我之前学习时写过的代码整理一下是可以的,虽然不太全面,也欢迎大家补充或者有更好的方案。
但本文并不正规,你甚至能在里面发现几个错别字。

本文收录内容:Kruskal和Prim两个算法,基于Python实现的最小生成树

最小生成树的背景:$n$个村庄,每个村庄之间只能修一条路,如何使得总路径最短。

  • Kruskal从最短的边开始寻找,避免回路,加入$n-1$条边后就是最小生成树。
  • Prim是从某个定点出发,定点加入点集$T$,选择与定点相邻距离最短的点加入$T$,并从$T$出发继续寻找,以此类推。

AVL是平衡树,平衡因子概念什么的就不阐述了,主要是在不平衡时候如何旋转。(1)右子树右节点插入:左旋转。(2)左子树左节点插入:右旋转。(3)右子树左节点插入:右旋转后左旋转。(4)左子树右节点插入:左旋转后右旋转。

  • 所谓的左旋和右旋都是以子树为原点的:如b是a的子树,那么旋转就围绕b来进行。
  • 如果b是a的左子树,那么就围绕b将a向右旋转,看着就像是a直接掉下来了,掉成了b的右子树。
  • 如果b是a的右子树,那么就围绕b将a向左旋转,看着就像是a直接掉下来了,掉成了b的左子树。