好玩,优雅,赏心悦目

OI 中的知识点是有关联的,这种关联是优雅且好玩的。

有一个概念在本篇 BOKER 中有所提及,那就是只要两个东西性质完全一样,那这两个东西就是一个东西。对这句话的讨论是哲学上的。这里管上面那句话叫 JBDL。本篇博客较为随性,想到哪写哪。

差分约束

关联:不等式组、图。

差分约束是用来解决多元不等式组是否有解的问题。有这么一个 \(n\) 元不等式组,有 \(m\) 个约束条件,每个条件形如 \(x_i-x_j\leq c_k\),这个式子可以转化为 \(x_i \leq x_j+c_k\) ,注意到这个形式和最短路中 \(dist[i] \leq dist[j]+w\) 一个样,由 JBDL,可知这俩就是一个东西,那么我们就将不等式组问题转化为了图论问题。我们只需要自 \(j\)\(i\) 连一条边权为 \(c_k\) 的边(注意方向),画画图就可以知道原不等式组有解等价于这个图没有负环。这里可以用 SPFA 判负环。

例题:Luogu P1993

这个题体现的是差分约束的常见转化。对于 \(a_i-a_j \geq c_k\),我们转化为 \(a_j \leq a_i + (-c_k)\),对于 \(a_i-a_j \leq c_k\),转化为 \(a_i \leq a_j+c_k\),对于 \(a_i=a_j\) ,我们转化为 \(a_i \leq a_j+0\)\(a_j \leq a_i+0\) 两个式子,然后按照差分约束的套路,建边,判负环,即可。

Kruscal 重构树

关联:图,树

Kruscal 重构树可以将图转化为树。这个好处大大滴,因为这样我们就可以在图论题里写树剖了(重振树剖荣光)。开一个并查集记录每个节点所在子树的根。对于一个图中有边直接相连的两个点 \((u,v,w)\) ,如果 \(fa_u =fa_v\),不管他,否则新建一个节点 \(z\),连接 \((z,fa_u)\)\((z,fa_v)\) ,并将 \(fa_v\)\(fa_u\) 重置为 \(z\),将 \(z\) 的权值设为 \(w\),就完成了重构。

posted @ 2024-07-03 10:25  lhc0707  阅读(15)  评论(2编辑  收藏  举报