动态规划—— 树形 DP
文章平均质量分 85
动态规划—— 树形 DP
c4Lnn
这个作者很懒,什么都没留下…
展开
-
2021年度训练联盟热身训练赛第一场 I. Full Depth Morning Show
链接https://ac.nowcoder.com/acm/contest/12606/I题意树上对于任意节点 uuu 求 ∑v=1n[du,v∗(tu+tv)]\sum_{v=1}^{n}{[d_{u,v}*(t_u+t_v)]}∑v=1n[du,v∗(tu+tv)]思路换根 DP记 resu=∑v=1n[du,v∗(tu+tv)]res_u=\sum_{v=1}^{n}{[d_{u,v}*(t_u+t_v)]}resu=∑v=1n[du,v∗(tu+tv)]resu=∑v原创 2021-03-10 21:00:10 · 139 阅读 · 0 评论 -
Codeforces Round #660 (Div. 2) C. Uncle Bogdan and Country Happiness
链接https://codeforces.com/contest/1388/problem/C题意nnn 个点的树形图,树根为 111,有 mmm 个人开始时在树根,心情都为好,各自回家pip_ipi 表示点 iii是 pip_ipi 个人的家,hih_ihi 表示经过点 iii 的人中心情好的人与心情不好的人的差每个人经过任意点都有可能变成心情不好,心情不好后无法改变心情问对于 i(1≤i≤n)i(1\le i\le n)i(1≤i≤n) 是否都能与hih_ihi 相等思路自下而上原创 2020-07-31 15:09:30 · 128 阅读 · 0 评论 -
POJ 3585. Accumulation Degree
链接http://poj.org/problem?id=3585题意无根树,已知每条边的容量,求从某个点出发流到所有点的最大流量和思路换根法先任选一点为根,记为 rootrootroot,执行一次树形 DP,求出以该点出发的最大流量:dp[i]=∑j∈son(i){min(w[i][j],dp[j])deg[j]>1w[i][j]deg[j]=1dp[i]=\sum \limits_{j \in son(i)}\begin{cases}min(w[i][j],dp[j]) &原创 2020-07-29 23:44:58 · 167 阅读 · 0 评论 -
牛客小白月赛 22 B. 树上子链
链接https://ac.nowcoder.com/acm/contest/4462/H题意带负权的点权树,求直径思路树形 DP首先任选一点为根,记为 rootrootroot 并记 dp[x]dp[x]dp[x] 为以 xxx 为起点与其朝下所有节点的路径最大值,进行一次树形 DP:dp[i]=max(maxj∈son(i)(dp[i],w[i]+dp[j]),w[i])dp[i]=\max(\max \limits_{j \in son(i)}(dp[i],w[i]+dp[j]),w[原创 2020-07-29 23:02:20 · 123 阅读 · 0 评论 -
POJ 1985. Cow Marathon
链接http://poj.org/problem?id=1985题意求边权为正的树形图的直径(树上最长链)思路一两次 BFS随便选一个点 ppp,BFS 求出离点 ppp 最远的点 qqq再从点 qqq 出发,BFS 求出离点 qqq 最远的点 rrrqqq 到 rrr 的距离就是树的直径代码#include<iostream>#include<cstring>#include<queue>using namespace std;const i原创 2020-07-29 21:51:33 · 127 阅读 · 0 评论 -
LibreOJ 10154. 选课
链接https://www.luogu.com.cn/problem/P2014题意给出 nnn 个带权节点,每个节点可能有父节点如果你要选择一个节点,那么你也必须选择它的父节点求选择 mmm 个节点能得到最大权值是多少思路背包类树形 DPnnn 个节点构成了一个森林结构,构造一个 000 节点让森铃转化以 000 节点为根的树将本题转化为分组背包模型:对于节点 xxx,总体积为 ttt,有 p=son(x)p=son(x)p=son(x) 组物品,每组物品有 t−1t-1t−1 个,第原创 2020-07-29 00:46:01 · 95 阅读 · 0 评论 -
洛谷 P1352. 没有上司的舞会
链接https://www.luogu.com.cn/problem/P1352题意一颗带点权的有根树,一个节点不能和其父节点一起选,选择一些节点,求这些节点权值和的最大值思路树形DP不选节点 iii:dp[i][0]=∑j∈son(i)max(dp[j][0],dp[j][1])dp[i][0]=\sum_{j \in son(i)}{max(dp[j][0],dp[j][1])}dp[i][0]=∑j∈son(i)max(dp[j][0],dp[j][1])选择节点 iii:dp[i][原创 2020-07-29 00:40:53 · 77 阅读 · 0 评论 -
牛客小白月赛11 F. Rinne Loves Edges
链接https://ac.nowcoder.com/acm/problem/22598题意边权树形图上删去一些边使所有的叶子节点都无法到达根节点,求删去边的权值和的最小值思路树形 DP让子树上的叶子节点和根节点不连通,显然只有两种情况:让叶子节点断开或让子树断开记 f[x]f[x]f[x] 为让 xxx 的子树上的叶子节点与根节点断开的最小代价,dist[x]dist[x]dist[x] 为 xxx 与其父亲节点之间的距离:f[x]=min(sum(f[y]),dist[x])(y∈son(原创 2020-07-28 23:32:27 · 131 阅读 · 0 评论 -
NC 13249. 黑白树
链接https://ac.nowcoder.com/acm/problem/13249题意有一颗树,开始时每个节点都是白色,每个节点 iii 可以将 iii 到根的链上(包括 iii 与根)所有与 iii 距离小于 k[i]k[i]k[i] 的点变黑,问最少操作几次能把整棵树变黑思路我们考虑每次操作的起始节点 xxx 与能够染色的最远的那个节点 yyy 之间的这些节点如何操作易得最优操作是找到 fa[x]fa[x]fa[x] 与 yyy 之间的节点能染色到最远的那个节点,这个节点就是下次操作的起原创 2020-07-28 15:27:32 · 166 阅读 · 0 评论 -
牛客挑战赛10 B. 小H和游戏
题目链接https://ac.nowcoder.com/acm/problem/15158题意树形图上,对某点进行轰炸,会波及到距离该点不超过 222 的点qqq 次轰炸,每次都要输出该点受损次数思路记 tot[x][0]tot[x][0]tot[x][0] 为 xxx 受损的次数,tot[x][1]tot[x][1]tot[x][1] 为 xxx 的孩子受损的次数,tot[x][2]tot[x][2]tot[x][2] 的孩子的孩子受损的次数假如轰炸 xxx:xxx 的父亲的父亲受损:to原创 2020-07-28 14:48:29 · 121 阅读 · 0 评论