斯坦那树
哈希表扁豆
此人不懒,但什么都没写
展开
-
【模板】最小斯坦纳树
Problem Solution 状压dp,dp(i,s)表示i为根包含点集s的最小权值和。 用floyd预处理出两点间的最短路,dijkstra或spfa也可。 分两种情况转移:i度数为1和i度数不为1。 i度数为1:枚举相邻点j,dp(i,s)=min(dp(i,s),dp(j,s)+dis(i,j))。 i度数不为1:枚举子集,dp(i,s)=min(dp(i,sub)+dp(i,s^sub))。 注意转移状态的次序,从状压dp的角度考虑也有别的转移方法,不过这种最右,时间复杂度n2 * 2k+n原创 2021-08-30 17:39:29 · 149 阅读 · 0 评论 -
J - Joining Capitals(最小斯坦纳树变形)
Problem 给定平面n个点的坐标,其中前k个为选中的点,求包含这k个点的最小代价且这k个点必须作为树上的叶子结点。 一开始想乱暴,查了查是个斯坦纳树,之前听都没听说过。 斯坦纳树 斯坦纳树问题是组合优化问题,最小斯坦纳树允许在给定点外增加额外的点,使生成的最短网络开销最小。 Pollak-Gilbert猜想:平面上任意n点集,斯坦纳最小树长与最小生成树之长的比值的最小值是sqrt(3)/2。 Solution 通过状压DP解决最小斯坦纳树问题,dp[i][S]表示已i为根包含集合S中所有点的最原创 2021-08-25 20:26:00 · 183 阅读 · 0 评论