1 条题解

  • 0
    @ 2026-9-3 10:52:29

    题解

    思路

    把图缩点为强连通分量。大小为 kk 的分量内部恰好贡献 (k2)\binom{k}{2} 对互相可达的节点。因此第一问等价于把 pp 表示为若干三角数 (k2)\binom{k}{2} 之和,并最小化所有 kk 的和 NN。

    得到最少节点数 NN 后,将所有强连通分量按一个全序单向连边,任意两个不同分量中的节点都恰好贡献一个单向对。全部无序节点对中有 pp 对在同一分量,故第二问答案是 (N2)−p\binom N2-p。

    做法

    子任务 1 枚举小节点数下的全部有向边集,用传递闭包统计互相可达对,直接找到最小节点数。

    子任务 2 递归枚举三角数分解,用当前节点数剪枝。

    满分做法做完全背包。设 dpsdp_s 表示凑出 ss 对互相可达节点所需的最少节点数,对每个 k≥2k\ge2 使用体积 (k2)\binom{k}{2}、代价 kk 转移。

    复杂度

    满分算法时间复杂度 O(pp)O(p\sqrt p),空间复杂度 O(p)O(p)。

    • 1

    信息

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