摘要: POJ1947题解总共有n个结点的树,最少删去几条边,变成含有m个结点的子树。 dp[i][j]表示以i为根,含j个结点的树,最少需要删去的边数。 状态转移: dp[u][i] = min(dp[u][i],dp... 阅读全文
posted @ 2019-04-14 22:46 月光下の魔术师 阅读(7) 评论(0) 推荐(0)
摘要: HDU2196题解 在一棵树上,求每个结点能到达的最远距离。 设结点到子树的最大距离为深度。那么结点能到达的最远距离可能为深度(1),也可能为经过先到父结点再到兄弟结点的子树(2),或者直接一直往上走到另一边(3... 阅读全文
posted @ 2019-04-14 22:01 月光下の魔术师 阅读(5) 评论(0) 推荐(0)
摘要: HDU6446题解任何一种排列在树上都可以实现。那么我么固定两个结点i和j,记dis(i,j)为i和j的最短距离。那么从i和j放置数,有2*(n-1)种情况。剩下的n-2个点有(n-2)!种情况。所以一共有2*(... 阅读全文
posted @ 2019-04-14 21:26 月光下の魔术师 阅读(10) 评论(0) 推荐(0)
摘要: POJ3659题意:最小点覆盖所有的点。题解首先要明确最小支配集和最小点覆盖的区别。 最小点覆盖是选取最少的点,使所有的边都与集合的点相连。最小点覆盖 = 二分图最大匹配 最小支配集是选取最少的点,使所有的点都... 阅读全文
posted @ 2019-04-14 21:09 月光下の魔术师 阅读(48) 评论(0) 推荐(0)
摘要: POJ3585题解选择一个点,使它到所有端点的流量和最大。 一棵树,我们可求每个结点到子树的端点的最大流量和。DFS一遍,自低先上。设g[u]表示到u结点到子树端点的最大流量和,那么g[u] += min(g[v... 阅读全文
posted @ 2019-04-14 20:38 月光下の魔术师 阅读(10) 评论(0) 推荐(0)
摘要: 很基础的一类题目,要用到01背包问题的思想。ZOJ3201题解含有k个结点的权值和最大的子树。 dp[i][j]表示以i为根的,含有j个结点的最大权值 dp[i][j] = max(dp[i][j],dp[i][... 阅读全文
posted @ 2019-04-14 19:44 月光下の魔术师 阅读(12) 评论(0) 推荐(0)
摘要: luogu1064题解有依赖的背包关系,实际上很好理解。我们只要考虑主件。 有5总状态要考虑。不选主件 只选主件 选主件和附件1 选主件和附件2 选主件和附件1和附件2其它都和01背包一样,只不过现在是多件物品。... 阅读全文
posted @ 2019-04-14 19:17 月光下の魔术师 阅读(10) 评论(0) 推荐(0)