首页 > TAG信息列表 > P3177
P3177 树上染色做题记录
树形 dp 好题。 做这题的思想历程: 定义 \(dp_{i,j}\) 表示以 \(i\) 为根的子树中,选择了 \(j\) 个节点的答案。感觉还要带上一维状态就是所有黑点距离 \(i\) 的距离,这违反了做题思路中间的简洁性的原则。于是我们 查看题解。 经过不明方法之后,我们想到了定义 \(dp_{i,j}\) 对于答案2021.07.17 P3177 树上染色(树形DP)
2021.07.17 P3177 树上染色(树形DP) [P3177 HAOI2015]树上染色 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.dp思想是需要什么,维护什么。 2.通过具体的状态推出未知状态的解法。 题意: 一棵有n个点的树,将其中k个点染为黑色,其余点为白色,求任意一对白白两点之间的距离和与任树形背包复杂度+P3177 [HAOI2015]树上染色
惊奇的发现躺在任务计划里几个月的“\(P3177\)树上染色”变成蓝题了,既然前几天清北学堂提到这题了,那就看一眼。(众所周知,洛谷任务计划是个栈) 本人十分不擅长\(DP\),尤其像什么树形背包题,尤其是为啥看上去 \(n^3\) 的复杂度都说是 \(n^2\) 的,让我十分害怕,因为别人说的经典句子什么"两洛谷P3177树上染色
题意: 给n,K,n个点的树,K个点是黑色的,n-k点是白色的 给n-1条u,v,w,收益值是黑点两两距离之和,和白点两两距离之和的总值 求最大的收益值 思路: 因为是树形的,所以想到了求dp,dp[u][i] 求u为根的选有多少i个黑点的收益值,然后卡壳 翻了题解,发现dp[u][i] 求得是以u为根的 i 个黑点的贡献值,就洛谷P3177 树上染色
题目 一道非常好的树形DP。 状态:\(dp[u][n]\)为u的子树选n个黑点所能得到的收益最大值。 则最终的结果就是\(dp[root][k],\)\(root\)可以为任何值,为了方便,使\(root=1\) 然后考虑怎么状态转移,状态转移一般要从方程和边界入手,考虑用背包的思想,得到方程: \[ dp[now][j]=max(dp[now][j]p3177 [HAOI2015]树上染色
分析 dp[x][i]表示以x为根的子树有i个黑点的方案数 我们发现每次转移要枚举这个点的子树大小和儿子的子树大小 看似复杂度O(n^3) 但是我们可以把循环转化为枚举x子树内的点再枚举它儿子的子树内的点 发现对于一个点它作为儿子子树的点枚举时最多只会和一个点同时枚举到一次 所以总