合集-图论
摘要:同余最短路学习笔记 前言 因为没有做出来简单的同余最短路,遂来写一篇学习笔记涨涨记性。 正文 同与最短路,其实是一种类似完全背包的算法,求的东西都是一样的,但是同余最短路可以求的范围更广。 通常情况下表达式都是 $\sum_{i=1}^{n} a_ix_i =b $ 是否可行的情况。 这里的 \(a
阅读全文
摘要:差分约束学习笔记 差分约束的题目通常是给你一些 \(x_i\) 和 \(x_j\) 的关系式,求是否有可行解等。 而这类题目的技巧也很简单,就是连边建图即可。 这里给出一些关系式的建图的方法 \[x_i \le x_j +c \Rightarrow j\xrightarrow{c} i\\ x_i
阅读全文
摘要:原题 写一个非常符合直觉的做法,这题肯定要强联通分量缩点,缩完点之后呢?我们发现逆向边只有一条,这启示我们可以通过分层图的方法来解决这个题目。同层连正边,异层连反边即可,边权是每个联通分量的大小。跑一遍 dij 即可。时间复杂度应该是 \(O(n \log m)\) 的,代码实现很简单。 #incl
阅读全文
摘要:这题目其实说实话还是很简单的,吗? 看到跟点有关系,其实就是求过程中的割点有多少个,这就直接用一个点双缩点,在缩点后,这个图就变成一个树了,而这里就直接用一个树上差分就可以解决。当然本身这个节点也是要记的。 (好吧,边双写了 20pts 的傻子也是在这里写题解了)。 #include<bits/st
阅读全文
摘要:缩点(图的联通)学习笔记 图论的真神——tarjan 其实这个没什么好写的,主要就是缩完点之后树上问题,难点反而是树上的问题。 具体运用——2-sat 强联通缩点,可以类比一个树上的问题?但是有非树边,这里的非树边可以有前向边(就是指向祖先),后向边(指向子孙),横叉边(除了上面的边),很明显后向边
阅读全文
摘要:2_sat 学习笔记 SAT 是适定性(Satisfiability)问题的简称,这里只讲 2_sat 是因为这个问题不是npc 问题 是可解的。 一般来说,就是设置两个变量,分别是 \(a\) 和 $\lnot a $ 这里的 \(a\) 是一个表达式,比如这个人是否选,这个值是否小于一个值之类。
阅读全文
摘要:看到删边的问题,我们就很自然的想到 tarjan 和 dfs 树,当然这题是用 dfs 树来解决的。 我们建完树之后分为树边和非树边,这里可以分别讨论: 若为树边(\(dep_u<dep_v\)): \(u\) 为根: \(u\) 有三个及以上的儿子,\(+1\)。 有两个儿子,若 \(v\) 不是
阅读全文
摘要:是 greedy,我们没救了 可以把砍树看成种树。 一个很简单的贪心思路,种的树贡献越多越好。 如何达到目的,可以先按 \(r\) 从小到大排序,从大的开始种,这样可以对后面的贡献最大。可以感性理解一下,这里可以用一个 multiset 维护。很简单。
阅读全文
摘要:可能算是图论的题? 可以想到 \(n^4\) 的做法,直接对于每一个图扫一遍,把可以出去的的标出来即可。 但是过不了,瓶颈在我们每一次的扫描,这不必要。可以想到,每一个改变一个点是否只需要修改一部分点,导致最终均摊下来达到正确的时间复杂度。 然而,正着加肯定是不行的,这样会 TLE。那我们可以尝试反
阅读全文
摘要:一看到 DAG 显然 topo 排序,最长路简单,但是这个字典序最小比较难搞,这里有两个方法。 对于这种字典序的问题,很容易想到哈希 LCP 二分来比较,而这里关键的是连值都存不下。 发现每一个点仅从前一个点转移过来,这是固定的,那这里是否可以使用倍增的思想来写就像树上求 LCA 一样来写呢? 当然
阅读全文
摘要:令 \(b[i][j]\) 为用 \(b[i]\) 转移 \(j\) 次。 容易想到这题是二分答案题,一个贪心的思想,对于每一个 \(a_i\) ,在 \(b[a[i]][0]\sim b[a[i]][mid]\) 这些点中大于等于 \(a_{i-1}\) 的最小的值即可,时间复杂度应该是 \(O(
阅读全文
摘要:\(O(n^2)\) 的做法很简单,就是枚举每一个点来求出符合条件的叶子总和。 然而这题的 \(n=70000\) 并不能通过,需要进行优化。 像这样的题,很容易想到不是对每一个点求值,而是对每一个点求对其他点的贡献。 为了简便描述,令 \(f_i\) 为 \(i\) 到最近的叶子的距离,\(d_i
阅读全文
摘要:这题很明显是一道图论题,无向图部分是一颗基环树。基环树很显然可以转化成树来写,部分分也是这样提醒我们的。在分析一下题目,需要我们构造一个欧拉回路,对于欧拉回路,可以用出度等于入度即出度减入度等于 0 这个性质,那我们先对于已有的边的起点 +1 ,终点 -1,那我们就需要把这整个图都变为值为零的点,而
阅读全文