题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011题目大意:树上取点,先取父亲,再取儿子。每个点,权为w,花费为cost,给定m消费总额,求最大权和。解题思路:树形背包模板题。首先建一个无向图。每个点的cost=(bug[root]+19)/20,...
分类:
其他好文 时间:
2014-10-17 21:44:02
阅读次数:
181
题目链接:https://vijos.org/p/1180题目大意:选课。只有根课选了才能选子课,给定选课数m, 问最大学分多少。解题思路:树形背包。cost=1。且有个虚根0,取这个虚根也要cost,所以最后的结果是dp[0][m+1]。本题是cost=1的特殊背包问题,在两个for循环上有一个优...
分类:
其他好文 时间:
2014-10-17 21:43:54
阅读次数:
181
有的堡垒攻克需要攻克另一个堡垒,形成一个森林,最多攻克m个堡垒,求获得宝物的最大价值。1,以0做根将森林形成树;2,用背包计算当前节点下需要攻克k个堡垒能获得的宝物最大价值,但是注意同一个根节点的情况不能够先后放入背包,否则会有比如1节点选2个和选三个形成了选5个,也就是某些节点重复计算了。所以要在...
分类:
其他好文 时间:
2014-10-17 15:20:27
阅读次数:
122
题意:基环树最大独立集
思路:
像这种题就是朴素的树形dp非常容易的,我们用一些技巧转化为变体树。
直接套用仙人掌的动态规划做法:(基环树事实上也属于一种仙人掌)
首先利用tarjan算法,如果遇到自己与儿子之间的边为割边则按照树边处理。
Tarjan后看一下与自己相连的边,如果某个相邻点不是自己的儿子,并且入栈序比自己大,那么说明自己是环上的的最高点,此时我们对环上特别的进行d...
分类:
其他好文 时间:
2014-10-17 11:57:30
阅读次数:
371
2014牡丹江 现场赛 F zoj 3824 Fiber-optic Network
树形dp + 容斥原理...
分类:
Web程序 时间:
2014-10-17 10:13:27
阅读次数:
356
【题意】:给你一张无向图,无向图上每个点代表一个城市,有两个值Va,Vb,分别代表a,b占领该城市所需要消耗的时间,而且a或b去占领它们已经占领的城市的相领城市所需的花费为标准的一般。问最少需要花费多少钱。【知识点】:树形DP【题解】:dp[u][i][0]:代表以u为根的子树中没有一个点为颜色i绘...
分类:
其他好文 时间:
2014-10-16 23:01:43
阅读次数:
220
【题意】:给出一张无向图,图中每个点着有颜色(1或者0),问有多少种不同的切割方法,使切割后每一块区域恰有一个黑点。【知识点】:树形DP【题解】:dp方程声明如下dp[u][0]:表示以跟节点为u的树,有多少种切割方法,使切成若干个区域后,u所在的区域为唯一一个没有黑点的区域。dp[u][1]:表示...
分类:
其他好文 时间:
2014-10-16 21:01:23
阅读次数:
260
poj2057某公司的上下级关系是一颗树状结构,每个人不能与他的上司同时出现,每个人有一个值,求最大值。这个题需要注意的是如果不保存状态会超时,这似乎也是大部分dp应该注意的事情啊#include#include#include#includeusing namespace std;const in...
分类:
其他好文 时间:
2014-10-16 20:55:53
阅读次数:
161
题目大意:给定一棵树,可以删掉k条边,求删掉后森林中所有树直径的最大值的最小值
最大值最小,典型的二分答案
此题我们二分树的直径,每次二分DFS一次,对于每个节点统计出所有子树删边后的dis,排序,贪心删掉最大的,直到最大的两个子树相加不会超过二分的答案为止
时间复杂度O(nlog^2n)
老子的二分居然写挂了。。。桑不起啊啊啊啊
#include
#include
#include
#...
分类:
其他好文 时间:
2014-10-13 23:22:27
阅读次数:
183
题目大意:给定一个n个点的无根树,要求找到一个根节点,使深度之和最大
令f[x]为以x为根的子树的深度之和
首先我们找到任意一个节点进行深搜,统计出每棵子树的大小,以及所有点的深度之和
然后再以该节点为根深搜一遍,此时状态从父节点转移至子节点,转移方程如下:
当我们将根节点从4节点变为5节点时,橙色部分每个点的深度+1,绿色部分每个点的深度-1
故得到状态转移方程:
f[x]=...
分类:
其他好文 时间:
2014-10-13 11:12:49
阅读次数:
248