图连通性相关问题选讲
Majority Graph
考虑枚举区间的绝对众数 \(X\),将非 \(X\) 的数视为 \(-1\),\(X\) 视为 \(1\),则区间合法等价于其和为正。使用 SDOI 整数序列那道题的方法,将有效的 \(\Theta(\text{cnt}_X)\) 个位置求出,对下标维从右向左扫描线,每次将能合并的合并起来,每个连通块保留 \(s\) 最大者即可,复杂度 \(\Theta(n \log n)\)。
题解思路更厉害一点,仍然枚举 \(X\),发现 \(a_l, a_r\) 均不为 \(X\) 的边是无用的,\(a_l = a_r = X\) 时贪心地连接 \(|s_r - s_{l - 1}| \leq 1\) 的边即可,有一端为 \(X\) 的情况中另一端的合法区间形如一段极长非 \(X\) 连续段的前缀/后缀,那么连接若干条 \(i \to i + 1\) 的边即可解决。时间复杂度 \(\Theta(n)\)。
数好图 / Promet
直接容斥是困难的。
记 \(1 \rightsquigarrow u \land u \rightsquigarrow n\) 的点为 \(1\) 类点,\(1 \rightsquigarrow u\) 且不是 \(1\) 类点的为 \(2\) 类点,否则为 \(3\) 类点。
一个观察是 \(1\) 类点具有某种“闭合性”,具体来讲就是你可以先将只有 \(1\) 类点的情况算出来然后向上挂点。这里的方案数是容易计算的,显然等价于每个点的出入度非 \(0\),那么把出度容斥一下就可以 DP 了。
怎么向上加点呢?讨论一下可知连边只会有以下几种:
\(1 \to 1, 2 \to 2, 3 \to 3, 3 \to 1, 1 \to 2, 3 \to 2\)。其中 \(2\) 类点需要有至少一个 \(1/2\) 类点前驱。
这里 \(3\) 类点可以向后方的所有点连边,因此贡献直接就是 \(\prod 2 ^ {n - i}\),\(1, 2\) 类点做一个 \(\Theta(n ^ 2)\) DP 就好。类似分步转移统计答案即可。
Upgrading Cities
考虑求出一组拓扑序,那么一个点 \(u\) 合法当且仅当拓扑序前方的点均可达它,且它可达后方的所有点。这等价于保留前半段的子图后只有 \(u\) 无出度,保留后半段后只有 \(u\) 无入度,直接拓扑排序,在出队的时候讨论一下即可。半合法的情况类似。
Traveling Merchant
显然在经过一个重复结点后就可以开始走环了,因此问题等价于在保留两端异色边的前提下,是否存在同色边 \((x, y)\) 满足存在 \(1 \rightsquigarrow x \rightsquigarrow y\) 的简单路径,这等价于二者在圆方树上的父亲呈祖先后代关系。
Orientable as Desired
令 \(X = (0, 0, \dots, 0)\) 后,存在奇环的图一定无解,因此问题可以规约到二分图的情形。
先考虑树的情形,可以发现此时对于任意的序列 \(X\) 都可以构造出解。再考虑单个点双连通分量的情形,可以发现令其余 \(n - 1\) 个 \(X_i\) 取 \(0\),剩下一个点的 deg 就被固定了,那么一定可以构造出无解的情况。考虑一般情况,对于一个点 \(u\),一个启发是令其余 \(n - 1\) 个数均取 \(0\),那么这样一来 \(u\) 的 deg 可以被刻画为,其所在的所有点双给它的 deg 的背包。经典是否存在一个不可表示的数是经典的:\(\forall i, a_i \leq s_{i - 1} + 1\)。建立圆方树直接做就好。
那么为什么取很多 \(0\) 是优秀的呢?感性理解是你不取全 \(0\) 的情况下,\(u\) 结点所处的一个点双给它的 deg 会被拆成两个数 \(x, y\),而非原先的 \(0, x + y\),这时凑出一个不可表示的数会变难,因此取 \(0\) 就足够解决原问题了。
Strongly Connected City 2
边双连通分量显然可以定向为强连通分量,因此考虑图是树的情形。
感性理解上如果存在一条路径上有很多 \(\rightarrow\) 和 \(\leftarrow\) 交叉,这个构造就是不优的。据此猜想存在一个点,使得其每棵子树中要么均向上定向,要么均向下定向,朴素背包即可。
JYPnation
阴间 ad-hoc。考虑两个结论:
-
每对结点要么不可达,要么距离不大于 \(3\),由题目中的特殊条件可以证明。
-
结点 \(u, v\) 满足 \(dis(u, v) = 2\) 的充要条件是:存在边 \(u \leftarrow v\),且存在点 \(w\) 使得存在边 \(u \to w, w \to v\)。
第二个结论可以进一步推广,当存在这样的一个 \(w\) 时,对于所有的 \(w \to z\),\(z\) 也应是合法的,同样可以由题设条件证明,然后你只需要考虑 \(u\) 的所有出点中拓扑序最靠后者即可。

浙公网安备 33010602011771号