首页 > 其他分享 >最小斯坦纳树

最小斯坦纳树

时间:2024-08-01 16:44:26浏览次数:18  
标签:定义 斯坦纳 最小 选择 求法 dp

什么鬼名字,不如叫做扩展最小生成树。

定义

规范定义像是专门不让人看懂来提高算法高级度的,这里说一说比较易懂的定义。

在图上面指定一些点,让你在图上选择一些边,使得这几个点连通,允许有其它点存在。如果我们要求选择的边边权和最小,那么容易证明选出的点和边一定构成一棵树,这棵树就是最小斯坦纳树。它和最小生成树相比,后者要求选择所有点,前者则是选择给定点。

求法

模板题

它的求法和最小生成树没有半毛钱关系,反而要用到最短路。

考虑 dp ,根据题目数据范围容易想到状压 dp,设 \(dp_{i,mask}\) 表示以 \(i\) 节点为当前斯坦纳树的根,

标签:定义,斯坦纳,最小,选择,求法,dp
From: https://www.cnblogs.com/Lydic/p/18336942

相关文章

  • [学习笔记]最小割树 (Gomory-Hu Tree)
    本文是在作者阅读多篇博客后糅合而成的,部分内容有雷同。最小割树又称Gomory-Hu树,由RalphEdwardGomory和TeChiangHu于1961年发表的论文中共同提出。最小割树可以在\(n−1\)次最大流中构建,并通过树上RMQ求任意两点之间的最小割。板子题:P4897【模板】最小割树(G......
  • prim算法求最小生成树
    prim算法求最小生成树#include<bits/stdc++.h>usingnamespacestd;constintN=600;intg[N][N];//n的平方约等于m,所以用邻接矩阵,存放权值。g[i][j]表示边ij的长度为g[i][j]constintinf=0x3f3f3f3f;//无穷大0x3f3f3f3fintdist[N];//该点到集合里点的最小值boolst[N]......
  • 用selenium打开网页的最小模板
    前言环境:win10python3.10selenium4.12经常用selenium来实现一个打开网页的这样一个小功能,虽然代码很少,但每次重0开始写就很烦。所以这里记录下一个模板小模板importtimefromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.web......
  • 最小二乘法拟合空间直线
    一、空间直线方程1.1一般方程空间直线可以看成成两个平面的交线,设两个平面方程分别为\(A_1x+B_1y+C_1z+D_1=0\)和\(A_2x+B_2y+C_2z+D_2=0\),则直线\(l\)的一般方程可以表示为:\(\left\{\begin{matrix}A_1x+B_1y+C_1+D_1=0\\A_2x+B_2y+C_2+D_2......
  • P4784 城市 题解 / 最小斯坦纳树
    P4784城市题解题目大意给定\(n\)个节点,\(m\)条带边权边,和\(k\)重要节点。选择一些边,使得这些边能让这\(k\)个节点连通,代价为选出的边权和。求最小代价。(\(k\leq5\))Solve前置芝士:斯坦纳树。定义将指定点集合(部分点)中的所有点连通,且边权总和最小的生成树称为最小斯坦......
  • 小值目标函数和数值导数的 SciPy 最小化收敛问题
    对于返回小值的目标函数,以及我想在基于梯度的算法中使用数值导数的问题,我在使用SciPy进行最小化时遇到了问题。它针对Cochran1977年《抽样技术》教科书中与最佳抽样大小相关的问题。我的最小工作示例如下:importnumpyasnpimportmathfromscipy.optimizeimport......
  • Leetcode每日一题 20240727 3106.满足约束且字典序最小的字符串
    题目描述给你一个字符串s和一个整数k。定义函数distance(s1,s2),用于衡量两个长度为n的字符串s1和s2之间的距离,即:字符‘a’到‘z’按循环顺序排列,对于区间[0,n-1]中的i,计算所有「s1[i]和s2[i]之间最小距离」的和。例如,distance(“ab”,......
  • 找出数组中最大和最小值
    找出数组中最大和最小值/*数组获取最值(获取数组中的最大值最小值)*/publicclassArrayTest2{publicstaticvoidmain(String[]args){int[]arr={123,451,45,12,556,12,412};//1、默认将第一个元素作为最大值以及最小值int......
  • (nice!!!)LeetCode 2952. 需要添加的硬币的最小数量(贪心、数组)
    题目:2952.需要添加的硬币的最小数量思路:假设区间[1,s-1]的数都可组合得到,当遍历到x=coins[i]时,1、当x<=s时,可以组合的数就是区间[1,s-1]和区间[x,s-1+x]的交集,即区间[1,s-1+x]2、当x>s时,区间[1,s-1]和区间[x,s-1+x]没有交集,那我就只能通过添加一个数来实现了。在这里......
  • 如何使用最小二乘法和权重矩阵?
    我知道如何使用Python通过最小二乘法求解A.X=B:示例:A=[[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,0,0]]B=[1,1,1,1,1]X=numpy.linalg.lstsq(A,B)printX[0]#[5.00000000e-015.00000000e-01-1.66533454e-16-1.11022302e-16]但是如果权重矩阵不......