From e0311360f5bff07f952893eab44274ac89d3ac08 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=BF=83=E6=97=B7=E7=A5=9E=E6=80=A1?= Date: Thu, 25 Oct 2018 08:13:49 +0800 Subject: [PATCH] Update tree.md --- docs/dp/tree.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/dp/tree.md b/docs/dp/tree.md index 769ab7ff..241f8efa 100644 --- a/docs/dp/tree.md +++ b/docs/dp/tree.md @@ -1,4 +1,4 @@ -在学习本章前请确认你已经学习了[ 动态规划部分简介 ](/dp) +在学习本章前请确认你已经学习了[动态规划部分简介](/dp) 树形 DP,即在树上进行的 DP。由于树固有的递归性质,树形 DP 一般都是递归进行的。 @@ -6,15 +6,15 @@ 以下面这道题为例,介绍一下树形 DP 的一般过程。 -??? note " 例题 [ luogu P1352 没有上司的舞会 ](https://www.luogu.org/problemnew/show/P1352) - 某大学有 $n$ 个职员,编号为 $1~N$ 。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数 $a_i$,但是呢,如果某个职员的上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。 +??? note "例题 [luogu P1352 没有上司的舞会](https://www.luogu.org/problemnew/show/P1352)" + 某大学有 $n$ 个职员,编号为 $1\sim N$ 。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数 $a_i$,但是呢,如果某个职员的上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。 -我们可以定义 $f[i][0/1]$ 代表以 $i$ 为根的子树的最优解(第二维的值为 0 代表 $i$ 不参加舞会的情况,1 代表 $i$ 参加舞会的情况)。 +我们可以定义 $f(i,0/1)$ 代表以 $i$ 为根的子树的最优解(第二维的值为 0 代表 $i$ 不参加舞会的情况,1 代表 $i$ 参加舞会的情况)。 -显然,我们可以推出下面两个状态转移方程(其中下面的 x 都是 i 的儿子): +显然,我们可以推出下面两个状态转移方程(其中下面的 $x$ 都是 $i$ 的儿子): -- $f[i][0] = \sum{\max (f[x][1],f[x][0])}$ (上司不参加舞会时,下属可以参加,也可以不参加) -- $f[i][1] = \sum{f[x][0]} + a_i$ (上司参加舞会时,下属都不会参加) +- $f(i,0) = \sum\max \{f(x,1),f(x,0)\}$ (上司不参加舞会时,下属可以参加,也可以不参加) +- $f(i,1) = \sum{f(x,0)} + a_i$ (上司参加舞会时,下属都不会参加) 我们可以通过 DFS,在返回上一层时更新当前节点的最优解。 @@ -65,8 +65,8 @@ int main() { ## 习题 -[ HDU 2196 Computer ](http://acm.hdu.edu.cn/showproblem.php?pid=2196) +[HDU 2196 Computer](http://acm.hdu.edu.cn/showproblem.php?pid=2196) -[ poj 1463 Strategic game ](http://poj.org/problem?id=1463) +[POJ 1463 Strategic game](http://poj.org/problem?id=1463) -[ poj 3585 Accumulation Degree ](http://poj.org/problem?id=3585) +[POJ 3585 Accumulation Degree](http://poj.org/problem?id=3585) -- 2.11.0