上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页
  2012年8月23日
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<queue> 5 #define MAXN 100010 6 #define MAXM 200010 7 using namespace std; 8 int first[MAXN], next[MAXM], v[MAXM], e; 9 bool vis[MAXN]; 10 struct LCT { 11 int bef[MAXN], belong[MAXN]; 12 int next[MAXN][2], 阅读全文
posted @ 2012-08-23 11:17 DrunBee 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #include<iostream> 5 #include<algorithm> 6 #define MAXN 100010 7 #define MAXM 200010 8 using namespace std; 9 bool vis[MAXN]; 10 int first[MAXN], second[MAXM], v[MAXM], e; 11 struct LCT { 12 int bef[MAXN]; 13 in 阅读全文
posted @ 2012-08-23 02:39 DrunBee 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #include<iostream> 5 #include<algorithm> 6 #define oo 0x7FFFFFFF 7 #define MAXN 30010 8 #define MAXM 60010 9 using namespace std; 10 int first[MAXN], next[MAXM], v[MAXM], e; 11 bool vis[MAXN]; 12 struct LCT { 13 阅读全文
posted @ 2012-08-23 01:28 DrunBee 阅读(407) 评论(0) 推荐(0) 编辑
  2012年8月22日
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #define MAXN 200010 5 using namespace std; 6 struct LCT { 7 int bef[MAXN]; 8 int next[MAXN][2], pre[MAXN], key[MAXN], sum[MAXN]; 9 void Init() { 10 memset(next, 0, sizeof(next)); 11 memset(pre, 0, siz... 阅读全文
posted @ 2012-08-22 19:58 DrunBee 阅读(810) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #include<iostream> 5 #define MAXN 50010 6 #define MAXM 100010 7 using namespace std; 8 int first[MAXN], next[MAXM], v[MAXM], cost[MAXM], e; 9 bool vis[MAXN]; 10 struct LCT { 11 int bef[MAXN], belong[MAXN]; 12 int next 阅读全文
posted @ 2012-08-22 10:47 DrunBee 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #include<iostream> 5 #include<algorithm> 6 #define MAXN 10010 7 #define MAXM 20010 8 #define oo 0x7FFFFFFF 9 using namespace std; 10 int first[MAXN], next[MAXM], v[MAXM], cost[MAXM], e; 11 bool vis[MAXN]; 12 str 阅读全文
posted @ 2012-08-22 02:00 DrunBee 阅读(529) 评论(0) 推荐(0) 编辑
  2012年8月21日
摘要: Splay: 1 #include<cstdio> 2 #include<cstring> 3 #define MAXN 100010 4 int first[MAXN], next[MAXN], v[MAXN], e; 5 int seq[MAXN], cnt; 6 int n; 7 bool vis[MAXN]; 8 struct SplayTree { 9 int root; 10 int next[MAXN][2], pre[MAXN]; 11 void Init() { 12 pre[0] = next[0][0] = nex... 阅读全文
posted @ 2012-08-21 22:35 DrunBee 阅读(1135) 评论(0) 推荐(0) 编辑
  2012年8月20日
摘要: 伸展树是一枚二叉树,可以维护一个数列,或者可以作为二叉搜索树,因为无论怎么旋转,它的中序遍历是不变的。1、伸展操作。Splay(x,goal):旋转结点x,使它成为结点goal的儿子。至于旋转,本质上只有左旋和右旋。2、插入。如果作为二叉搜索树,则插入与二叉搜索树一样,最后把该结点旋转到根。如果用于维护一个数列,要求在x位置之前插入val(val可以为一个数字或一个序列),则将第x-1个结点旋转到根,将第x个结点旋转到第x-1个结点的儿子,那么根据中序遍历,val应插入在第x个结点的左儿子。3、删除。与插入同理。4、Select(k)。在二叉搜索树中,对每个结点维护一个num值,如果x左儿子的 阅读全文
posted @ 2012-08-20 23:02 DrunBee 阅读(3430) 评论(0) 推荐(1) 编辑
  2012年8月19日
摘要: 1 #include<cstdio> 2 #include<iostream> 3 #define MAXN 400010 4 #define PushUp(x) num[x] = num[next[x][0]] + num[next[x][1]] + 1; 5 using namespace std; 6 pair<int, int> edge[MAXN]; 7 int first[MAXN], next[MAXN], cost[MAXN], e; 8 int father[MAXN]; 9 bool del[MAXN]; 10 struct ASK { 阅读全文
posted @ 2012-08-19 16:31 DrunBee 阅读(841) 评论(0) 推荐(0) 编辑
  2012年8月16日
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define oo 0x7FFFFFFF 5 #define MAXN 200010 6 using namespace std; 7 struct SplayTree { 8 int size, root, top; 9 int st[MAXN], a[MAXN]; 10 int next[MAXN][2], pre[MAXN], key[MAXN], num[MAXN]; 11 int add[MAXN], mi... 阅读全文
posted @ 2012-08-16 01:38 DrunBee 阅读(736) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页