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

动态DP细谈

动态DP

  • 动态DP本质就是普通树形DP变成在树上进行丧心病狂的修改权值,而这类问题往往可能每次都需要每次修改后再去DP一遍,这样就造成时间复杂度巨大无比,那么我们就可以很 (时) 自 (间) 然 (巨) 地 (大) 引出新算法------>动态DP.
  • 自己分的觉得动态DP可以分成两类题型,一种我叫树形动态DP,另一种叫线性动态DP。我自认为树形动态DP比较人性化 (用的东西更人性) 。

树形动态DP

  • 首先这一类问题往往是在树上去找几个点去求某些值,而他修改的内容也是几个点权值的修改,而如果每次修改我们就重新算树形DP,无疑时间巨大。而这类通常修改次数不多,只是每次修改几个点(可以区别于我后面要讲的线性动态DP)。
  • 树形动态DP解决这类问题通常采用 (虚树+树形DP):因为我们每次修改的点并不会影响其他点,那我们可以在原来的树上,建立一个新的树—>虚树,虚树就只保存我们需要的关键点,那DP的时间就降下来了,而且因为我们后面用了树形DP,其关键点的最近公共祖先也应该为关键点,保存在虚树里。

主要解决步骤

  1. 虚树的解决
    因为虚树要保存关键字及其最近公共祖先,我们需要现在原图上保存每一个点的dfs顺序,然后按着dfs顺序去找,我们就假设此时虚树中左侧的点已经全部处理好了,那我们就要去可以用一个栈去保存此时的分界线即当前处理的链,如果now点不属于当前sta的顶上点的子树,那么就需要给所有左边的点加入虚树边,再将lca与now加入sta,最后再将sta里面剩余便挨着挨进行建边,那么就建立好虚树。
    2.树形DP
    把虚树建立好后,那求结果就很好了,再虚树上进行树形DP即可。

---------------------------------------------//等待下期更新

http://www.dtcms.com/a/457074.html

相关文章:

  • PHP Exception:深入理解与最佳实践
  • Nginx 反向代理与负载均衡
  • 学校网站建设是什么低价网站建设公司
  • 【HarmonyOS】窗口管理实战指南
  • Java基础加强13-集合框架、Stream流
  • 鸿蒙 hiperf 制作火焰图
  • 随机变量基础教程
  • 鞋子网站建设策划书北京网站设计多少钱
  • 超越传统:精密蚀刻如何实现±1μm的极致公差
  • 鸿蒙NEXT系列之鸿蒙NDK UI 初探
  • gRPC从0到1系列【25】
  • 冠县网站建设电话wordpress优化打开速度插件
  • Redis中string底层实现原理
  • 百度经验官方网站登录入口常州网站建设方案优化
  • 网站改域名如何做百度优化企业网站营销典型案例
  • Java采用easyexcel组件进行excel表格单元格的自动合并
  • 整体设计 逻辑系统程序 之18 Source 容器(Docker)承载 C/P/D 三式的完整设计与双闭环验证 之2
  • 汽车保险网站简历模板大学生
  • 基于pytest的接口测试
  • 阿里巴巴做网站需要多少钱镇江vi设计
  • 嵌入式Linux(以泰山派无 eMMC 版为例,嘉立创给的Linux镜像有问题!)系统报错磁盘不够但我用的是32G不可能不够怎么解决
  • 开源一个本地AI知识库
  • js哈哈哈哈哈哈哈哈哈哈
  • 做外汇都要看什么网站多元网站建设
  • 一些主要应用和NAT
  • AI编程开发系统028-基于Vue+SpringBoot的宠物领养系统系统(源码+部署说明+演示视频+PPT+lw)
  • MySQL连接池原理与网站数据流动(了解)
  • Hadess入门到实战(8) - 如何管理Go制品
  • 最短路径问题总结
  • 建设银行网站为什么登不上门头设计