P2015 二叉苹果树 题目链接 题意: 给一棵树,每个边都有权值,选择一些边删除,剩余m条边。问删除后所有变得权值和最大是多少? 树形dp 01背包问题; dp数组:dp[maxn][maxn] ; dp[x][i] 代表x为根节点的子树上有i条边的最大权值; 转移方程: num[x]为子树上目前有多少边,为什么说目前呢? 因为子节点还没遍历完, for (int j = min(m,num[x]); j > 0; j -- ) for (int k = 0; k <= min(j - 1,num[v]); k ++ ) dp[x][j] = max(dp[x][j],dp[v]...