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

斯坦纳树小记

时间:2024-03-08 22:22:05浏览次数:21  
标签:le space 线段 最小 斯坦纳 小记 关键点

斯坦纳树问题

平面上有一些点,其中一些是关键点。给出一些点之间的线段,选择一些线段连通这些关键点并且线段总长度最小。

最小斯坦纳树——在图论中的运用

一张无向连通图,选择一个部分结点的生成树,结点包含点集 \(S\),求生成树的最小边权和。

\(n\le 100,\space m\le 1000,\space |S|\le 10\)

解决

考虑状压 dp。

设 \(f[S,u]\) 表示选出了包含的关键点集合为 \(S\) 且当前树根为 \(u\) 的最小生成树边权和。

转移比较容易:

  • 合并两棵树:\(f[S,u]+f[T,u]\to f[S\cup T,u]\)

  • 走向新的根:\(f[S,u]+w(u,v) \to f[S,v]\)

初始化:对于第 \(i\) 个关键点 \(a_i\),有 \(f[\{i\},a_i]=0\)。

注意第二种转移没有明确状态,需要用最短路。

使用 dijkstra,时间复杂度 \(O(n3^{|S|}+|S|m\log m)\)。

标签:le,space,线段,最小,斯坦纳,小记,关键点
From: https://www.cnblogs.com/Sktn0089/p/18061980

相关文章

  • 基于清晰度优先的安卓图片压缩工具的二次开发小记。
    原程序:https://github.com/lexluthors/CompressTools-Android工具特性:这是和微信压缩效果类似的压缩方式,采用底层压缩。尽量无损压缩图片,保持清晰度最优。可以对比原生方法bitmap.compress(CompressFormat.JPEG,quality,fileOutputStream);占用内存少,支持压缩生成原图分......
  • ETT小记
    一个很简单的东西。例题:BZOJ3786题意:一棵树,有点权。多次操作,支持子树加,单点换父亲,查询到根路径权值和。\(1\len\le10^5,\space1\lem\le3\times10^5\)考虑维护树的欧拉序,就是一个点访问和回溯的时候往后加入序列末尾。子树加法就是区间加,换父亲就是区间平移,使用平衡树......
  • 单位根反演小记
    核心式子\[[k|n]=\dfrac1k\sum_{i=0}^{k-1}\omega_k^{i\cdotn}\]证明:当\(n\)是\(k\)的因数时,\(\dfrac1k\sum\limits_{i=0}^{k-1}\omega_k^{i\cdotn}=\dfrac1k\sum\limits_{i=0}^{k-1}\omega_k^0=\dfrac1k\cdotk=1\)当\(n\)不是\(k\......
  • 2024考研小记
    距离26日考研成绩公布已经过去了5天,每天会出现很多不同的想法,有时也会怀疑自己要不要继续坚持。想到自己也才稀里糊涂备考了4个月左右,自己取得这样的成绩也是理所应当的。没什么好难过的。随着时间的推移,毕业设计也推上了日程,整个人还是感觉到压力很大,很焦虑。但今天自己还是花......
  • 数论小记
    gcd辗转相除法,也可以直接用__gcd。线性筛保证每个数只会被其最小的质数筛掉,复杂度\(O(n)\),也可以用来处理积性函数,通常作为更复杂的筛法的预处理。exgcd可用于求解不定方程:\(ax+by=gcd(a,b)\)推导如下:\[ax+by=gcd(a,b)=gcd(b,a\bmodb)=bx'+(a\bmodb)y'......
  • JS/Vue 学习小记
    可能要写点轮子。。。先学学前端知识吧,记录一下。遍历:for(letiofS){i...}for(letiinS){S[i]...}JS是弱类型的语言。目前感觉到的特性有:数组不同元素可以是不同类型的函数返回值不需要声明,直接functionF()就可以JS中对象用大括号表示,成员可以是各种类型,包......
  • 线性基小记
    Part0:前置知识线性空间是一个关于以下两个运算封闭的向量集合:向量加法\(a+b\)。标量乘法\(k*a\)。给定一个向量集合\(A=\{a_1,a_2,\dots,a_k\}\),若向量\(b\)能由\(a_1,a_2,\dots,a_k\)经过向量加法和标量乘法运算得出,则称向量\(b\)能被向量\(a_1,a_2,\dots,a_k\)......
  • KTT 小记
    来源来自EI的2020年的论文《浅谈函数最值的动态维护》。适用范围给出一些形如\(k_ix_i+b_i\)的一次函数且\(x_i\)为已知值,支持动态对一次函数的\(x_i\)或\(b_i\)区间加,并快速查询一次函数的结果最值。思想与实现使用线段树,记录一个阈值\(\Deltax\)表示“当前......
  • SAM小记
    构建其实也写了,但没放上来直接放题吧【模板】后缀自动机(SAM)首先我们求出SAM然后,我们对于每一个前缀对应的节点的edp+1,因为这个串是最长的串(为叶子)然后dfs子树求和,求出edp,然后就可以做了P2408不同子串个数SAM中一个节点代表的串的个数是\(len[now]-len[link[now]]\),对于每......
  • Java虚拟机小记
    目录运行时数据区域Java堆对象创建对象的内存布局对象的访问定位句柄直接指针GC判断对象是否已死引用计数算法可达性分析算法引用的类别垃圾收集算法分代收集理论标记清除算法标记复制算法标记整理算法实现细节并发的可达性分析垃圾收集器serial收集器ParNew收集器ParallelScaven......