大体按照 数学 图论 dp 数据结构 这样的顺序 模板集 这个真的只有模板了……………… ·spfa ·dj ·网络流 ·费用流 ·kruscall ·倍增lca ·树剖 ·lct ·无向图tarjan只割顶 桥 ·流图tarjan ·2-sat ·点分(这个考就没意思了………………) ·拓扑排序和 ...
分类:
其他好文 时间:
2018-11-06 01:01:20
阅读次数:
203
$LCA$ $LCA$即最近公共祖先,在我们进行树上的某些毒瘤操作的时候,常常需要知道它的值,因此就出现了许多用来求$LCA$的代码。 倍增 而倍增则是其中最好写,最好理解,支持的操作比较多(比树链剖分要少)的一个算法了,所以本文只介绍该算法~~才不是因为我不会~~。 思想 思想顾名思义就是倍增了, ...
分类:
其他好文 时间:
2018-11-04 21:09:39
阅读次数:
144
在此之前我们需要了解一下倍增 关于它的故事,想来自己功力不及,大家可以参考下面的链接,绝对精彩 白话倍增 看完之后,你可能不禁为 2B小白兔 喝彩了吧 晚上小册子丈量天涯海角,白天神机妙算蔑视群雄 用计算机术语来说就是 每次根据已经得到的信息 将考虑的规模扩大一倍,从而达到加速的目的 它有两个作用 ...
分类:
其他好文 时间:
2018-11-03 17:37:46
阅读次数:
133
首先,我们从 u -> v 有一个明显的贪心,即能向上跳的时候尽量向深度最浅的节点跳。这个我们可以用树上倍增来维护。我们可以认为 u 贪心向上跳后不超过 lca 能跳到 u' 的位置, v 跳到 v' 的位置,这时只需要查询一下是否有 u' -> v' 的直达公交线路就可以确定出答案了。 如果 u ...
分类:
其他好文 时间:
2018-11-03 01:58:41
阅读次数:
256
RMQ是询问某个区间的最大值或最小值的问题,主要求解方法之一ST算法; ST算法其实是倍增思想的产物,等下看代码实现就很明显了 ST算法通常用在要多次询问一些区间的最值的问题中,相比于线段树,它的程序实现更简单,运行速度更快; ST算法没有修改操作(或者说不擅长动态修改) ST算法流程: 预处理 : ...
分类:
编程语言 时间:
2018-11-02 23:44:17
阅读次数:
171
最近公共祖先(LCA)是树上倍增的一种典型例题。 问题描述:给定一棵具有n个节点的树,询问两个节点x,y的最近的公共祖先。 分析:首先我们想到的是暴力算法,当然这个算法妥妥的会TLE掉,所以我们采用倍增优化的方法来进行实现,也就是我们今天介绍的重点。 所谓倍增,就是按2的倍数来增大,按1,2,4,8 ...
分类:
其他好文 时间:
2018-11-02 00:25:06
阅读次数:
143
[Luogu 3128] USACO15DEC Max Flow "" 最近跟 LCA 干上了… 树剖好啊,我再也不想写倍增了。 以及似乎成功转成了空格选手 qwq。 对于每两个点 S and T,求一下 LCA 顺便树上差分,最后求差分数组的前缀和并找出最大值输出就行了。 (PS:最近考前训练不开 ...
分类:
其他好文 时间:
2018-11-01 22:23:41
阅读次数:
204
题目描述 小C最近学了很多最小生成树的算法,Prim算法、Kurskal算法、消圈算法等等。正当小C洋洋得意之时,小P又来泼小C冷水了。小P说,让小C求出一个无向图的次小生成树,而且这个次小生成树还得是严格次小的,也就是说:如果最小生成树选择的边集是EM,严格次小生成树选择的边集是ES,那么需要满足 ...
分类:
其他好文 时间:
2018-10-31 23:23:17
阅读次数:
184
前言 首先需要了解什么是最小生成树,还要知道什么是倍增(求Lca). 上面的东西如果了解了,就可以开始进入学习的路途了!! 1 算法框架 1.1 整体思路 用不是最小生成树上的边去更新答案. 1.2 具体维护 对于每一个倍增跳上去的,要维护两个东西: 路径的边权最大值. 路径的边权次大值 2 具体实 ...
分类:
其他好文 时间:
2018-10-31 01:17:33
阅读次数:
696
"点此看题面" 大致题意: 给你一张无向连通图,其中每条边的边权为这条边连接的两点的权值之差。每次询问两点之间是否存在两条不重复的路径,若存在则输出这两条路径上最大值的最小值。 大致思路 这题显然就是要让你维护 边双 。 我们可以先对原图求一遍 最小生成树 ,然后再将其余非树边(按权值从小到大先排一 ...
分类:
其他好文 时间:
2018-10-30 21:55:49
阅读次数:
153