
虚树
文章平均质量分 79
jzhang1
这个作者很懒,什么都没留下…
展开
-
虚树入门
今天学了一下虚树,简单谈一下有什么用。 所谓虚树,其实就是把询问中需要用到的点建到另一棵树上,比如如果我们当前询问一条链上的两个端点,原本如果做dfs dp的话我们的复杂度是o(n)的,但是如果是虚树,那么树上就只会有这两个端点,两个端点之间的那条边记录了原本整条链上的信息。于是复杂度变成了o(2)的。 那么怎么建虚树呢?一般题中除了给出的询问点(之后成为关键点),我们还会用到原创 2016-01-18 11:58:41 · 8260 阅读 · 0 评论 -
Codeforces round339 div1 D
第一次做虚树的题…题意:给出一棵树,多次询问,每次给出k[i]个点,询问将这些点从树上分离开来最少需要删除多少个点,保证k[i]的和不超过100000.我们先建虚树,然后在虚树上Dp就可以了,我们设Dp[i][0/1],若为0表示这个点子树中所有关键点与这个点都断开了,1表示还有1个关键点连在这个点上。(不可能有大于等于2个点,不然就不合法了)。那么若当前点是关键点,Dp[i][0原创 2016-01-18 11:59:38 · 453 阅读 · 0 评论 -
bzoj3572_hnoi2014 世界树
题目大意:给出一棵树,每次询问给出k[i]个点,如果点x离k[i]个点中的点j最近,那么称x被j管理,对于每次询问,给出k[i]个点每个点管理的点的数量(包括自己)。保证所有询问k[i]之和不超过300000,n 首先对于所有询问的点构建一棵虚树(废话).. (其实虚树的特征看询问方式和数据范围的特点一般就能看出)。 那么现在问题在于如何统计答案原创 2016-02-03 16:35:10 · 701 阅读 · 0 评论