随笔分类 - 图论
摘要:割点 就是记录两个数组:dfn[]和low[] 其中dfn[]表示访问的顺序,low[u]用来存储 不经过其父亲能到达的最小时间戳。。。 搬一下 wiki 的图。。。 我们发现 可以表示不能回到祖先,则 点位割点。。。 直接上代码P3
阅读全文
摘要:用途 解决一些在带权图中,最多 次优惠一条边权 基本步骤 分成 层,从 好开始,每层图与原图一样。其中第 层图是用了 次优惠到达的图。 对于所有边,若在第 层图中,那么就新连一条边从 指向第 层图
阅读全文
摘要:深搜 inline void dfs(int x) { dfs(); } 广搜 inline void bfs() { queue<int> q; q.push(···) while(!q.empty()) { ··· } } 记忆化搜索 其实就是记录了每一种状态的最优值,达到玄学剪枝效果。。。 例
阅读全文
摘要:本文是wiki与这篇题解的整合 定义 二分图,又称二部图,英文名叫 Bipartite graph。 二分图是什么?节点由两个集合组成,且两个集合内部没有边的图。 换言之,存在一种方案,将节点划分成满足以上性质的两个集合。 性质 如果两个集合中的点分别染成黑色和白色,可以发现二分图中的每一条边都一定
阅读全文
摘要:重链剖分 用途 路径上维护 子树维护 求最近公共祖先(LCA) 重剖的性质: 树上每个节点都属于且仅属于一条重链。 在剖分时 重边优先遍历,最后树的 DFS 序上,重链内的 DFS 序是连续的。按 DFN 排序后的序列即为剖分后的链。 定义 重儿子:对于每一个非叶子节点,它的儿子中以那个儿子为根的子
阅读全文