树形dp
Anxdada
多读书多看报, 少吃零食多睡觉
展开
-
HDU - 1502 Anniversary party 【树形dp入门】
传送门 //一棵树, 有点权, 儿子和父亲不能同时选, 问可以得到的最大值是多少. //这就是树形dp入门题. 所以方程还是比较好写的. dp[x][0] 代表不选这个点, dp[x][1]代表选这个点. dp[i][1] += dp[j][0]; (j 是 i 的儿子) dp[i][0] += max(dp[j][0], dp[j][1]); (同样的)所以可以开始敲啦,注意处理下细节就行原创 2017-10-07 19:45:59 · 398 阅读 · 0 评论 -
HDU - 2196 Computer 【树形dp必做题?】
传送门 //就是输出每个点的最远距离. 其实我来写首先会有树的直径, 那么就变得很简单了, 但是都说树形dp必做, 那么就用树形dp来好一点. dp[maxn][3]; dp[u][0] 代表u的子树下距离u最远的距离是多少. dp[u][1]代表u的子树下距离u 次 远的距离是多少. dp[u][2] 代表经过u的父亲最远可以到达的距离. 所以转移方程方程就是:原创 2017-10-07 20:00:41 · 490 阅读 · 0 评论 -
POJ - 2152 Fire 【树形dp + 暴力 + 思维】
传送门 //题意: 现在有些城市着火了, 需要建立一定数量的消防站, 每一个点建站有一个不同的花费, 有边权, 如果一个城市没有建立消防站 , 那么至少离他一个limit的距离比较有个消防站, 不同的点limit也不同, 问满足条件的最小花费是多少? //思路: 我们并不能通过一次遍历而得到我们需要的答案. 我们可以考虑暴力判断每一个点是否可以作为当前点的依附点(即在这个点建立消防站), 那么我原创 2017-10-18 15:48:01 · 543 阅读 · 0 评论 -
CF 219D Choosing Capital for Treeland 【树形dp + 思维】
传送门 //题意:n个点m条边, 边是单向的, 选其中一个点使得这个点都可以到其余剩下的点, 如果走不通就将这条边反转方向, 问反转边的方向数量最少的点的编号,如果有多种可能,按升序输出所有可能. //思路: 将边的方向进行权值赋值, 正向为1, 反向为0, 那么问题就转化成了选择某个点, 使得从这个点出发到其他点的权值和最大. (想到将边的方向进行权值化就已经成功一大半了), 然后考虑一个点,原创 2017-10-10 11:26:17 · 492 阅读 · 0 评论 -
HDU - 3586 Information Disturbing 【二分 + 树形dp】
传送门 //题意: 1是总部, 要切断所有叶结点和总部的联系, 每天变有个花费, 要保证总花费在小于m的情况下的最小的limit(每条边的花费要小于limit). //思路: 这个前提看似非常矛盾, 因为加入砍去两条边权为5的比砍去一条边长为6的limit的要更小一点, 但是有可能总和又要超过m,所以要综合考虑到两部分. 那么采用二分答案, 然后check当前这个答案, 如果合适就减小当前的答案原创 2017-10-12 22:27:15 · 383 阅读 · 0 评论 -
UVALive 6436 The Busiest City 【思维 + 树形dp想法】
传送门 // 题意: 给定一颗树, 定义一个点的繁荣度为经过这个点的路径的条数, 求这棵树的最大繁荣度为多少. 注意叶子结点路径数为0.// 思路: 我们首先要知到一个节点的繁荣度怎么算, 它 = 该节点的所有子树之间(size大小)两两相乘再相加的答案, 不要因为一次dfs而算不出其他子树的大小而困扰, 那是因为你没想到这是一棵树, 所以我们直接用总节点数减去该子树的大小就是剩余没算的节点个数原创 2018-01-13 19:19:29 · 364 阅读 · 0 评论 -
HDU 1561 The more, The Better 【树形dp + 依赖性01背包 】这类型入门题.
传送门 // 题意: 这里有n座城堡, 每座城堡有一个价值并且他们之间有一定的联系, 即如果你要攻守b城堡, 它又被a城堡所保护, 那么你必须先攻守掉a城堡, 问最多攻破m座城堡的条件下, 能获得的最大价值是多少.// 思路: 这是一个背包九讲中所提到到的依赖性背包, 即如果你要选择某件物品, 则必须先选择其他物品, 因为每座城堡就是攻与不攻的区别所以是个依赖性01背包, 但是又是在图中, ...原创 2018-03-10 22:16:15 · 264 阅读 · 0 评论