树形 DP
ixRic
ixRic
展开
-
[SHOI 2015] 聚变反应炉(树形背包 + 树形 DP) | 错题本
文章目录题目分析代码题目[SHOI 2015] 聚变反应炉分析对于树上一个点操作后对相邻节点产生影响的题目,DP 状态的定义需要考虑父节点的影响。定义 DP 状态 dp[u][0/1]dp[u][0/1]dp[u][0/1] 表示 uuu 的父亲节点 不给 uuu 传输能量 /// 给 uuu 传输能量 时激发 uuu 的子树(包括 uuu)的最少代价。这样定义状态能知道父亲给自己传输的能量,再枚举子节点传输给自己的能量就可以转移了,然后涉及到“使子节点传输给自己的能量达到某一状态值的最小代价”,原创 2020-11-26 08:59:59 · 226 阅读 · 0 评论 -
[CodeForces 1394D] Boboniu and Jianghu(树形 DP + 贪心) | 错题本
文章目录题目分析代码题目[CodeForces 1394D] Boboniu and Jianghu分析考虑树形 DP:对于当前点 uuu 和它的子节点 vvv,若 hu≠hvh_u \neq h_vhu=hv,那么这条边的方向就确定;若 hu=hvh_u = h_vhu=hv,我们需要给这条边定向。假设最终定完 uuu 所有邻接边的向后 uuu 的入度为 xxx,出度为 yyy,那么 uuu 对答案的贡献就是 tu×max{x,y}t_u \times \max\{x, y\}tu原创 2020-09-18 10:57:24 · 176 阅读 · 0 评论 -
[LOCAL] 画画图(结论 + DP + 常数分析) | 错题本
文章目录题目分析代码题目题目描述小胡同学是一个热爱画画的好(xiao)孩(shen)子(tong)。小胡同学画了一棵树,小胡同学的树是这么画的:在纸上画 nnn 个点,从 111 到 nnn 标号。随机选两个点 x,yx, yx,y,若 xxx 和 yyy 已经连通则继续随机,直到 x,yx, yx,y 不连通为止。在 x,yx, yx,y 之间连一条边。若 nnn 个点已经连通则停止,否则返回 222。小胡同学画完这棵树之后觉得似乎少了点什么,于是他给每条边都加了一个权值,这样他就得原创 2020-08-21 11:56:30 · 343 阅读 · 0 评论 -
[CodeForces 494C] Helping People(树形 DP) | 错题本
文章目录题目分析错因代码题目[CodeForces494C] Helping People分析区间不相交意味着各个区间之间形成了一个树形结构。设原数组最大值为 mmm,我们只需要保留 [m,m+q][m, m + q][m,m+q] 之间的数, 又 q∈[1,5000]q \in [1, 5000]q∈[1,5000] 意味着我们可以将“最大值”最为下标。于是定义状态 dp[i][j]dp[i][j]dp[i][j] 表示 iii 子树中最大值与 mmm 的差小于等于 jjj 的 概率,因为最大值与原创 2020-08-21 11:35:12 · 162 阅读 · 0 评论 -
[CodeForces 1119F] Niyaz and Small Degrees(堆优化多次 DP) | 错题本
文章目录题目分析代码题目[CodeForces 1119F] Niyaz and Small Degrees分析先考虑对于一个给定的 xxx DP:dp[u][0/1]dp[u][0 / 1]dp[u][0/1] 表示 uuu 结点的度数为 (x−1)/x(x - 1) / x(x−1)/x,且其子树合法的删边代价。dp[u][0]dp[u][0]dp[u][0] 就意味着 uuu 与其父亲的边保留,dp[u][1]dp[u][1]dp[u][1] 意味着 uuu 与其父亲的边删除。设 vvv 是原创 2020-08-04 17:07:53 · 265 阅读 · 1 评论 -
[HAOI 2015] 树上染色(树上背包) | 错题本
文章目录题目分析错因题目[HAOI 2015] 树上染色(树上背包)分析考虑 dp[u][i]dp[u][i]dp[u][i] 表示 uuu 子树中有 iii 个黑点时,对答案的贡献,转移过程中计算边 (u,v)(u, v)(u,v) 的贡献即可。注意贡献有白色贡献和黑色贡献。错因...原创 2020-07-29 19:40:51 · 167 阅读 · 0 评论 -
[CodeForces 1101D] GCD Counting(树形 DP) | 错题本
文章目录题目分析错因代码题目[CodeForces 1101D] GCD Counting分析将 aua_uau 分解质因数得到不同的质因子 p[u]1,p[u]2,⋯ ,p[u]tp[u]_1, p[u]_2, \cdots, p[u]_tp[u]1,p[u]2,⋯,p[u]t。dp[u][i]dp[u][i]dp[u][i] 表示从 uuu 向下只经过含因子 pip_ipi 的数能延伸的最长距离,转移的时候暴力枚举 x,y (p[u]x=p[v]y)x, y\ (p[u]_x原创 2020-07-29 15:51:21 · 196 阅读 · 0 评论 -
[CTSC1997] 选课(树上背包) | 错题本
文章目录题目分析代码题目[CTSC1997] 选课(树形背包)分析发现自己好像之前没做过树形背包其实是树形 DP 的基础上套一个对每个结点的背包。设 dp[u][i][j]dp[u][i][j]dp[u][i][j] 表示从结点 uuu 的前 iii 个儿子中选 jjj 门课的最大学分,设 cvc_vcv为 vvv 的儿子个数,可以得到转移 dp[u][i][j]=max1≤k<jdp[u][i−1][j−k]+dp[v][cv][k]dp[u][i][j] = \max_{1 \leq原创 2020-07-29 14:55:01 · 379 阅读 · 1 评论 -
COCI2016/2017 Round1T4 Mag
文章目录题目分析代码题目分析既然是乘积,容易想到所选路径上的值不可能很大,所以一般(特殊情况等会讨论)有以下几个结论:最优路径上不可能有点权超过222的结点证明:设当前已找到的乘积为xxx,结点个数为nnn,新加入的点权为y(y>2)y(y>2)y(y>2),则新的路权为xyn+1\dfrac{xy}{n+1}n+1xy,由于y>...原创 2019-07-01 11:20:01 · 352 阅读 · 0 评论 -
【树形DP】树的重心
题目题目描述输入输出样例输入样例输出分析代码题目树的重心 时间限制: 1 Sec 内存限制: 128 MB题目描述给出一个连通的无向图,它有N 个顶点和 N-1 条边 ,这显然是一棵树。现在需要找到这棵树的重心。 为了定义树的重心,需要给树的每一个顶点赋上一个权值。考虑顶点k。如果从图中删除k号顶点(连带的边也一起被删除),剩下的图将只有 N...原创 2018-02-08 16:23:56 · 635 阅读 · 0 评论