斯坦纳树

news/2024/10/5 21:39:35/文章来源:https://www.cnblogs.com/lovely-sheep/p/18442177

给一张图,其中一些点称为关键点。

斯坦纳树的定义就是能覆盖关键点的连通子图,为什么叫连通子图,可以发现答案子图可以为一棵树,否则如果有环,可以删去环上任意一条边,新图也联通。

\(\textup{最小斯坦纳树}\)

\(Link\)

题意:给定一张带权无向图,其中有一些点是关键点,求连通子图的最小长度。

可以发现答案子图一定为一棵树,否则如果有环,可以删去环上任意一条边,新图也联通。

这是个 NP-hard 问题,可能没办法在多项式时间复杂度内(\(\mathcal{O}(\mathcal{n}^k)\)\(\mathcal{O}(\mathcal{nk})\))解决,考虑状压。

子图的状态肯定无法压进 dp,考虑将关键点的状态压进 dp。

由于答案是一棵树,可以设 \(f_{i,S}\) 表示以 \(i\) 为根,且关键点覆盖状态为 \(S\) 的最小长度。

我们可以将以 \(i\) 为根的树分成两类:\(i\) 的度数为 \(1\)\(i\) 的度数大于 \(1\)

分讨:

  • \(i\) 的度数为 \(1\),则这个点的转移来自于他唯一的连边,我们就考虑通过 \(i\)的相邻点来转移,设这个点为 \(j\),则

\[f_{i, S} = f_{j, S} + dis_{i,j} \]

  • \(i\) 的度数大于 \(1\),则可以将这个图分成 \(i\) 的若干个子树,就可以通过枚举子集转移:

\[f_{i,S} = \min\{f_{i, T} + f_{i, S - T} \} \]

实现方面,对于第一种转移,可以想到最短路算法的松弛操作,将整张图松弛,先将整张图更新的点扔进队列,然后用第一种转移的转移式更新整张图的 \(f\),通过最短路算法实现。

可以发现图是比较稀疏的,可以复活死去的 \(SPFA\), 这个转移的时间复杂度卡满的话是 \(\mathcal{O}(2^knm)\),和枚举子集比起来你会惊奇发现这和枚举子集的时间复杂度差不多。

对于第二种转移,直接枚举子集,复杂度 \(\mathcal{O}(3^kn)\)

讲一下枚举子集的时间复杂度,之前一直不是很懂。

设集合大小为 \(T\),则大小为 \(0\) 的子集个数为 \(C_n^0\),大小为 \(1\) 的子集个数为 \(C_n^1\)...大小为 \(n\) 的子集个数为 \(C_n^n\)

枚举的总复杂度就是 \(2^0 \times C_n^0 + 2^1 + C_n^1 + ... 2^n + c_n^n = \sum_{k = 0}^{n} 2^k C_n^k = \sum_{k = 0}^{n} 2^k 1^{n-k}C_n^k = (2 + 1)^n = 3^n\)

最后 \(ans = \min \{f_{i,2^{k} - 1}\}\)

游览计划

可以发现这题很板,只是加了一个点权转边权和输出方案。

输出方案在每次转移时加一个 \(pre\) 数组,然后 dfs。

点权转边权可以考虑将第二个转移改成

\[f_{i,S} = \min\{f_{i, T} + f_{i, S - T} - val_i\} \]

因为两边我们都算了一次 \(i\) 节点,减了就行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/808729.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

监控室值班人员脱岗睡岗识别系统

监控室值班人员脱岗睡岗识别系统基于Yolov7深度学习神经网络算法,监控室值班人员脱岗睡岗识别系统可以7*24小时不间断自动监控总监控室值班人员是否在工位上(脱岗睡岗玩手机),若值班人员没有在总监控室系统则立即抓拍告警,算法鲁棒性强。监控室值班人员脱岗睡岗识别系统检…

监控室值班人员脱岗识别系统

监控室值班人员脱岗识别系统通过AI视觉技术,监控室值班人员脱岗识别系统实现企业总监控室值班人员脱岗、睡岗、玩手机等场景的AI识别,不需人为干预全天候自动识别。监控室值班人员脱岗识别系统通过建设视频监控智能识别功能赋能企业端,监控室值班人员脱岗识别系统对各个生产…

