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

2/4 以边为对象的树形dp练习等学习总结

image
一个不知道有啥意义的图。

CF1923E Count Paths

\(O(n^2)\)解法

\(dp_{u,i}\) 表示 \(u\) 的子树内一个颜色为 \(i\) 的点到 \(u\) 的链且路径上没有其他颜色为 \(i\) 的链数量。

如何状态转移?当点 \(u\) 加入一个儿子 \(v\) 时,把 \(v\) 中的链和 \(u\) 拼起来,此时 \(ans+=dp [v,c[u]]\),加入是把其与 \(u\) 中另一条链拼起来,此时 \(ans+=dp[u,x] \times dp[v,x]\),然后需要让 \(dp[u,x]\) 增加 \(dp[v,x]\) 也就是把链算入 \(u\) 的子树贡献中。

正解

注意到将 \(dp[v,x]\) 合并到 \(dp[u,x]\) 上复杂度较高。注意到由于两个状态只要一个为空就不产生变化,因此一个点 \(v\) 的状态数至多为 \(v\) 的子树大小。那么我们使用if else书上启发式合并,每次将小的状态暴力插入大的状态中并更新贡献,并用 map 维护一个点的所有状态。

复杂度是多少呢?每个点至多被插入 \(\log{n}\) 次,加上 map 的 \(\log{n}\) 就是 \(O(n \log^2{n})\)

注意以下几个易错点:

  • 整个过程中因为链一定经过了点 \(u\) 所以 \(dp[u,col[u]]\) 始终需要为 0。
  • 算完所有贡献之后再算从点 \(u\) 自己开始的链,也就是让 \(dp[u,c[u]]\) 为 1。

代码没调出来TwT,写的另一种代码好些的写法。

另一种解法

注意到每种颜色是独立的。这里指的是无论两个颜色相同的节点之间是什么颜色,都不会干扰到后面的统计答案。可以直接把每种颜色分开算,但效率低下,我的做法就是一次dfs统计完答案。

\(cnt[a]\) 表示当前 \(a\) 这种颜色出现并且可以与之合法匹配的节点的个数,然后对整棵树进行dfs。流程如下:

  • 一、在搜索到点 \(u\) 时,答案加上 \(cnt[c[u]]\)

  • 二、在进入以 \(u\) 为根的子树时,把 \(cnt[c[u]]\) 设为 1。因为路径上不能有其他点的颜色和起点终点相同,所以 \(u\) 的子孙不可能经过 \(u\)\(u\) 的祖先和其他节点匹配,只能与 \(u\) 匹配。只能贡献 1 种方案。

  • 三、在遍历完 \(u\) 的所有子树后,把 \(cnt[c[u]]\) 的值设为其在遍历子树前的值加 1。 因为如果令根节点为 \(u\),按顺序考虑 \(u\) 的子树,每棵子树只有顶部的点(上面没有颜色与之相同的点)到现在的点的路径是合法的,子树与子树之间也是只有顶部的点合法,加 1 就表示加上 \(u\) 这个顶部的点。

每种方案恰好被计算一次。dfs 时间复杂度 \(O(n)\)

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

相关文章:

  • 2026.2.4
  • 鸿蒙底层实现:ObservedV2 如何实现状态响应式更新
  • 英语_阅读_mental health
  • 2026年太阳能路灯厂家最新推荐:新农村太阳能路灯、老年车锂电池、货三轮锂电池、道路太阳能路灯、高杆太阳能路灯选择指南 - 优质品牌商家
  • ServiceActivator之Spring Integration框架
  • 基于YOLOv5/YOLOv8/YOLOv10的吸烟行为智能检测系统:从原理到实现
  • 国产最好的成人鱼油哪个牌子的好排第一?2026高纯鱼油排行榜,全人群适配 - 资讯焦点
  • RDT2发布,叠衣服成功率爆拉了pi0.5 40%!全球首个在未见过的本体上实现零样本部署
  • 2026年太空舱厂家推荐,高端民宿款太空舱品牌核心优势全解析 - 品牌鉴赏师
  • blender 绑定衣服对齐
  • 哪个品牌的冷冻研磨机好?厂家推荐与方法要点 - 品牌推荐大师1
  • 备考乡村全科执业助理医师考试,哪个培训机构好? - 医考机构品牌测评专家
  • AI元人文:元认知下的人工智能伦理与学术生态
  • 掌握ADC核心技术:模拟信号采样与数字化全流程解析
  • 学C++第五天_【通讯录管理系统】
  • 2026年不锈钢紧固件厂家推荐:泰州市博特不锈钢标准件有限公司,全系不锈钢螺丝/螺母/铆钉供应 - 品牌推荐官
  • 主管护师考试视频课程推荐横评:优质资源对比与选择指南 - 医考机构品牌测评专家
  • 2026年洗手液厂家推荐:北京今日天鸿医疗器械制造有限公司,多品类抗菌/抑菌洗手液全覆盖 - 品牌推荐官
  • 主治医师考试高含金量课程深度测评来了,快来领取你的备考指南 - 医考机构品牌测评专家
  • 2026年安全阀校验台厂家推荐:山东铂尔特流体控制系统在线/计算机/便携式多型号供应 - 品牌推荐官
  • 2026年洛阳市优质初中推荐:寄宿制/私立/复读/民办/全封闭初中全解析 - 品牌推荐官
  • 沙箱环境安装dotnet
  • 备考2026卫生初中级职称选哪个课程更容易通过 - 医考机构品牌测评专家
  • 2026年mpp电力管厂家实力推荐:河南瑞德管道有限公司,定制/批发/价格全解析 - 品牌推荐官
  • 2026年三菱工控设备回收推荐:深圳市龙华区曼哈顿自动化设备商行专业回收CPU/控制器/触摸屏等 - 品牌推荐官
  • 中西医执业医师课程测评:哪家机构课程更能助力高效通关? - 医考机构品牌测评专家
  • 2026年比热容测试仪厂家推荐:湘潭市仪器仪表有限公司,全自动高温/常温设备全系供应 - 品牌推荐官
  • VMWARE虚拟机上不了网络
  • 2026年评价高的烘干机公司推荐:农业干燥机/化工原料烘干机/化工干燥机/四川干燥机厂家/四川烘干机厂家/工业物料烘干机/选择指南 - 优质品牌商家
  • 如何在Android上恢复已删除的联系人