随笔分类 - ACM--DP--树形DP
摘要:皇宫看守(树形dp) 题解: 不同于战略游戏那道题要求每边有人看守,即只能靠自己或者靠儿子,本题要求每个点有人看守,即对于点root可以靠自己靠儿子或靠父亲 设dp[root][0/1/2]表示0靠自己1靠爸爸2靠儿子 root靠自己可以从儿子的三种状态转移,但是要加上自己设看守的费用 root靠爸
阅读全文
摘要:树的重心:对于一棵\(n\)个结点的无根树,找到一个点,使得把树变成以该点为根的有根树树时,最大子树的结点数最小。 删去重心后,生成的多棵树尽可能平衡。 性质: 性质 1 :树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个重心,他们的距离和一样。 性质 2 :把两棵树通过某一点相连得
阅读全文
摘要:蓝魔法师 分析:sz保存包括自身的所有子孙总节点数(为了求连通块的大小做准备) dp[i][j]表示只考虑根为i的子树,包含节点i的联通块大小为j的方案个数 dp[i][0]表示dp[i][1]+...+dp[i][k] 一棵子树根节点为u的连通块(包括u)对于它的一个子节点v,当u访问到v时,假设
阅读全文
摘要:选点 分析:对于一颗树选出得点的权值的关系为:根节点 < 右子树 < 左子树。所以我们可以按照根节点、右子树、左子树进行 dfs 遍历,然后按照这个 dfs 序求 LIS 即为答案。用二分优化求LIS AC_Code 1 #include <iostream> 2 #include <bits/st
阅读全文
摘要:F. Tree with Maximum Cost 学习博客:https://blog.csdn.net/LJD201724114126/article/details/85240762?utm_source=app 题解:换根 我们先设sum[u] 等于 以u为根的子树的∑ai (注意没有*距离)
阅读全文
摘要:题目链接:here 题目分析: 放置哨兵无非两种情况,放或不放,我们可以用dp[i][1]来表示第i个结点放置哨兵,dp[i][0]来表示第i个结点不放置哨兵,我们可以从上往下,从左往右来遍历树,所以这就用到了树形DP的知识,我们很容易知道,如果父亲结点没放哨兵,那么子结点肯定要放置哨兵,如果父亲放
阅读全文
摘要:题目链接:https://cn.vjudge.net/contest/317407#problem/A 题目理解: 题意为有n个人要开一个PARTY,编号1到n,每个人都有一个欢乐值,并且每个人都有一个直接上司,为了让气氛更好,要求在这n个人中选一些人去参加PARTY,并且选出的这些人中任意两个人之
阅读全文