
算法学习
rwbyblake
这个作者很懒,什么都没留下…
展开
-
dijkstra最短路及优化
算法描述 该算法维护了两个点集,S和V。其中S集合为已经确定到源点最短路径的点集,V集合为未确定到源点最短路径的点集。 循环进行以下操作直到所有点都确定了与源点的最短路径:从V集合中取出一点,使得该点到源点距离为V集合中最短。然后通过该点,更新与该点相连的点距离源点的距离。最后,将该点放入S集合中。 算法正确性 该算法最关键的步骤就是从V集合中取点的操作。设i为V集合中一点,j为V集合中任意其他一点,dis[i]<dis[j],则dis[i]<dis[j]+a[j][i],故点i距离源点距离为确原创 2020-11-16 16:43:37 · 196 阅读 · 0 评论 -
可持久化数据结构之静态主席树
如果完全掌握了主席树的前置知识,主席树其实也是一种并不算很难的数据结构(虽然蒟蒻还是花了好久)。主席树主要的前置知识就是权值线段树,一旦理解了权值线段树的相关知识,那么主席树的学习应该也会变得较为简单。 权值线段树 权值线段树是线段树的一种,但是它与普通线段树不同的地方在于,普通线段树节点的区间代表的是序列中的区间,而权值线段树节点的区间则代表了序列中值的区间。 如这样一个序列:1 4 2 3 3 普通线段树中我们通常以序列下标为范围来进行线段树的区间划分,而在权值线段树中这个数组是这样保存的: 其中每个节原创 2020-10-24 21:18:01 · 128 阅读 · 0 评论