虚树
园游会不打烊
这个作者很懒,什么都没留下…
展开
-
MMSet2 题解
牛客网 题目描述: 不难发现课以转换成:给你一颗树,qqq次询问,每次询问给出一些点集,求点集中最大距离,输出(最大距离+1)/2(最大距离+1)/2(最大距离+1)/2; 方法一: 根据求树的直径的一种方法知道,将任意节点当成根,那么深度最大的一个点一定用到,接下来只要依次求出这个点到其它给出的点的距离,记录最大的即可。那么两点之间的距离如何求呢,其实就是这两个点的深度相加然后减去他们的2*LCA,这个也比较好理解。求LCA的方法这里就不在说明了,可以百度。 #include <bits/stdc+原创 2020-08-20 13:55:29 · 141 阅读 · 0 评论 -
洛谷 P2495 [SDOI2011]消耗战 题解
题目链接 题目描述: 给你一个有边权的树,若干次询问,每次询问包含一个不含点111的kkk个点的点集,求点111与这些点都不连通的最小代价(删除一些边,代价是他们的权值和)。 解题思路: 首先考虑如果只有一次询问可以怎么做,不难发现转换为点111为根的树后DP可以实现DP可以实现DP可以实现,设mincast(i)mincast(i)mincast(i)为根到点iii路径上的最小边权,dp(i)dp(i)dp(i)为切断以iii为根的子树上所有给出的点的最小代价。那么对于点iii, 1、如果它是给出的点,那原创 2020-08-20 12:14:00 · 171 阅读 · 0 评论