![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树形DP
KetchupZ
退役acmer一名,CCPC银+ICPC铜(欢迎大家访问我的Github地址:https://github.com/LieLieLiekey)
展开
-
HDU - 1561树形依赖背包
HDU - 1561树形依赖背包 题目: 传送门 思路见代码注释. 代码: /* 对于每个节点u,要么有唯一的父亲fa,要么没有父亲,自形一颗树 所以按照题目给的要求该图是一个森林. 我们考虑将森林中的每一颗树的根连接到超级根root.那么形成的图是一个以超级根 为根的树,题目也转化为从该树上取m+1个节点,使得价值最大,取u节点必须先取父亲节点. 这就是树形依赖背包的问题了 */ #includ...原创 2019-08-27 21:54:44 · 169 阅读 · 0 评论 -
K - Strategic game POJ - 1463(简单树形DP)
K - Strategic game POJ - 1463(简单树形DP) 题目:传送门 思路见注释 代码 : /* 树的最小顶点覆盖 dp[u][0]代表当前以u为根的子树,u不选所需的最小花费 dp[u][1]代表当前以u为根的子树,u选的最小所需花费 dp[u][1]=1+sum(min(dp[son][0],dp[son][1])) dp[u][0]=sum(dp[son][1]) */ ...原创 2019-08-27 22:00:44 · 141 阅读 · 0 评论 -
J - Anniversary party POJ - 2342(简单树形DP)
J - Anniversary party POJ - 2342(简单树形DP) 题目:传送门 思路见注释 代码 : /* 简单树形dp. 考虑dp[node][0/1],代表以node在选与不选的情况下,以u为根的子树的最大价值 dp[node][0]=sum(max(dp[v][0],dp[v][1])) dp[node][1]=sum(dp[v][0]) */ #include<ios...原创 2019-08-27 22:02:03 · 120 阅读 · 0 评论 -
Shenyang 2019 Fish eating fruit (树形dp+换根)
Shenyang 2019 Fish eating fruit (树形dp+换根) 题目链接:传送门 题意: 给一个有n个点的树,求所有两点之间的路径权值和,且路径权值和分三类:模3为0,模3为1,模3为2的路径。对于每种路径,输出其种类路径的和。 思路 : 不难想到树形dp+换根可以解决这个问题。 我们首先把节点 0 定为根进行第一遍dfs,对于u节点,记录当前以u为根子树上的节...原创 2019-09-15 10:30:39 · 154 阅读 · 0 评论 -
L - Computer(HDU2196 ,树形DP,换根法)
L - Computer(HDU2196 ,树形DP,换根法) 题目 :传送门 思路见注释 代码 : * 换根法dp: 先把无根树化为有根树 第一遍dfs,对于顶点u,求u的子树到u的最大和次大距离 第二遍dfs,将树化为顶点u为根,u的子树到u的最大距离和次大距离 对于u的最大距离就是res[u],而u的次大距离是用来儿子换根的时候进行状态转移 */ #include<bits/s...原创 2019-08-27 21:59:09 · 214 阅读 · 0 评论