摘要:
简介 一般来说,我们处理某些可以离线的问题,我们会将询问离线,然后将修改挂在左端点或右端点,然后从左往右扫描这些修改,并处理询问,数据结构记录的一般是下标 \(i\) 到当前走到的地方的一些信息。而换维扫描线则采取了截然相反的措施:我们将区间修改转化成差分,然后从左往右扫描序列,线段树维护的是时间轴 阅读全文
摘要:
1. 拆点 1.1 入点和出点 P2770 航空路线问题 题意:有一行 \(n\) 个点和 \(m\) 条无向边,从 \(1\) 出发从左往右经过一些点到达 \(n\),再从右往左经过一些点到达 \(1\),除了 \(1\) 其它点不能经过超过一次,求最多经过多少点。 思路:相当于找两条不相交路径到 阅读全文
摘要:
题意: 你有一张 \(n\) 点 \(m\) 边的无向连通图,第 \(i\) 个点上有点权 \(v_i\) 和目标值 \(t_i\)。 在一次操作中,你可以选择一条边 \((i,j)\),并同时给 \(v_i\) 和 \(v_j\) 增加一个任意整数值,可以为负。 你需要判断,这张图是否可以在有限步 阅读全文
摘要:
适用范围 当题目中查询有关子树中的问题,而往往涉及类似莫队中每种值出现个数这类比较难用线段树快速维护的时候,我们可以考虑用启发式合并。 过程 启发式合并其实是优雅的暴力,具体思路就是:统计 \(u\) 子树的答案,我们先把 \(u\) 除了重儿子之外的所有儿子的答案统计了,然后再统计重儿子,但是对于 阅读全文
摘要:
题意: 有一个 \(n\) 个节点的树,每个点上有一个集合,有 \(m\) 次操作,第 \(i\) 次操作将 \(u_i\) 到 \(v_i\) 上所有集合加入 \(i\)。求最后有多少 \(x < y\) 满足 \(x\) 到 \(y\) 路径上的所有集合的交不为空。 \(n, m \le 10^ 阅读全文
摘要:
题意: 给定一张无向带权图,求一个排列 \(p\) 使得 \(\sum_{i=2}^n \operatorname{mincut}(p_{i - 1}, p_i)\) 最大。输出一种方案。 \(n \le 200, m \le 1000\)。 思路: 首先这种最小割相关的肯定是最小割树,建树需要 \ 阅读全文
摘要:
1 图的匹配 1.1 匹配基础知识 1.1.1 匹配的定义 对于一个无向图 \(G = (V,E)\),定义一个集合 \(M \sube E\) 是这张图的一个匹配当且仅当对于不存在 \(u,v,w \in V\) 使得 \((u,v) \in M\) 且 \((u,w) \in M\)。 一个匹配 阅读全文
摘要:
题意: 给定一张 \(n\) 个点 \(m\) 条边无向连通图,以及 \(q\) 个点对 \((a,b)\),出事每条边权值为 \(0\)。对于每个点对我们需要找一条从一个点到另一个点的简单路径,将所有边的权值加一。要求构造一种方案使得每条边权值都是偶数。如果不行,输出最少还要几个点对才能满足要求。 阅读全文
摘要:
题意: 给定 \(m\) 个长度为偶数的数组,\(L, R\) 是初始为空的两个多重集。将每个数组恰好一半的数放入 \(L\),另一半放入 \(R\),要求最后 \(L=R\),要求构造方案或判断无解。 \(m \le 10^5, \sum n \le 10^5\)。 思路: 首先我们不难想到,对于 阅读全文
摘要:
题意: 一个序列 \(a\),一次操作可以将某个位置变成整个序列的异或和。 求最少几步到达目标序列 \(b\)。 \(n \le 10^5\) 思路: 见到这种题,第一步要去尝试把操作转化。 稍微推一下可以发现,如果 \(\oplus_{i=1}^n a_i = s\),则相当于一个 \(n + 1 阅读全文
