2012年8月26日
摘要:
0、BFS将无根树转化为有根树。1、bef[x]=y。表示x的父亲是y。这样建树构成了一片森林。2、Access(x)。表示以x为起点,一直到根节点,构造出一条链。这条链用splay维护,可以很好的支持插入和删除操作。这条链只有根节点与原树有联系。3、Splay(x)。同伸展树,用于维护提取出的链。通过splay操作,使得均摊logn。4、MakeRoot(x)。表示把x节点设为根。一棵树根的变化,仅与x到根的路径有关,即把路径反向即可。因此相当于把x到根的链翻转,bef构成的森林不变。A、操作1:link,操作2:cut。【HDU】2475 BoxB、路径中单点更新/成段更新/查询。(其实这 阅读全文
posted @ 2012-08-26 23:39
DrunBee
阅读(3497)
评论(0)
推荐(0)
摘要:
1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #include<iostream> 5 #include<algorithm> 6 #define MAXN 300010 7 #define MAXM 600010 8 #define CLEAR(a,b) memset(a,b,sizeof(a)) 9 using namespace std; 10 int first[MAXN], next[MAXM], v[MAXM], e; 11 bool vis[MAXN 阅读全文
posted @ 2012-08-26 22:45
DrunBee
阅读(1002)
评论(0)
推荐(0)
浙公网安备 33010602011771号