随笔分类 - 树形dp
摘要:题目链接:http://codeforces.com/contest/161/problem/D 题意:求所有距离为k的点对(u,v) 的数量 思路:dp[u][i] 代表以u为根的子树 距离为i 的数量, 主要是考虑如何不重复的计算 可以先把每一棵子树的先记录 用乘法,然后再把贡献放到u上,每次保
阅读全文
摘要:题目链接:https://codeforces.ml/problemset/problem/1083/A 题意:给定一棵树 每个节点和每条边都有权值,问如何选择一条路径使得 节点的权值-边权值最大, 并且在u-> v的过程中 权值-边权一定要≥0 思路:用树形dp dp[i] 为以i为根能走到的最远
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P2014 思路:第一种写法直接以0为根 转换成树上背包 dp[i][j] 代表以i为根 取j个子节点的最大值 注意的是 如果要拿子树上的点,就必须拿到该子树根 所以dp[i][j] 是不取 i 这个根的 第二种写法是 dp
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P2015 思路:树上背包问题 dp[i][j]为 以i为根 留j根树枝的最大值, 转移的时候枚举当前拿多少根树枝 以及子树拿多少根树枝即可 i过大的状态也不需要管 因为不会用到 没有影响 注意的是 当前的结点连着子树结点的
阅读全文

浙公网安备 33010602011771号