
虚树
nlj1999
这个作者很懒,什么都没留下…
展开
-
3611: [Heoi2014]大工程
继续水虚树。这题60S的时限把我吓坏了。然而3000多MS就A了,有幸到了rank 4,nice!。一开始还在纠结是点分治还是DP,后来想想既然能DP何不DP呢。于是就DP了。显然要维护三个量。ans2和ans3都好说,参照树上直径的求法就好了,次长+最长+1变形一下。ans1的话比较麻烦,手画个图看看,目测是当前子树的边与其他子树的边对应,然后其他子树的边再和当前子树原创 2015-12-28 21:08:18 · 595 阅读 · 0 评论 -
2286: [Sdoi2011消耗战
由于今天被数据结构虐了,所以果断来水一水虚树的题。这题每次树形DP一下大概是n*m的复杂度,妥妥的炸掉了。然而我们只考虑每次要处理的节点和他们的LCA们,于是就变成了sigma(k),即50W了。然后就是虚树的建法,感觉还是很有意思(不明所以)的。首先我们需要一个单调栈来维护一条从根节点延伸下来的链,然后我们有四个节点。1:当前点2:栈顶3:次栈顶4:lca(当前点原创 2015-12-28 19:56:14 · 756 阅读 · 0 评论 -
BZOJ 3572: [Hnoi2014]世界树
好久没有做虚树了,感觉好虚啊首先建出虚树,然后对于两边dp搞出虚树上每个点连接到的居委会对于虚树上的每条边,我们找到两端点的分界点,再对他们连接到的居委会更新答案这里给树剖加个特技就能求两点间第K个点了#include#include#include#includeusing namespace std;const int N=300000+5;const int in原创 2016-04-11 11:42:04 · 354 阅读 · 0 评论