1 条题解

  • 0
    @ 2026-4-25 23:46:58

    这是官方题解的 AI 中文翻译。

    我们将需要连通的图称为第一张图,将连通性不能被破坏的图称为第二张图。

    假设在第二张图中存在一条边 (v,u)(v, u),且顶点 vvuu 在第一张图中属于同一个连通块。那么,考虑第一张图中另一个不同连通块内的任意顶点 aa。此时,可以注意到,操作 (v,a)(v, a)(u,a)(u, a) 中至少有一个不会破坏第二张图的连通性。因此,可以通过一次操作将顶点 aa 所在连通块与 vvuu 所在连通块合并,从而解决问题。

    接下来注意到,如果存在一对顶点 vvuu,使得这两个顶点在两张图中都没有边 (v,u)(v, u),那么可以直接对这对顶点执行一次操作,之后问题就转化成了前面的情形。

    如果找不到这样的边,则第一张图的所有连通块都是完全图,并且第二张图包含了所有第一张图中没有的边。

    现在,任选第一张图中一个大小至少为 22 的连通块(如果不存在这样的连通块,可以任意选择一对顶点执行一次操作,此后必然会出现这样的连通块)。在该连通块中任选两个顶点 aabb。再从第一张图的所有其他连通块中各选出一个顶点,记为 v1, v2, , vkv_1,\ v_2,\ \ldots,\ v_k

    注意,如果第一张图中连通块数量至少为 33,或每个连通块的大小都至少为 22,那么可以依次执行如下操作序列:(a,v1), (b,v2), (b,v3), , (b,vk)(a, v_1),\ (b, v_2),\ (b, v_3),\ \ldots,\ (b, v_k)

    如果不是上述情况,则第一张图中存在一个孤立顶点 cc,其余所有顶点构成一个完全图。此时,第二张图是一棵星型结构。如果 n=3n = 3,则无解;否则,任选两个与 cc 不同的顶点 aabb,依次执行 (a,b)(a, b)(a,c)(a, c) 两次操作即可。

    综上,可以在 O(n+m1+m2)\mathcal{O}(n + m_1 + m_2) 或 $\mathcal{O}\left((n + m_1 + m_2) \log(m_1 + m_2)\right)$ 的时间内解决本题,具体取决于实现方式。

    • 1

    信息

    ID
    11045
    时间
    2000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    1
    已通过
    0
    上传者