非煤矿山电子封条

非煤矿山电子封条 支持对接甘肃省矿山监管平台通过AI智能分析技术,非煤矿山电子封条可以实现矿山与甘肃省应急管理部门互联互通,非煤矿山电子封条 支持对接甘肃省矿山监管平台通过在关键地点(关键位置包括矿山主副井口、风井口、车辆出入口和调度室)安装摄像机,非煤矿山电…

甘肃省非煤矿山电子封条建设方案

甘肃省非煤矿山电子封条建设方案通过AI视频智能分析技术,甘肃省非煤矿山电子封条建设方案利用在煤矿风井口、煤矿调度室、煤矿主副井口、矿区车辆出入口重要位置安装摄像机,甘肃省非煤矿山电子封条建设方案对非煤矿区生产作业状态以及矿井出井入井人员数量变化、监控室人员睡…

校园食堂明厨亮灶监控分析系统

校园食堂明厨亮灶监控分析系统通过yolov5网络模型技术,校园食堂明厨亮灶监控分析系统针对校园餐厅后厨厨师穿戴及行为进行7*24小时不间断实时分析预警,如:不按要求戴口罩、不穿厨师帽、陌生人员进入后厨、厨师不穿厨师服、上班时间玩手机、老鼠识别等行为。校园食堂明厨亮灶…

工服智能监测预警系统

工服智能监测预警系统通过yolov8网络模型算法,工服智能监测预警系统对摄像机画面内出现的人员着装穿戴实时监测,当检测到现场人员未按要求穿戴工服工装则输出报警信息,通知后台值班人员及时处理。工服智能监测预警系统无需新增硬件,利用最新的深度学习技术,基于现场监控视…

ai皮带跑偏撕裂监测系统功能

ai皮带跑偏撕裂监测系统功能基于人工智能视觉技术,ai皮带跑偏撕裂监测系统功能自动识别现场监控画面中传送皮带撕裂、跑偏、偏移等情况,当ai皮带跑偏撕裂监测系统功能检测出皮带出现撕裂或者跑偏现象后,立即告警抓拍存档同步回传后台提醒及时处理,提高煤矿的智能化水平和人…

订单交易平台一

简介:订单交易平台核心的功能模块:认证模块,用户名密码 或 手机短信登录(60s有效)。角色管理,不同角色具有不同权限 和 展示不同菜单。 管理员,充值客户,下单客户管理,除了基本的增删改查以外,支持对客户可以分级,不同级别后续下单折扣不同。交易中心管理员可以给客…

学习“基于VirtualBox虚拟机安装Ubuntu图文教程”

安装过程中出现了很多问题第一次安装没有下载ubtun20.04 镜像 第二次安装不知道如何下载bzip2,导致一直安装增强功能 第三次在上B站搜索视频讲解后成功安装好了

wintools premium 24.10.1 注册分析

wintools premium 24.10.1 目录wintools premium 24.10.1NAGSCREEN_proc_472350check_472BF0pyps win32 程序,程序注册逻辑简单,关注窗口事件、控件id可快速定位到关键逻辑。 NAGSCREEN_proc_472350 INT_PTR __thiscall NAGSCREEN_proc_472350(void *this, HWND hDlg, UINT a…

项目部署二:服务器和环境配置

2.服务和环境配置 下面的配置和操作均在腾讯云服务器+CentOS 7.5的系统下进行。 2.1 MySQL安装服务端 yum install mariadb-server -y mariadb-server.x86_64 1:5.5.68-1.el7安装客户端 yum install mariadb -y 软件包 1:mariadb-5.5.68-1.el7.x86_64 已安装并且是最新版本服务…

freeRTOS源码解析4--tasks.c 7

4.2.20 空闲任务调用1--prvCheckTasksWaitingTermination 删除所有终止的任务, 释放资源。简单描述就是清空xTasksWaitingTermination列表,释放资源,递减uxCurrentNumberOfTasks和uxDeletedTasksWaitingCleanUp。接口:static void prvCheckTasksWaitingTermination( void )接…