Loading

摘要: 本蒟蒻第一次学网络流,如果有错误,欢迎各位大佬指出! 基础与定义 流网络 \(G=(V,E)\)。 其中 \(s\) 为源点,\(t\) 为汇点,边上的数字为容量。 可行流 定义 可行流表示为 \(f\),\(c\) 为容量。一个可行流 \(f\) 要满足容量限制和流量守恒两条限制。 容量限制: \ 阅读全文
posted @ 2025-07-25 20:50 liushuangning 阅读(277) 评论(0) 推荐(0)
摘要: 基本概念 定义:将树中任意一条路径转化成 \(O(\log n)\) 段连续区间。 就是先把树转化成一条链,那么树中任意一条路径都可以转化成这条链中 \(O(\log n)\) 段连续区间,这样就可以把树上问题转化为区间的问题。 几个概念: 重儿子:对于一个非叶子节点 \(x\),先求一下它的每个子 阅读全文
posted @ 2025-07-25 20:54 liushuangning 阅读(28) 评论(0) 推荐(0)
摘要: 基础莫队 题目。 翻译:给出一个序列,对于每次询问,回答询问区间内不同数字的个数。 如果用暴力,只需要创建一个 cnt 数组,记录当前每个数出现了多少次,cnt[i] 表示 \(i\) 这个数出现的次数,然后循环统计,如果这个数是第一次出现,就加一。 现在我们先将所有询问读入,再将询问按右端点小到大 阅读全文
posted @ 2025-07-25 20:53 liushuangning 阅读(23) 评论(0) 推荐(1)
摘要: 普通分块 思想 对于一个长度为 \(n\) 数组,我们可以将它分解为 \(\sqrt n\) 块,这样每一块都会有 \(\sqrt n\) 个元素。 如果我们要将一段区间加上 \(d\),那么这一段区间包含块的会分两种: 完整块,数量 \(\le \sqrt n\) 块。 残缺块,最多两个,每个包含 阅读全文
posted @ 2025-07-25 20:53 liushuangning 阅读(80) 评论(0) 推荐(0)
摘要: 定义 祖先:在一个有根树中,一个点到根节点的路径中,经过的所有点都成为它的祖先(自己也是自己的祖先)。 最近公共祖先:给出两个点,在它们公共的祖先中,离两个点最近的就是这两个点的最近公共祖先,即 LCA。 在这个图中,两个红色点的 LCA 就是绿色点。 解法 向上标记法 从一个点向上走,每走到一个点 阅读全文
posted @ 2025-07-25 20:52 liushuangning 阅读(19) 评论(0) 推荐(0)
摘要: 基础 一般的并查集有两个基本操作: 合并两个集合; 查询某个节点的祖宗节点。 并查集的两个优化: 路径压缩,即 find 函数,可以优化到小常数的 \(O(\log n)\); 按秩合并,即如果要合并两个集合的话,那么将节点个数较小的那个合并到节点个数较大的那个,可以优化到 \(O(\log n)\ 阅读全文
posted @ 2025-07-25 20:52 liushuangning 阅读(28) 评论(0) 推荐(0)
摘要: 定义 连通分量 \(V\):\(\forall\ u,v\in V\),\(u\) 可以走到 \(v\),且 \(v\) 可以走到 \(u\)。 强连通分量 \(V\):指极大的连通分量。也就是说,不存在另一个连通分量 \(V'\),使得 \(V\subsetneqq V'\)。 缩点:将所有的强连 阅读全文
posted @ 2025-07-25 20:51 liushuangning 阅读(25) 评论(0) 推荐(0)