摘要:
依然不是十分理解……待考虑…… 1 #include 2 #include 3 #include 4 #include 5 6 #define lson l, m, rt > 1; 74 build( lson ); 75 build( rson ); 76 PushUp( rt ); 77 return; 78 } 79 80 node Query( int L, int R, int l, int r, int rt ) 81 { 82 if ( L > 1; 93 94 if ( R m ) return Que... 阅读全文
posted @ 2013-07-15 22:47
冰鸮
阅读(222)
评论(0)
推荐(0)
摘要:
只有一个地方需要注意:设节点a的根为u,b的跟为v,则:a = u + d[a]; b = v + d[b];已知:b-a=w。所以v - u = d[a] - d[b] + w;在合并两个集合修改根节点时,把v的根改为u,同时v到根的距离为d[a] - d[b] + w; 1 #include 2 #include 3 4 const int MAXN = 100010; 5 6 int pa[MAXN]; 7 long long int d[MAXN]; 8 9 int findset( int x )10 {11 if ( pa[x] == x ) return x;1... 阅读全文
posted @ 2013-07-15 17:31
冰鸮
阅读(323)
评论(0)
推荐(0)

浙公网安备 33010602011771号