
树形DP
逐梦起航-带梦飞翔
为了更加长远的快乐!
展开
-
树的直径—求法
先给出树的直径的定义:一棵树中任意两点间的路径叫“链”,最长的链称作树的直径。树的直径并没有明确指明是一个距离还是一段路径,其实两者都可以用“树的直径”来称呼。具体求树的直径我们有两种方法,一种用DP,一种用dfs,它们的时间复杂度都是O(N)。 树形DP法设数组D[i]表示从节点i出发往子树方向走的最长距离,F[i]表示以节点i为转折点的最长链。显然ANS=max{F[i]}。仔...原创 2018-10-03 21:12:54 · 1426 阅读 · 0 评论 -
洛谷3523 [POI2011]DYN-Dynamite(二分)(贪心)(树形DP)
题意在一棵形如树的图上有一些炸药点,在树上任意选择一些点为点火点,使得最晚爆炸的炸药最早(即炸药点到点火点的最大距离最小)。特性对于一个时间,显然刚好在这个时间到头时爆炸是最优的。题解二分+贪心+树形DP题意转化一下,用一些点,扩张最小的长度覆盖最小的关键点。看到最大值最小首先想到二分(其原因我是今天才明白,最大值可以无限变大,一定有一个最小点,小于这个点的解不合法,大于这...原创 2018-10-27 07:06:11 · 326 阅读 · 0 评论 -
树上方案数统计—总结
例题1题意(洛谷4084 [USACO17DEC]Barn Painting)给定一颗N个节点组成的树,3种颜色,其中K个节点已染色,要求任意两相邻节点颜色不同,求合法染色方案数。题解树形计数类DP简单粗暴的,设f[x][t]表示将x染色为t时,x这棵子树的方案数。那么就有,初始化f[x][t]=1,特别的,当x已被染色为t时,f[x][k]=0(k!=t)。答案为...原创 2018-10-27 09:06:04 · 624 阅读 · 0 评论