动态规划——树形
文章平均质量分 81
XDU_Skyline
Everything is over, everything is just beginning.
展开
-
例题9-14 完美的服务 UVa1218
1.题目描述:点击打开链接2.解题思路:本题的分析思路类似于上一道例题。还是利用树状dp解决。根据题意,可以定义如下的三种状态值:(1)d(u,0)表示u不是服务器,但u的父亲是服务器(暗含u的所有子结点都不是服务器);(2)d(u,1)表示u是服务器,子结点可以是也可以不是;(3)d(u,2)表示u,u的父亲都不是服务器(暗含u的其中一个子结点是服务器);定义了这样的三个状态之后,状原创 2015-02-15 18:37:32 · 1299 阅读 · 0 评论 -
例题9-13 Hali-Bula的晚会 UVa1220
1.题目描述:点击打开链接2.解题思路:本题几乎就是树的最大独立集问题,只不过多了一个判断解的唯一性的要求。针对这种情况,可以做如下定义:(1)d(u,0),f(u,0)分别表示以u为根的子树中,不选u点的最大人数和方案的唯一性(f=1表示唯一,f=0表示不唯一);(2)d(u,1),f(u,1)分别表示以u为根的子树中,选u点的最大人数和方案的唯一性(f=1表示唯一,f=0表示不唯一原创 2015-02-15 12:28:39 · 978 阅读 · 0 评论 -
HDU 4118 Holiday's Accommodation (2011年成都赛区现场赛H题)
1.题目描述:点击打开链接2.解题思路:本题利用树形dp求解。本题要求每个结点上的人都交换位置后,使得走过的总路程最大,这就意味着每条边经过的次数都尽可能的多。因此我们不妨从边的角度入手来考虑,怎么才能让第i条边通过的次数最多呢?可以发现,如果这条边右侧的结点数有size个,右边有n-size个,那么最大的通过次数就是2*e[i].w*min(size,n-size),而计算size正是树形d原创 2015-08-26 09:31:59 · 636 阅读 · 0 评论 -
LA 2038 Strategic game
1.题目描述:点击打开链接2.解题思路:本题属于树形dp问题,根据题意,可以用(u,flag)来描述一种状态,其中flag=1表示结点u放soldier,否则表示不放。用dp(u,flag)表示结点u处放的最少的soldier数目。那么不难写出如下的状态转移方程:dp(u,1)=sum{min{dp(v,0)+1,dp(v,1)+1},v=son(u)};dp(u,0)=sum{min原创 2015-10-08 16:19:31 · 449 阅读 · 0 评论 -
LA4015 Caves
1.题目描述:点击打开链接2.解题思路:本题属于树形dp问题,根据题意,我们会发现机器人在走的时候,需要在出发点,经过的点数以及是否返回到出发点这三条确定时候,才能完整的计算出走过的长度。因此,不妨令(u,k,flag)来表示从u出发,遍历了k个点(包括u自身),是否返回这样一种状态。这样,在遍历完u的子树的时候,可以用下面的方程来更新u:dp(u,i,1)=min{dp(u,j,1)+d原创 2015-10-08 19:37:00 · 729 阅读 · 0 评论 -
HDU 2196 Computer
1.题目描述:点击打开链接2.解题思路:本题是经典的树形dp问题:求一棵树上每个结点的最远点的距离。这个问题可以用如下的方法解决:首先随意选择一个点作为根结点进行dfs,求出所有点到根结点的最远距离的那个结点,假设是p,接下来以p树根,再进行一次dfs,求出最远的点q,那么p-q就是树上的直径。并且可以证明,所有点的最远点要么是p,要么q。详细的证明可以参考如下链接,这样整个问题就可以在O(N原创 2015-10-09 23:51:15 · 284 阅读 · 0 评论