
树形dp
October's very own
? ? ?
展开
-
树上背包练习2
Luogu P1272 重建道路P1272 重建道路Solution令dp[i][j]为以i为根的子树中保留j个节点,需要断开的最小边数,且当前子树不与父节点相连。对于每个点的初始化dp[i][1],要断开与它相连的所有边,即它的度。那么转移方程即为:dp[u][j] = min(dp[u][j - k] + dp[v][k] - 2,dp[u][j])方程中-2的原因是dp[v][k]和dp[u][j - k]分别把u->v的边断掉一次,现在要连接回来。答案即为max(dp[i]原创 2020-07-14 18:16:36 · 191 阅读 · 0 评论 -
树上背包练习
P2014 [CTSC1997]选课P2014 [CTSC1997]选课Solution树上背包模板题因为有多节课是没有先修课的,所以并不是只有一棵树,用一个0号点作为没有先修课的课程的先修课,这样就合并成了一棵树,只要选取m+1个点(必选0)即可。转移方程: dp[u][j] = max(dp[u][j - k] + dp[v][k],dp[u][j]);01背包,所以j要倒序枚举代码#include <bits/stdc++.h>using namespace std;c原创 2020-07-12 23:38:13 · 222 阅读 · 0 评论 -
洛谷P3177 [HAOI2015]树上染色 (树上背包)
链接 : [HAOI2015]树上染色题目描述有一棵点数为 n 的树,树边有边权。给你一个在 0∼n 之内的正整数 k ,你要在这棵树中选择 k 个点,将其染成黑色,并将其他 的 n−k 个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间的距离的和的受益。问受益最大值是多少。输入格式第一行包含两个整数 n,k。第二到 n 行每行三个正整数 fr,to,dis,表示该...原创 2020-04-29 10:07:01 · 328 阅读 · 0 评论 -
Codeforces Round #627 (Div. 3) F - Maximum White Subtree (树形dp)
**F - Maximum White Subtree **题目描述You are given a tree consisting of n vertices. A tree is a connected undirected graph with n−1 edges. Each vertex v of this tree has a color assigned to it (av=1 if...原创 2020-03-15 21:59:09 · 196 阅读 · 0 评论 -
P1352 没有上司的舞会 (树形dp)
链接:luogu1352 没有上司的舞会题目描述某大学有 n个职员,编号为 1…n。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数 ri,但是呢,如果某个职员的直接上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最...原创 2020-03-15 13:37:31 · 355 阅读 · 0 评论 -
洛谷P2015 二叉苹果树 (树形dp)
链接:洛谷2015 二叉苹果树题目描述有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点)这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1。我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有4个树枝的树2 5 \ / 3 4 \ / 1现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹...原创 2020-03-15 13:10:07 · 303 阅读 · 1 评论