给一个 个点 条边的无向连通图(不存在自环或重边),每条边有一个边权,要求割掉若干条边,使 到只有 条路径(不经过重复点),问割掉的边权和最小是多少。[1]
题解
问题其实就是需要保留的边权和最大。
问题是有关点集 + 路径的,不难想到状态:表示遍历了集合 ,这条唯一的路径的已经是从 到的答案。
我们考虑选择路径的形状,大概应该应该是这样的:
就是 的一条,然后中间许多分叉,连向一些连通块,而这些联通块中所有的边都连上。
于是我们考虑转移。
当 时,,其中 表示 集合中所有边的权值和。
可以连下一个链上的点:,就是在 后面新增一个点 ,当然这个转移的时候 应大于。
还可以从 向一个伸出去一个连通块:,当然其中。
代码
1 |
|