Icefox的博客

生活不止眼前的苟且,还有诗和远方。

uoj207 共价大爷游长沙(lct+Hash)

考虑我们给S中的每条路径一个权值,然后对这段路径异或上这个值。 那么最后询问的那条边如果权值等于S集合的异或和那么就说它被所有路径经过了。这样的正确性是很高的。 然后考虑新加入一条边,就会出现一个环,然后肯定是在这个环上删去一条边,假设是x,y那么在新的树上x->y的路径...

2018-07-15 20:02:35

阅读数 167

评论数 0

bzoj3786 星系探索(ETT)

ETT就是Euler Tour Tree,用平衡树来维护欧拉序。 而欧拉序可以写成很多形式: 1.The first way is to write down all edges of the tree, directed, in order of DFS. This is how ETT i...

2018-06-14 10:05:35

阅读数 130

评论数 0

bzoj5365 [Lydsy1805月赛]回文树(树上Hash+暴力)

因为字符随机,所以同样的字符很少,我们对于同样的字符内部暴力两两枚举,看x->y是不是一个回文串。 怎么看呢?蒟蒻我不会… 比赛时胡乱写了一个假的lct维护树上hash值。 一开始没维护sz,它过了…过了… 发现后改过,它RE了…缘来是我写挂了qaq 改对过...

2018-05-27 22:29:56

阅读数 271

评论数 0

bzoj4736 温暖会指引我们前行(lct)

lct维护最大生成树即可。 好久没打打着好别扭的感觉qaq 药丸qaq #include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3f3f3...

2018-05-25 17:15:23

阅读数 85

评论数 0

loj6038「雅礼集训 2017 Day5」远行(lct+树的直径)

维护一下树的直径,用lct动态维护两点间距离。

2018-04-28 13:10:11

阅读数 88

评论数 0

bzoj4229 选择(lct+并查集维护边双)

倒着做,加边,维护边双。 lct+并查集。类似:portal 见一次不会一次系列qaq

2018-04-27 14:52:36

阅读数 122

评论数 0

bzoj2759 一个动态树好题(数学+基环树lct)

我们先不考虑修改操作。如何求解一个n个方程的n元线性模方程组呢?我们可以用图论来做!把i的父亲设为pi,我们就得到了一个基环森林。对于每一个连通块,一定会有一个环,我们根据这个环就可以求解出一个方程的解,然后这整个连通块的解就都可以得到了。我们考虑如何动态维护这个东西,我们想到了lct。把每棵基环...

2018-04-05 18:52:32

阅读数 164

评论数 0

bzoj2555 SubString(SAM+lct)

支持在末尾加入一个字符串 查询一个字符串的出现次数 强制在线我们建出SAM,找到这个字符串,如果找不到直接返回0.这个节点的|Right|就是答案。因此我们需要动态维护|Right|.考虑我们构造的过程,把np连到parent树上之后,np到根的路径上的所有点都+1了。而用nq代替q时,需要把...

2018-03-24 21:47:35

阅读数 92

评论数 0

suoj33 诡异的交通(lct+stl)

orz sbw 题目传送门:portal

2018-03-21 23:06:15

阅读数 86

评论数 0

bzoj2843 极地旅行社(lct)

lct裸题。

2018-03-17 08:32:17

阅读数 98

评论数 0

CF763E Timofey and our friends animals(线段树+并查集/lct+BIT/瞎搞)

官方正解给的是线段树+并查集,好毒瘤呀!写的我心神俱疲呀orz 我是每个节点维护左边K个点和右边K个点的连通性,还有连通块的个数。然后每次合并两个节点的时候,就暴力枚举K^2条边来并查集维护。再更新对结果的l和r。然后每次查询的时候就直接合并logn个节点即可。当节点的区间长度不足k时太毒瘤啦!...

2018-03-15 11:40:12

阅读数 664

评论数 0

CF603E Pastoral Oddities(lct维护虚边信息+set+kruskal)

题目大意:动态加边,定义合法边集为使得每个点度数均为奇数。边集的代价为权值最大的边的权值。每次加入一条边后问现在合法边集的最小代价。我们首先要发现一个结论:当且仅当一个连通图的点数为偶数时,存在合法边集。具体证明见官方题解。于是合法边集的判定标准现在变成了是否不存在奇数个点的连通块。如果给定一张图...

2018-03-09 14:19:37

阅读数 188

评论数 0

CF813F Bipartite Checking(lct,同bzoj4025)

动态加边删边,判断是否是二分图。同bzoj4025

2018-03-09 09:39:35

阅读数 121

评论数 0

luogu3613 睡觉困难综合征(lct+贪心)

是bzoj3668的改编。 如果我们知道了每一位上取0和取1时的结果,我们就可以直接从高位开始贪心了。 于是每个节点维护一下每一位取0时的答案f0,每一位取1时的答案f1。考虑如何合并两个答案呢?记左边为a,右边为b,结果为res,则有 res.f0=(~a.f0&b.f0)|(a....

2018-03-08 23:27:25

阅读数 133

评论数 0

bzoj2594 [Wc2006]水管局长数据加强版(lct+kruskal+离线)

考虑离线操作,倒着做,就是维护不断往里加边的最小生成树。具体做法与魔法森林差不多。 至于如何找到一条边的标号,可以二分查找来做。

2018-03-07 11:31:47

阅读数 110

评论数 0

bzoj2816 [ZJOI2012]网络(lct)

每种颜色显然是森林,可以拿lct来维护。每个点拆成C个点。

2018-03-07 10:09:46

阅读数 90

评论数 0

hdu2475 Box(splay/lct)

这题好神呀。lct做法参见:传送门 这里说说splay做法。我们考虑一棵树的dfs序。进点x的时候记下x,出点x的时候记下x+n。则x的子树就是区间[x,x+n]。则操作1就相当于删除一个区间的数,然后把这一整个区间的数插入一个数的后面。x节点所在的根就是dfs序最前面的那个节点。然后就可以做了...

2018-03-04 00:16:34

阅读数 132

评论数 0

bzoj3510 首都(lct维护虚边信息+树的重心性质)

首先关于树的重心的一些性质: 1.树的重心就是一个点,其所有的子树中最大的子树节点数最少。 2.根据树的重心,每棵子树的大小不超过n的一半。 3.树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个距离和,他们的距离和一样。 4.把两棵树通过某两点相连得到一颗新的树,新的树的重...

2018-03-02 23:44:47

阅读数 181

评论数 0

bzoj3091 城市旅行(lct+数学)

记链x->y的长度为n,则答案的分母显然就是n*(n+1)/2,我们的问题在于维护分子。考虑每一个点对答案的贡献,就是v[i]∗i∗(n−i+1)v[i]*i*(n-i+1)这个东西怎么维护呢?我们维护ls=v[i]∗i,rs=v[i]∗(n−i+1)ls=v[i]*i,rs=v[i]*(n...

2018-02-21 12:55:38

阅读数 128

评论数 0

bzoj4998 星球联盟(lct+并查集)

做完bzoj2959,再做这道题就显得比较简单了。我们要维护一个边双联通分量大小。用并查集来缩点即可。

2018-02-17 17:56:16

阅读数 191

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