前言

\(DP\)这东西真的是博大精深啊......

简介

树形\(DP\),顾名思义,就是在树上操作的\(DP\),一般可以用\(f_i\)表示以编号为\(i\)的节点为根的子树中的最优解。

转移的时候一般都将信息由子节点转移到父亲节点,也就是将信息从下往上转移。

因此,一般树形\(DP\)都会采用 递归 的形式。

典例1:树上背包

树形\(DP\)中有一种比较经典的题型:树上背包

其实它的思想与普通背包差不多,关键在于它玄学的时间复杂度。

很多看似\(O(n^3)\)会\(T\)飞(实际上也的确是这样)的题目,可能你用\(O(n^3)\)的树上背包却能跑过(时间复杂度我也不会证),而且不是因为数据水

可参考一道例题:【洛谷1273】有线电视网

典例2:带负权树的直径

普通的树的直径可以用\(BFS\)来求,但如果是带负权的,\(BFS\)就会被卡炸(可惜我之前不知道)。

于是就用上了树形\(DP\)

可参考一道例题:【杂题】访问计划

几道例题

好吧,\(DP\)好像也没什么东西可讲,这样介绍得还是不够具体。干脆直接看例题来理解一下吧。

第一道例题: 【51nod1299】监狱逃离

这题是一道挺有意思的树形\(DP\)题,我们可以考虑用\(f\)数组来记录每一个节点的状态:完全封死可以从这个节点到达叶子节点有犯人可以到达该节点,然后就不难统计出答案了。

第二道例题: 【BZOJ4033】[HAOI2015] 树上染色

比较经典的树形\(DP\)题。这道题最值得注意的地方不是\(DP\)过程,而是注意在一棵有\(n\)个节点的树上将\(m\)个节点染成黑色与将\(n-m\)个节点染成黑色其实是等价的,不加上这个优化就会\(TLE\)。

第三道例题: 【BZOJ1040】[ZJOI2008] 骑士

一道恶心的基环外向树\(DP\),应该是比较模板的吧。

动态规划专题(二)——树形DP的更多相关文章

  1. DP专题·四(树形dp)

    1.poj 115 TELE 题意:一个树型网络上有n个结点,1~n-m为信号传送器,n-m+1~n为观众,当信号传送给观众后,观众会付费观看,每铺设一条道路需要一定费用.现在求以1为根,使得收到观众 ...

  2. POJ2342 Anniversary party(动态规划)(树形DP)

    Anniversary party Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6635   Accepted: 3827 ...

  3. 【DP_树形DP专题】题单总结

    转载自 http://blog.csdn.net/woshi250hua/article/details/7644959#t2 题单:http://vjudge.net/contest/123963# ...

  4. 动态规划——树形dp

    动态规划作为一种求解最优方案的思想,和递归.二分.贪心等基础的思想一样,其实都融入到了很多数论.图论.数据结构等具体的算法当中,那么这篇文章,我们就讨论将图论中的树结构和动态规划的结合——树形dp. ...

  5. 【转】【DP_树形DP专辑】【9月9最新更新】【from zeroclock's blog】

    树,一种十分优美的数据结构,因为它本身就具有的递归性,所以它和子树见能相互传递很多信息,还因为它作为被限制的图在上面可进行的操作更多,所以各种用于不同地方的树都出现了,二叉树.三叉树.静态搜索树.AV ...

  6. 树形dp总结

    转自 http://blog.csdn.net/angon823 介绍 1.什么是树型动态规划 顾名思义,树型动态规划就是在"树"的数据结构上的动态规划,平时作的动态规划都是线性的 ...

  7. 树形 DP 总结

    树形 DP 总结 本文转自:http://blog.csdn.net/angon823/article/details/52334548 介绍 1.什么是树型动态规划 顾名思义,树型动态规划就是在“树 ...

  8. 树形$dp$学习笔记

    今天学习了树形\(dp\),一开始浏览各大\(blog\),发现都\(TM\)是题,连个入门的\(blog\)都没有,体验极差.所以我立志要写一篇可以让初学树形\(dp\)的童鞋快速入门. 树形\(d ...

  9. 树形DP(超详细!!!)

    一.概念 1.什么是树型动态规划 树型动态规划就是在“树”的数据结构上的动态规划,平时作的动态规划都是线性的或者是建立在图上的,线性的动态规划有二种方向既向前和向后,相应的线性的动态规划有二种方法既顺 ...

随机推荐

  1. 定时器详解和应用、js加载阻塞、css加载阻塞

    1.setTimeout().setInterval()详解和应用 1.1 详解: setTimeout.setInterval执行时机 1.2 存在问题: setInterval重复定时器可能存在的 ...

  2. elasticsearch 聚合查询

    1. 按照 tags 字段 进行分组 GET /ecommerce/product/_search{ "size": 0,  "aggs": {    &quo ...

  3. Java 异常处理基本规则,Java异常处理的基本规范

    看了团队中原来代码中的异常处理,心碎了一地,稍微对照阿里巴巴的异常处理规范整理了一遍,准备分享一下,Java的异常处理规范&约束. 一.运行异常的扑捉 不要捕获 Java 类库中定义的继承自  ...

  4. 浏览器Quirksmode(怪异模式)与标准模式

    由于历史的原因,各个浏览器在对页面的渲染上存在差异,甚至同一浏览器在不同版本中,对页面的渲染也不同.在W3C标准出台以前,浏览器在对页面的渲染上没有统一规范,产生了差异(Quirks mode或者称为 ...

  5. Java Web之分页的实现(通用)

    一.用到的工具类的封装 为了实现代码的重用性,我们将经常用到的代码封装到工具类中,以便在任何地方都可以调用 1.获取路径工具 在jsp页面中,我们经常会向Servlet发送请求,并通过反射,实现通过传 ...

  6. 我的省选 Day -11

    Day -11 上了一天的文化课,晚上才来到机房(神秘的一天.. 班里前一半的JuLao们都去参加省质检的同步赛了, 然而我太菜,早就跌到班级的中下下了(所以没得参加.. 所以今天上课时特别尴尬,班级 ...

  7. JadClipse

    JadClipse 介绍:JadClipse是一个Eclipse插件,无缝地集成了Jad(快速Java反编译器)与Eclipse.通常,当打开一个类文件,类文件查看器将显示一个简短的API类的轮廓.如 ...

  8. Problem Statement

    题目链接:https://vjudge.net/contest/239445#problem/E     E - Problem Statement You are given nn strings ...

  9. HDU 5773 The All-purpose Zero 脑洞LIS

    给定一个序列,里面的0是可以任变的.问变化后最长的LIS的长度 首先,0全部选上是不亏的.这个不知道怎么说,YY一下吧. 最关键的就是解决2 0 0 3 这种问题了. 注意到这个序列的LIS应该是3 ...

  10. Lecture--9 Sorting

    1/排序算法:冒泡排序bubble sort,插入排序 insertion sort,选择排序 selection sort,快速排序 quick sort,归并排序 merge sort;堆排序 h ...