1 条题解
-
0
题解
思路
把图缩点为强连通分量。大小为 的分量内部恰好贡献 对互相可达的节点。因此第一问等价于把 表示为若干三角数 之和,并最小化所有 的和 。
得到最少节点数 后,将所有强连通分量按一个全序单向连边,任意两个不同分量中的节点都恰好贡献一个单向对。全部无序节点对中有 对在同一分量,故第二问答案是 。
做法
子任务 1 枚举小节点数下的全部有向边集,用传递闭包统计互相可达对,直接找到最小节点数。
子任务 2 递归枚举三角数分解,用当前节点数剪枝。
满分做法做完全背包。设 表示凑出 对互相可达节点所需的最少节点数,对每个 使用体积 、代价 转移。
复杂度
满分算法时间复杂度 ,空间复杂度 。
- 1
信息
- ID
- 1342
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者