合集-图论
摘要:同余最短路学习笔记 前言 因为没有做出来简单的同余最短路,遂来写一篇学习笔记涨涨记性。 正文 同与最短路,其实是一种类似完全背包的算法,求的东西都是一样的,但是同余最短路可以求的范围更广。 通常情况下表达式都是 $\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,那我们就需要把这整个图都变为值为零的点,而
阅读全文
摘要:赛时很唐。 可以将删掉改成保留边会好些一点。 靠考虑保留什么点,首先若两个点都大于 \(k\) 肯定是需要保留的,这时再判断有小于等于 \(k\) 的点,如果这两个点尚未联通这条边肯定是要保留的,若这一条联通肯定这一条是不能保留的。 考虑为什么是对的,首先保留的边肯定构成的是若干个联通块,我们需要通
阅读全文
摘要:树剖学习笔记 树链剖分是一种将树剖分成若干条链,维护树上信息的方式。 树链剖分大多指的是重链剖分,还有长链剖分和实链剖分。 我们先给出几个定义: 重儿子:子树大小最大的儿子。 轻儿子:除了重儿子以外的其他儿子。 重边:连接重儿子的那一条边。 轻边:连接轻儿子的那一条边。 重链:将连续的重边相连成为的
阅读全文
摘要:二分图是一种特殊的图模型,它可以分成两组互不相交的子集,子集内部没有任何直接连边。 判断二分图比较简单,直接黑白染色即可,若有没有矛盾,就是二分图,否则不是。 现在给出一些定义: 匹配:给定一个二分图 \(G\),在 \(G\) 的一个子图 \(M\) 中,\(M\) 的边集 \({E}\) 中的任
阅读全文
摘要:这一道题我们发现之间连边肯定是不行的,这种题肯定有很多边是没用的,考虑三条两两相交的边,如果需要连边,肯定是连最小的两条边即可。这样我们就可以想到,可以用扫描线维护每一个线段的存在的集合,每一个边只需要它在集合中的前驱和后继即可,其他的边都是没有用的,有更好的替代。时间复杂度 \(O(n\log n
阅读全文

浙公网安备 33010602011771号