![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态树
lsr_yali
中国人寿,你值得拥有
展开
-
bzoj2002 LCT
LCT模板题#include#include#include#include#define For(i,j,k) for(register int i=(j);i<=(int)k;i++)#define Forr(i,j,k) for(register int i=(j);i>=(int)k;i--)#define L(i) (T[(i)].s[0])#define R(i) (原创 2016-12-17 10:42:57 · 318 阅读 · 0 评论 -
LCT小结
各种操作1.isrt(x) 判断x是否为当前辅助树的根 inline bool isrt(int x){ return R(F(x))!=x&&L(F(x))!=x; }2.pushup(x) 合并答案更新 //举例 inline void pushup(int i){ T[i].mx=max(T[L(i)].mx,T[R(i)].mx);原创 2017-02-12 21:43:15 · 661 阅读 · 0 评论 -
BZOJ2594: [Wc2006]水管局长数据加强版
题意动态维护最小生成树上最大边题解这题有点恶心,还要写一个hash因为最小生成树具有环切性质,所以LCT维护一下就可以了代码#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<iostream>#include<map>#define L(i) (T[i].s[0])#define原创 2017-02-12 10:24:20 · 320 阅读 · 0 评论 -
BZOJ3091: 城市旅行
题意维护树上两点路径上任意两点的距离的期望值题解搬运一波PoPoQQQ大神的博客 http://blog.csdn.net/popoqqq/article/details/40823659代码#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#include<iostream>#define F(i)原创 2017-02-12 10:11:53 · 229 阅读 · 0 评论 -
SPOJGSS7 Can you answer these queries VII
题意树上最大连续子段和题解维护前后缀和总的最大连续子段和 合并即可代码#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#define L(i) (T[i].s[0])#define R(i) (T[i].s[1])#define F(i) (T[i].fa)#define S(i) (T[i].原创 2017-02-12 10:00:35 · 254 阅读 · 0 评论 -
BZOJ2243 染色
题意:给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“ 112221 ” 由3段组成:“ 11 ” 、“ 222 ” 和“ 1 ” 。请你写一个程序依次完成这m个操作。题解LCT维护最左/右端点颜色合并即可代码#include<cstdio>#include<cstdlib>原创 2017-02-12 09:57:40 · 457 阅读 · 0 评论 -
BZOJ1095 捉迷藏
类似QTREE4LCT维护子树信息即可代码#include<bits/stdc++.h>#define For(i,j,k) for(int i=(j);i<=(int)k;i++)#define Forr(i,j,k) for(int i=(j);i>=(int)k;i--)#define Set(a,b) memset(a,b,sizeof(a))#define Rep(i,u) for原创 2017-02-12 09:49:15 · 401 阅读 · 0 评论 -
URAL1553 Caves and Tunnels
LCT模板题代码#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#include<iostream>#define L(i) (T[i].s[0])#define R(i) (T[i].s[1])#define F(i) (T[i].fa)#define Loc(i) (R(F(i))==i)原创 2017-02-12 09:46:05 · 222 阅读 · 0 评论 -
HDU4010 Query on The Trees LCT
LCT模板题代码#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<iostream>#include<cmath>#define L(i) (T[i].s[0])#define R(i) (T[i].s[1])#define F(i) (T[i].fa)#define V(i)原创 2017-02-12 09:44:00 · 207 阅读 · 0 评论 -
QTREE系列1,4,5,6,7 LCT
QTREE1题意:给出一棵N(N <= 10000)个点的树,要求支持: 1.改变第i条边的权值 2.求a->b上的最大边权解:直接树剖或LCT即可代码1.LCT(660ms)#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#include<iostream>#define L(i) (T[i].原创 2017-02-12 09:10:53 · 598 阅读 · 0 评论 -
BZOJ2049 LCT
换了一种新写法,感觉比之前好 主要注意define Rotate()别写错#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<cmath>#include<iostream>#define For(i,j,k) for(register int i=(j);i<=(int)k;i++原创 2016-12-17 17:41:31 · 289 阅读 · 0 评论 -
BZOJ 4025 二分图 LCT
维护关于删除时间的最大生成树 一个奇环的影响仅取决于环上删除时间最小的边 对于每个时刻 加入一条边时 若它为树边直接加 若形成环,则弹出删除时间最小的边,若同时为奇环,则将最小边加入集合,表示这条边存在时,图中总有奇环 (偶环不用加这条边,因为若之后加入的边与这条边形成了奇环,那么新边一定能与其他边构成奇环) 删去一条边时 若为树边直接删 若在集合中,在集合中删去 这样,在每一时原创 2017-02-12 21:48:40 · 221 阅读 · 0 评论