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

2025/12/16 分享

这天要写的东西其实鸽了……来记今天一个同学问我的一些问题

后续,喜报,现在是 18 早上,17 号直接鸽。

问题 1 :

给一棵无根 树 \(T = (V, E)\) 。独立询问每个节点 \(v_i\) ,删除 \(T\) 的某个叶子得到 \(T_{1}\) ,继续删除 \(T_{1}\) 的某个叶子得到 \(T_{2}\) ,继续迭代……询问删掉节点 \(i\) 最少需要耗费多少节点?

不妨考虑单独以 \(v_i\) 为根怎么处理。

存在一个显然的 case 1 ,即 \(v_i\) 是一个度数为 \(1\) 的根,则我们可以直接删掉 \(v_i\) ,它在无根树 \(T\) 中也属于叶子。

否则是 case 2,\(v_i\) 的度数 \(> 1\) 。则必然允许删 \(v_i\) 之时,\(v_i\) 剩下 \(\leq 1\) 棵子树,显然易证明 \(v_i\) 剩下 \(1\) 棵子树比剩下 \(0\) 棵子树会严格更优,则不妨令这棵子树为 \(son_{j}\) 。于是有两个显然,一是除了 \(son_{j}\) 外的其他子树必须删完,二是 \(son_{j}\) 内的节点一个都不删最优,于是在选定 \(son_{j}\) 的情况下删掉 \(v_i\) 花费的最少节点为 \(|V| - |son_{j}|\) 。显然答案会随着我们对 \(son_{j}\) 的选择而改变,并且显然 \(son_{j}\) 应当选择 \(v_{i}\) 的最大子树。

将 case 1 代入 case 2 依旧成立。

可以 \(O(|V|)\) DP 出以 \(v_i\) 为全局根,每棵子树 \(x\) 的最大子树 \(mxsz(x)\) 。但为了解决问题,存在 \(|V|\) 次换根,每次换根导致根的最大子树改变。

如果每次重新计算最大子树,则重新贡献 \(O(|V|)\) 的 DP 。考虑换根时 DP ,从当前根 \(u\) 到一个子节点 \(v\) 的换根,\(v\) 的最大子树要么是 \(mxsz(v)\) ,要么是 \(|V| - sz(u)\) 。于是每次换根只需要 \(O(1)\) 时间即可得到新根的最大子树。

时间复杂度依赖于一次 \(O(|V|)\) 的树形 DP 和一次 \(O(|V|)\) 的换根 DP ,总时间复杂度依然为 \(O(|V|)\)

问题 2 :
有同学问背包转移中的状态转移,是否可以先遍历体积再遍历物品。
从组合意义上讲显然可以,从算法优化上讲,因为我们可以只保留体积状态,这意味着一定要一个一个物品做动态规划,那么显然不能将二维空间的遍历顺序转置。

这里我想到了倍增,我们显然知道对于每个遍历系数他的物品状态都提前算出来是对的,证据是他的转移方程 \(f(i, j) \gets f(i - 1, j) + f(i - 1, j + 2^{i - 1})\)

显然理论上我们如果能在 j 的物品这意味倒着遍历,则 i 和 j 的顺序也能交换,即 \(f(i, j) \rightarrow f(i + 1, j), f(i + 1, j + 2^{i})\)

http://www.jsqmd.com/news/108935/

相关文章:

  • 终极微信消息自动转发工具完整使用教程:告别手动操作烦恼
  • Windows驱动管理革命:DriverStore Explorer深度解析与实战应用
  • 2025年12月广东惠州高光喷涂品牌综合评估与推荐榜单 - 2025年品牌推荐榜
  • Flowchart-Vue:5分钟掌握Vue流程图可视化终极指南
  • MPV播放器终极定制指南:用MPV_lazy打造你的专属观影神器
  • LosslessCut字幕处理终极指南:轻松添加提取编辑视频字幕
  • HEIF Utility:Windows用户的终极HEIC转JPEG解决方案
  • KinhDown技术解析:提升百度网盘下载效率的有效方法
  • 5步搞定视频硬字幕提取:从水印干扰到精准识别的完整实践指南
  • Mootdx通达信数据接口:Python金融数据分析的终极解决方案
  • BlueArchiveAutoScript安卓实体手机一键配置指南:快速实现蔚蓝档案自动化
  • 视频硬字幕提取的三大核心技术突破:从区域定位到智能过滤全解析
  • Topit终极指南:一键实现Mac窗口置顶,彻底告别多任务切换烦恼
  • 安卓手机配置游戏自动化脚本完整指南
  • Android应用保活完整指南:突破系统限制实现永久后台运行
  • 47、GTK+ 开发:Stock Items、错误类型与练习解答
  • YOLO-Face人脸检测实战指南:从入门到精通
  • db-doc数据库文档生成工具:零配置部署的自动化文档解决方案
  • 如何快速掌握微信小程序图片裁剪:we-cropper的完整实践指南
  • Unitree Go2 ROS2 SDK深度解析:从基础控制到智能应用的完整开发指南
  • Mootdx通达信数据接口:Python量化投资的入门利器
  • QQScreenShot截图工具实战宝典:高效办公的终极利器
  • 如何快速上手PCL2-CE:打造专属Minecraft启动器完整指南
  • 48、编程练习解决方案与提示
  • AutoSubs终极指南:快速实现Davinci Resolve智能字幕生成
  • 超实用漫画阅读器Venera:新手零基础入门全攻略
  • 抖音无水印视频下载:3大方案深度解析与实战指南
  • 百度网盘资源获取实用指南:高效下载解决方案
  • MacType终极指南:Windows字体渲染革命
  • Go-CQHTTP:零基础搭建高性能QQ机器人的完整指南