摘要: 定义: 割点:将原图中的某一点以及它所连的边删除后,原图不连通。 桥:将原图中的某一边删除后,原图不连通。 边双连通分量:原图中意删除一边后还连通的极大连通子图。 点双连通分量:原图中任意删除一点后还连通的极大连通子图。 求法: 割点: 考虑原图的 dfs 生成树,对于树边更新 : \(low[u] 阅读全文
posted @ 2024-04-25 13:05 Little_corn 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 定义: 欧拉路径:指图中的一条路径,使得所有边都被经过且只经过一次 欧拉回路:指图中的一条欧拉路径,且起点和终点相同。 欧拉图:指有欧拉回路的图 半欧拉图:指有欧拉路径但没有欧拉回路的图 性质: 1.如果一个无向图是欧拉图,那么所有节点的度数均为偶数 2.如果一个无向图是半欧拉图,那么除了两个节点的 阅读全文
posted @ 2024-04-25 13:04 Little_corn 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 定义: 强连通指的是对于一个有向图,每个点都有路径到另外一个点。 强连通分量则指的是对于一个图,它的极大强连通子图。 tanjan 求法: 对于一个图,考虑他的 dfs 生成树(即为对原图进行 dfs 的一棵树)。 那么对于这棵树,搜索时会出现四种边: 树枝边:搜索到没被访问过的节点,且在树中是当前 阅读全文
posted @ 2024-04-25 13:00 Little_corn 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 笛卡尔树实际上就是对于多个二元组 \((k_i,w_i)\) 的一棵树,使其所有 \(k\) 值满足二叉搜索树的性质,且所有 \(w\) 值都满足小根堆的性质。 在构建时,对于右链上的元素,自底向上一定是 \(w\) 值由小到大的,且一定 \(k\) 值从小到大。 所以我们按 \(k\) 值从小到大 阅读全文
posted @ 2024-04-25 12:59 Little_corn 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 容斥原理: 容斥原理是一种在知道所有集合之间的交,求集合之间的并的数学方法。(注:交即为两个集合之间相同的部分,记作 \(|A| \cap |B|\) ) problem: 设 \(U\) 中元素有 \(n\) 种不同的属性,而第 \(i\) 种属性称为 \(P_i\),拥有属性 \(P_i\) 的 阅读全文
posted @ 2024-04-25 12:57 Little_corn 阅读(40) 评论(0) 推荐(0) 编辑
摘要: link 树同构是树哈希与换根 dp 的结合。 树哈希是哈希中的一个种类,这里先给出哈希函数: \[\operatorname{treehash}(u)=\sum \operatorname{xorshift}(\operatorname{treehash}(v)) \]这里使用 unsigned 阅读全文
posted @ 2024-04-25 12:56 Little_corn 阅读(18) 评论(0) 推荐(1) 编辑
摘要: I.基本定义: 网络:一张有向图。 流量:经过一条边的流的大小,一条边 \((u,v)\) 的流量记为 \(flow(u,v)\), 一个网络的流量定义为 \(∑f(s,x)\)。 容量:一条边的流量上限,一条边 \((u,v)\) 的容量记为 \(cap(u,v)\)。 费用:经过一条边单位流量的 阅读全文
posted @ 2024-04-24 13:12 Little_corn 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 网络流的建图灵活,需要大量练习。 一些常见套路: 拆点:一般来说可以把一个点拆为一个入点和一个出点并连边,用于点边转化。 连 INF 边:这种边不可能包含在最小割中,可以用来将点定向。 建立超级源点和超级汇点:用于构建网络流模型。 加辅助点:比较灵活,可以用于处理多种问题。 做题记录: 1.P134 阅读全文
posted @ 2024-04-24 13:11 Little_corn 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 点分治是一类高效统计树上路径问题的算法,通过优化递归深度的方法来有效保证时间复杂度。 具体操作一般是以下几步: 找到当前子树的重心 以重心为根计算经过根节点的路径对答案的贡献 将根删去并递归处理它的所有子树 因为我们每次都以树的重心来作为根节点,递归深度不会超过 \(\log n\) 层。 每一层又 阅读全文
posted @ 2024-04-24 13:10 Little_corn 阅读(4) 评论(0) 推荐(0) 编辑
摘要: Sol: 很妙的一道题。 将限制转化为线段讨论。 首先考虑一个特殊情况:当所有线段都相交的时候,答案显然为 \(0\). 那么假如有两条线段没有相交呢? 我们可以将是否相交的判定转化为 \(l_{max}\) 和 \(r_{min}\) 的大小关系。 \(l_{max} \le r_{min}\) 阅读全文
posted @ 2024-04-24 13:09 Little_corn 阅读(6) 评论(0) 推荐(0) 编辑