当前位置: 首页 > news >正文

洛谷 P3959

NOIP 2017 提高组

给定 \(n\) 个点,\(m\) 条边的无向连通图。要选出一棵有根生成树,设 \(u\)\(fa_u\) 之间的边长度为 \(l_u\),总代价为 \(\sum l_u \cdot dis(u, root)\),求最小总代价是多少?

\(n \le 12, m \le 1000\)

看看数据范围要能想到是状压。大概率不是 \(2^n\)

首先还是要先把 \(root\) 确定好,不然不好做。令 \(f(S)\) 表示 \(S\) 中的点组成的生成树的最小代价,然后发现不好转移,因为你无法确定加入的点的最小深度。

这有个小 trick,我们可以一层层的加入节点,这样加入节点 \(u\) 时只跟上一层又哪些节点有关了。于是可以设计出这样一个状态:令 \(f(d, S, T)\) 表示现在生成树已经有了 \(d\) 层,\(S\) 内的点在生成树中,最后一层组成的节点是 \(T\),枚举第 \(d + 1\) 层的点 \(T'\),就有了个 \(O(n^24^n)\) 的做法。

考虑优化,其实发现 \(T\) 其实是可以抛弃的(似乎也只有这个可能抛弃)。我们之所以要记录这一维,是因为我们要知道哪些点可能在第 \(d + 1\) 层,实际上直接将 \(T\) 看成 \(S\) 是无所谓的,因为不与 \(T\) 相连但与 \(S - T\) 相连的点显然放在更低层更优(\(d\) 更小但 \(l\) 不变),枚举到也无所谓。

于是时间复杂度变成了 \(O(n^23^n)\),需要枚举子集。

运用了一个按层加入的 trick,设计出一个比较又前途的 DP,再优化掉一维即可。

http://www.zskr.cn/news/77923.html

相关文章:

  • 东城区离婚律师事务所推荐:专注婚姻家事的法律服务机构
  • 水下的成长——Goodbye 2025
  • 口碑好的治疗白带异常的品牌推荐 女性健康守护指南
  • Codeforces Round 1069 (Div. 2) A-E2
  • 北京胜率高的婚姻律师事务所有哪些
  • 模切机品牌推荐:国内优质选择及核心优势解析
  • 出门改变
  • 朝阳区婚姻律师事务所推荐:聚焦家事法律服务机构综合盘点
  • 工业洗地机品牌推荐:口碑之选与实用选购参考
  • 数据会说谎?三大推断方法帮你“审问”数据真相
  • 实用指南:本地开发可信 HTTPS 证书生成神器:mkcert
  • 京城爱加陪诊官方服务电话信息声明公示
  • 2025年微信公众号排版工具权威评测:哪款编辑器更适合你?
  • 道2:汉语和英语是互相独立的系统,学习英语就是学习“切换系统”
  • JAVA快捷键
  • 前端实现页面截图及截图内容包含跨域图片时的处理
  • 2025年苗木批发基地供应商口碑榜:前十强深度解析,丝棉木/金森女贞/青叶复叶槭/红叶李/国槐/白蜡/无刺枸骨球苗木批发基地供应商排行榜单
  • 2025 最新免费降 AI 率网站测评!13 款中英文工具实测,哪个最好用?
  • 软件构造大作业:儿童故事管理平台的开发
  • 屏幕上那一行刺眼的红色 `Time Limit Exceeded`,是不是你我再熟悉不过的场景?
  • 西电2025硕士网课——人工智能安全与伦理练习答案
  • 2026上海办公室装修实力强的公司推荐三家:资质与案例双标杆指南
  • 枚举
  • 认识设计模式——单例模式 - 指南
  • 应用文档抽取技术,赋予RPA理解和处理复杂现实世界信息的能力
  • 深入解析:在百度seo快速收录要求是什么 有哪些
  • 腾讯新闻APP的消息推送Push架构技术重构实践
  • Hello World
  • 外包干了一个月,科技明显进步。。。。。
  • 拉格朗日乘子和 KTT 条件的关系