树形DP 复习
树形DP
树形DP:建立在树上的动态规划
一般有两种传递方式:根→叶或叶→根
前者出现在换根DP中,一般操作是求出某一个点的最优解,再通过这一个点推知其他点的最优解。
后者是树形DP的常见形式,一般树形DP都是在叶子向根转移上。
一般状态都是f[x][...]表示x的子树中如何如何
POJ_3342_Party at Hali-Bula_树形DP
题目大意:没有上司的舞会,不存在选了连续两个点的情况,求最多选多少人。
题解:最裸的树形DP,直接状态,f[i][0]表示没选这个点,子树中最多选了多少个点。f[i][1]表示这个点选了,子树中最多选多少个点,之后每次max(f[son][0],f[son][1])更新f[x][0],之后f[son][0]更新f[x][1]
BZOJ_1864_[Zjoi2006]三色二叉树_树形DP
题目大意:

话说这道题的难点不在于树形DP啊...而是怎么把给你的东西转化成树啊...
树形DP很显然,f[x][1]表示这个点染成绿色的子树最大值,f[x]][0]表示没有染成绿色的子树最大值,(没有必要知道到底染成什么颜色,因为必定存在有解情况。)之后,直接转移一下。转移方程同上。
VIJOS P1144 小胖守皇宫
题目大意:
题意: 有一颗树, 每个节点是一个宫殿, 并且有个花费。 然后要驻扎人。 如果一个节点进驻了, 相邻的点,都会被监控。 问监控所有节点的最少花费。
相对于前两道题稍微复杂了一些。状态:f[x][0]表示x这个节点由儿子守的子树最小花费,f[x][1]表示这个点由自己守的子树最小花费,f[x][2]表示这个点由父亲守的子树最小花费。
之后转移就直接考虑一下那些状态全覆盖,那么就是f[x][1]可以从f[to][0,1,2]转移来,因为不论是哪一个,都满足要求,f[x][2]可以从f[to1][0,1]转移来,因为这两个也满足每一个节点都被守好了,而f[x][0]相对复杂一些,因为儿子节点只需要有一个守卫即可,那么我们考虑直接让f[x][0]从f[x][2]转移来,也就是在儿子节点中选择一个守卫与不守卫的差最小的一个。之后常规操作转移即可。
BZOJ_1060_时态同步_树形DP
题目大意:
给你一颗树,每次可以增加某一条路的长度,最后让所有根到叶子节点等长,求最小次数。
很显然,这是一个树形DP直接贪心的将所有子节点的距离改变成同一个,之后将子节点信息上传即可。
BZOJ_1040_[ZJOI2008]骑士_树形DP
题目大意:
给你一个基环树森林,之后选择若干个互相不直接相连的点,使权值最大。
树形DP比较显然,相对的来说就这是一类题型,基环树DP,找到每一个环,之后拆环分别DP最后合并答案即可。f[i][0]表示没选,f[i][1]表示选了,之后转移同上,每一个环有两种情况,找到环上任意一个边,断开,分别讨论两个都没选,选一个的情况,之后合并。
BZOJ_3037_创世纪_树形DP
题目大意:
给你n个点,每个点有一个父亲,求选择最大权值满足每个节点都有一个儿子不选。
同上,也是一个基环树DP,满足每个点都有一个入边,并且一共n个边,则必定为一个基环树。考虑状态,类似小胖守皇宫,但不太相同,f[x][0]表示这个点不选的子树最大权值和,f[x][1]表示这个点选的子树最大权值和,之后每次转移的时候找到一个儿子节点中f[x][0]-f[x][1]最大的,之后来更新f[x][1],其他的直接贪心的要最大值即可,另外针对每个环,将其拆开分别讨论,作为子节点的分别讨论选与不选,而作为父节点的直接dfs一遍,求出对应的状态即可,最后答案+=max(f[son][1],f[son][0]),注意后者包含f[x][1]的情况。
BZOJ_1827_[Usaco2010 Mar]gather_奶牛大集会
题目大意:
给你一棵树,问以某一点为根的时候,所有点深度*点权的和最小
另一类树形DP,换根DP,一般这类题目都是给你一个树,之后问你所有点的信息,这个时候,暴力求是N^2的,但是可以以任意节点为根节点,之后求出根节点的值,之后再把信息从父节点→子节点转移求出对应答案即可。
这个题,先求出1为根的情况,之后每次传递给子节点。
BZOJ_1131_[POI2008]Sta
题目大意:
给你一颗树,之后问以某一个点为根的时候,所有点的深度和最小。
树形DP,直接转移,每次父亲节点,减去这个子节点的贡献,之后传递给子节点即可。
树形DP 复习的更多相关文章
- 树形dp复习 树上依赖背包问题
选课 今天又看了一下这道题,竟然AC不了了 自己的学习效率有点低下 要明白本质,搞透彻 #include<bits/stdc++.h> #define REP(i, a, b) for(r ...
- 算法复习——树形dp
树形dp的状态转移分为两种,一种为从子节点到父节点,一种为父节点到子节点,下面主要讨论子节点到父亲节点的情况: 例题1(战略游戏): 这是一道典型的由子节点状态转移到父节点的问题,而且兄弟节点之间没有 ...
- 再探树形dp
随着校oj终于刷进了第一页,可以不用去写那些水题了,开始认真学习自己的东西,当然包括文化课.努力.. 这道题呢是道树形dp,可看到了根本就不知道怎么写思考过程: 5min 终于看懂了题 画了样例的图把 ...
- codevs1163访问艺术馆 树形dp
算裸的树形dp吧 回来复习一波 #include<cstdio> #include<cstring> #include<algorithm> #include< ...
- 初涉树形dp
算是一个……复习以及进阶? 什么是树形dp 树形dp是一种奇妙的dp…… 它的一个重要拓展是和各种树形的数据结构结合,比如说在trie上.自动机上的dp. 而且有些时候还可以拓展到环加外向树.仙人掌上 ...
- [BOI2003] Gem - 树形dp
结论 不同颜色数不会超过 \(O(\log n)\) 然后就是很简单的树形dp了 顺便复习一下树形dp怎么写 #include <bits/stdc++.h> using namespac ...
- 树形dp技巧,多叉树转二叉树
今天复习树形dp时发现一道比较古老的题,叫选课,是树形dp的一道基础题,也是多叉树转二叉树应用的模版题 多叉树转二叉树的应用非常广泛,因为如果一个节点的儿子太多,一个一个存下来不方便去查询,并且会增加 ...
- 树形DP 学习笔记(树形DP、树的直径、树的重心)
前言:寒假讲过树形DP,这次再复习一下. -------------- 基本的树形DP 实现形式 树形DP的主要实现形式是$dfs$.这是因为树的特殊结构决定的——只有确定了儿子,才能决定父亲.划分阶 ...
- 集训DP复习整理
DP复习 集训%你赛2:测绘(审题DP) 经过2000+个小时的努力终于把这道题做出来的蒟蒻通 分析: 这道题我一直没做出来的原因就是因为我太蒟了题面看不懂,题面读懂了,其实不是特别难. 题目翻译: ...
随机推荐
- Docker在windows7上的安装
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
- 盲刷bios
本帖最后由 evayh 于 2011-12-17 13:09 编辑 先看看是否是insyde的bios,如果是的话,可以救回来 insyde BIOS在损坏时,会自动进入CRISIS MODE试图刷回 ...
- 转:PHPStorm+XDebug进行调试图文教程
原文:PHPStorm+XDebug进行调试图文教程 一.XDebug安装配置 (1)下载XDebug下载地址:http://www.xdebug.org/必须下载跟机器上安装的php匹配的版本才行. ...
- JQuery 节点监听
DOMSubtreeModified: 在DOM结构发生任何变化的时候.这个事件在其他事件触发后都会触发: $(".attr_box").bind("DOMSubtree ...
- Web Api通过文件流下载文件到本地实例
最近项目里面需要和C++的客户端互动,其中一个接口就是需要提供文件下载的接口,保证C++项目调用这个接口的时候能够正常下载文件到本地.参考了一下网上的代码,其原理就是读取服务器上指定路径的文件流,并将 ...
- VMWare12虚拟机实现主客机间的文件拖拽(复制粘贴)和文件夹共享
版本: 主机:Windows 7 64位旗舰版 虚拟机: VMWare 12 + Windows 7 64位旗舰版 VMWare pro 12 + Ubuntu16.04LTS 64位 注:由于VMW ...
- FTP上传下载类
public class FtpOperation { public static void UploadFile(FileInfo fileinfo, string targetDir, strin ...
- 编写脚本-SQL SERVER 用户权限分配
USE [TXM];GOCREATE USER [WIN-JO\Administrator]FOR LOGIN [WIN-JO\Administrator];GOEXEC sp_addrole ...
- Beyond Compare 4 使用方法
一 : 二 : 三 :
- 中断标志位 IRQF_ONESHOT
one shot本身的意思的只有一次的,结合到中断这个场景,则表示中断是一次性触发的,不能嵌套.对于primary handler,当然是不会嵌套,但是对于threaded interrupt han ...