动态树
magic_sheep
这个作者很懒,什么都没留下…
展开
-
BZOJ 2002 Bounce 弹飞绵羊
LCT模板题,用LCT维护size大小。#include<iostream>#include<cstdio>using namespace std;const int maxn=201000;int n,m,x,y,op,sz[maxn],next[maxn],fa[maxn],tree[maxn][2],s[maxn];bool rev[maxn];inline bool isroot原创 2017-02-17 22:33:19 · 186 阅读 · 0 评论 -
BZOJ 2049 [Sdoi2008]Cave 洞穴勘测
动态树裸题,直接放代码/************************************************************** Problem: 2049 User: vermouth Language: C++ Result: Accepted Time:2188 ms Memory:1724 kb**************原创 2017-02-17 22:45:25 · 233 阅读 · 0 评论 -
BZOJ 2716 LCT模板题
找不到比这更适合当模板题的题了。#include<cstdio>#include<iostream>#include<cstring>#define mod 51061#define ll unsigned intusing namespace std;const int maxn=200010;ll mt[maxn],at[maxn],fa[maxn],sz[maxn],ch[max原创 2017-02-25 21:17:17 · 735 阅读 · 0 评论 -
BZOJ 2594 [Wc2006]水管局长数据加强版
由于题目有删除操作,所以我们不妨倒叙枚举,把删边变成加边。某人还起了个好听的名字叫“时光倒流”……之后用动态树维护一下动态最小生成树就行了,每加入一条边就用动态树树找出两点见最长边,比较大小看是否能替换就行了。这里还有一个小技巧,就是二分边标号来找出每个询问所对应的边的标号。24700ms 刚好卡时。/*************************************************原创 2017-03-10 21:35:28 · 320 阅读 · 0 评论 -
BZOJ 1180: [CROATIAN2009]OTOCI
动态树裸题,维护sum时注意一下splay和access的对象即可。还有 rev[x]^1。。。rev[x]^=1;#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int maxn = 50000;int ch[maxn][2],sum[maxn],fa[maxn],val[max原创 2017-03-21 11:38:47 · 347 阅读 · 0 评论 -
BZOJ 2555: SubString 动态树+后缀自动机
首先,这是一道代码题,利用动态树维护后缀自动机的parent树,如果不是强制在线,可能会好写一点。对于每个询问,找到被询问节点所在的right集合,集合大小即为答案。注意,这里的LCT为有向的,写起来有些不一样。#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;原创 2017-03-16 19:46:37 · 267 阅读 · 0 评论 -
LCT 讲解 动态树的基本使用
Link-Cut-tree 动态树解决树上问题的一种数据结构,没学过树链剖分的建议先学一下树链剖分。你们先假装会了树链剖分 QwQ。树链剖分是对树进行轻重链剖分,重链的条数不超过logn条,用线段树维护链上信息。 树链剖分可支持的操作有: 链上求和 链上求最值 链上修改但是对于 断开树上的一条边 或 连接两个点,保证连接后仍然是一棵树由于树是动态的,重建需要重新标号,复杂度略高~所以就有了原创 2017-02-26 22:00:59 · 4625 阅读 · 0 评论