NOIP2024集训Day50 图论

NOIP2024集训Day50 图论


A. [JSOI2012] 越狱老虎桥

先边双缩点,建出边双生成树。

在不额外加边的情况下,割掉树边会使子树内部断开;在加入边的情况下,若加入一条 \(1 - u\) 的边,则形成了一个 \(1 - u\) 的环,环无法通过割一条边断开;而连接树上两个节点 \((u, v)\) 的情况,把图展开后发现就是把 \(u\)\(v\) 路径上所有点都缩进了同一个环。

此时断掉环上的边显然不合法,而不在环上的边随便断一条就能让一个点不连通。

也就是说,答案是去掉某个点对 \((u, v)\) 路径上的所有的边,剩下的边中的最小值的最大值。

设答案为 \(ans\)。那么这个问题实际等价于所有的 \(e \in E,w(e) \le ans\) 的边无法被一条路径完全覆盖。


B. [CF732F] Tourist Reform

先用 Tarjan 求出无向图中所有的桥,之后对于每一个边双连通分量 dfs,这样可以将每一个边双连通分量转化为强连通分量。

这样转化的目的是使得每一个连通分量中的点可以互相到达,即一个强连通分量中点的 \(r_i\) 值至少为这个连通分量的点的个数。

现在我们只需确定所有的桥的方向。

做法很贪心,我们找到规模最大的强连通分量,其他的桥都指向它就可以保证答案最优。

实现时,只需从规模最大的强连通分量出发,进行 dfs,将经过的桥的反方向标记为答案即可。

时间复杂度:\(\Theta (n)\)


C. [CF901C] Bipartite Segments

显然我们只要知道一个点最远可以向后扩展到第几个点是二分图,我们就可以很容易地回答每一个询问了,但是怎么求出这个呢?

没有偶数简单环,相当于只有奇数简单环,没有环套环。因为如果有环套环,必定是两个奇数环合并 1 个或几个点,也就是同时保持奇数或者同时变为偶数,而我们知道奇+奇=偶,偶+偶=偶,所以就证明了只有奇数简单环,不存在环套环。

我们现在有一些点,再加入一个点,最多会形成一个环,并且一定是奇环。这时候,编号为 1~环上的最小编号的点,最远能扩展到的编号不会超过环上最大编号。所以我们 Tarjan 缩点求出所有环后,把每一个环按照环上最大编号排序,然后从小到大统计每一个点最远能扩展到的点就可以了。


D. [HNOI2012] 矿场搭建

首先我们先跑一遍 Tarjan 将割点找出来。

因为非割点是无法产生影响的,所以我们只考虑割点。

将原图中的割点去掉,得到的新图会是若干个连通块。

若一个连通块靠近两个割点,那么这个连通块上是不需要建立的,因为炸了一个割点可以往另一个跑。

若一个连通块只靠近一个割点,那么这个连通块必须建一个,不然炸了这个唯一的割点岂不是就GG了。

注意考虑没有割点的情况,这种情况只需要随便建立两个即可。


posted @ 2024-10-14 16:05  Leirt_Abu  阅读(12)  评论(0)    收藏  举报