随笔分类 - 动态规划 -- 树形dp
摘要:"题面" 题解 我们取两个点出来分析, 发现如果先手要赢他就必须从他当前的 $i$ 点走到 $j$ 点, 满足$a_i include include include const int N = 3005; using namespace std; int n, a[N], head[N], cnt
阅读全文
摘要:"题面" 题解 考虑树形 DP , 设 $f[i]$ 为 $i$ 节点为根的子树最大收益是多少, $h[i]$ 代表 $i$ 节点的最优方案是否唯一 转移的话拿个堆记一下子节点中 $ 0$ 的那些, 然后 $h$ 跟他们的与一下 若是剩下来的有 $f = 0$ 或是跟你选的是一样的, 这个点 $i$
阅读全文
摘要:"题面" 题解 转化问题, 即一个点从根节点往下走, 到达任意一个点时, 保证每一个与他直接连通的点都被覆盖了 没有必要向上走, 因为这只会留更多时间来修复 所以我们讨论只下不上的情况 二分一个 mid , 代表当前共有 mid 个人 设 $f[i]$ 为到了 $i$ 点, 且 $i$ 的儿子全部未
阅读全文
摘要:"题面" 题解 我们先考虑根的情况, 看是否能够最后停在根节点上 我们设两棵子树 $u$ , $v$ , 那么 $u$ 长出一个点, $v$ 再长出一个点, 这两个点的影响就抵消了对吧 那么我们就是看是否能子树内互相抵消最后使榕树之心停在根节点上 最大的一棵子树肯定是最难消的, 我们考虑用其他的子树
阅读全文
摘要:"题面" 题解 首先仙人掌上是不会有新边的 那么经过变换之后, 会连边的就一定是一片森林 我们对于其中一棵树单独讨论, 由于每棵树互不影响, 将每棵树的答案乘起来就行了 我们可以把连一条新的边 $(u, v)$ 看做覆盖 $u$ , $v$ 两点之间的边 那么对于没有被覆盖的边 $(u, v)$ ,
阅读全文
摘要:"题面" 题解 设$f[i]$为根节点到$i$的最小耗时 设$S$为$i$的祖先集合, 可以得到 $$ f[i] = min(f[j] + (i j)^p),j \in S $$ 对于$(i j)^p$, 我们有 $$ ((i + 1) (j + 1))^p + (i j)^p \leq ((i +
阅读全文
摘要:"题面" 题解 思路很好的一道题 ~~zsq这个麻瓜总算找了几道好题做了~~ 题目拿到手上, 首先考虑贪心, 要使答案更大, 则要使编号小的点对答案的贡献更小 那么将它放在深度更浅的地方肯定没有放在更深的地方更优 所以得到了一条贪心思路 编号较小的点放在深度较大的点上 所以, 对于某一个点, 只有当
阅读全文
摘要:题面 "[HNOI2014]世界树" 题解 从数据范围很容易看出是个虚树DP(~~可惜看出来了也还是不会做~~) 虚树大家应该都会, 不会的话自己去搜吧, 我懒得讲了, 我们在这里只需要考虑如何DP即可 首先我们需要求出每个点被哪个点所控制, 设$u$点被$bl[u]$所控制, 两遍DFS即可, 考
阅读全文