摘要: Tarjan算法计算强联通分量(缩点) 首先说说强联通分量是啥 强连通就是图中的一组点可以互相到达,在有向图中也就是存在一个环(环上的所有点当然互相可到达) 强联通分量就是一个有向图中的最大环,也叫极大强联通子图 然后说说Tarjan算法求强连通分量啦(并且也可以把强连通分量也就是那个环处理成独立的 阅读全文
posted @ 2021-03-14 21:09 zydbk 阅读(72) 评论(0) 推荐(0)
摘要: 差分约束算法 这个算法挺巧妙的,最初始的形态是用来处理一组不等式可能解的问题,如下题: https://www.luogu.com.cn/problem/P5960 我们分析一下,对于不等式xi - xj <= C,移项后可得xi <= xj + C 熟悉图论的同学可以发现,这好像是最短路的松弛条件 阅读全文
posted @ 2021-03-14 20:37 zydbk 阅读(116) 评论(0) 推荐(0)
摘要: 拓扑排序 拓扑排序,在我现在看来,就是用来解决一系列分层次执行的问题。什么意思呢?举个例子(oi-wiki上看到的),比如说我们大学生都要面临选课问题,那么某些课程会有一些先行课程,必须先修这些先行课程才能够继续修读某课程,那么现在问题来了,小明有n种课程需要选读,n种课程之中,有一些课程有先后关系 阅读全文
posted @ 2021-03-11 21:13 zydbk 阅读(78) 评论(0) 推荐(0)
摘要: 反正就记一记自己学到了什么而已,加深印象 最近公共祖先(LCA) 好吧其实现在只会倍增LCA,好像还有其他的算法(看oi-wiki)但是暂时不想学 倍增LCA流程: 第一步 在树上用dfs预处理出每一个节点的father,用一个二维数组fa(i,j)表示节点i往上跳2j步的祖先,由常识我们就知道fa 阅读全文
posted @ 2021-03-11 20:44 zydbk 阅读(90) 评论(0) 推荐(0)