Icefox的博客

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

bzoj3083 遥远的国度(树链剖分+换根)

树链剖分基本操作,换根其实就是把dfs序列分裂,倍增找一下当前rt到询问点x的儿子,把这一段区间去掉即可。 #include <bits/stdc++.h> using namespace std; #define ll long long #defi...

2018-07-13 20:09:12

阅读数:40

评论数:0

bzoj4196 [Noi2015]软件包管理器(树链剖分)

树链剖分小水题~维护区间白点个数即可。 复杂度O(nlog2n)O(nlog2n)O(nlog^2n) #include <bits/stdc++.h> using namespace std; #define ll long long #defin...

2018-06-25 13:15:34

阅读数:23

评论数:0

bzoj4712 洪水(树形动态dp,树链剖分+线段树二分/链分治)

首先考虑不带修改的话,f[x]表示切断x与子树内的叶子的最小花费,有 f[x]=min(v[x],s[x]),s[x]=∑y∈son[x]f[y]f[x]=min(v[x],s[x]),s[x]=∑y∈son[x]f[y]f[x]=min(v[x],s[x]),s[x]=\sum\limits_...

2018-06-17 22:57:46

阅读数:41

评论数:0

bzoj2164 采矿(树形背包dp+线段树优化+链剖)

首先我们如果能预处理出dp[x][j]表示x子树内分配j个人最大获益,然后每次询问O(m)的循环一下,还需要知道在链上某一个点分配m-j个人的最大获益,我们发现这个东西可以放在线段树上树剖来维护。但是有修改的话我们预处理的那个dp数组就gg了,怎么办呢qaq 我们发现其实这个dp数组也可以直接在线...

2018-06-15 10:45:20

阅读数:28

评论数:0

uoj30【CF Round #278】Tourists(圆方树+树链剖分+可删除堆)

求一般图两点之间所有简单路径上的点权的最小值。 我们搞出圆方树,原图两点间的所有简单路径的并就对应了圆方树上两点间路径。圆点权值为原点点权,方点权值为这个点双的权值最小值。 树链剖分维护路径最小值即可。 但是这样修改一个点的点权时可能需要修改一堆方点,复杂度会爆炸。 于是一个小trick,...

2018-05-31 20:33:21

阅读数:62

评论数:0

bzoj4515 [Sdoi2016]游戏(树链剖分+李超线段树)

我们把x->y的路径分为x->t,t->y两部分来考虑(t为x,y的lca) 分别化出只跟dis[v]有关的函数。然后就可以树链剖分+李超线段树来维护最小值了。因为要求区间最小值,所以还要维护区间最小值。 复杂度O(nlog3n)O(nlog^3n)

2018-05-06 00:06:52

阅读数:45

评论数:0

bzoj3681 Arietta(dsu on tree+主席树优化建图+网络流)

显然就是个建图最大流。然而边数爆炸。 我们考虑每个节点维护一棵线段树表示子树信息来优化建图,然后边数还是爆炸。 我们再考虑树上建主席树来优化建图,不错,好像可以了,然而子树信息不可减(维护的是权值为x的点的标号)gg这时候我们要用到一种黑科技:dsu on tree! 也就是树上启发式合并。...

2018-04-26 21:50:17

阅读数:38

评论数:0

bzoj5279 [Usaco2018 Open]Disruption(树链剖分)

对于每条额外边x-y,可以作为原树上x-y的路径上的任意一条边删去时的答案,所以路径更新最小值即可。

2018-04-20 22:38:01

阅读数:78

评论数:0

bzoj4538 [Hnoi2016]网络(树链剖分,线段树套堆)

给定一棵树,三种操作: 1、加入一条路径 2、删除一条已加入的路径 3、询问不过一个点x的路径的最大值。我们用树链剖分,把路径分成logn个连续的区间,然后对这些区间的补集(即不在路径上的所有点)扔进此条路径的值。线段树的每个节点维护一个可以删除的大根堆。询问时对线段树上所有包含点x的节点的...

2018-03-08 16:03:10

阅读数:60

评论数:0

bzoj2157 旅游(树链剖分)

树链剖分裸题。

2018-03-08 14:22:56

阅读数:48

评论数:0

bzoj4012 [HNOI2015]开店(动态点分治+二分+STL/树链剖分+主席树)

如何求所有点到一个点的距离和呢?类似bzoj3924我们的处理方法。 对于每个节点x维护 s1[x]–x的子树中的点到x的距离 s2[x]–x的子树中的点到fa[x]的距离 然后logn的在重心树上跳一跳,减去重复的,补上少的即可。 这题还有一个年龄的限制,怎么办呢?很容易想到线段树,但...

2018-02-23 23:42:18

阅读数:95

评论数:0

bzoj3694 最短路(最短路+树链剖分维护最小值)

对于一条不在最短路径树里的边,设该边的两端点为x,y,长度为len,t为x和y的最近公共祖先,d[i]表示1到i的最短距离。那么对于x和t之间的点u,一定存在1-t-y-x-u的路径。路径长度为d[y]+len+d[x]-d[u]。对于给定的u点,我们需要最小化d[x]+d[y]+len。y和t之...

2017-09-11 16:37:34

阅读数:201

评论数:0

hdu5052 Yaoge’s maximum profit (树链剖分)

同bzoj3999

2017-09-11 13:40:35

阅读数:147

评论数:0

hdu5044 Tree(树链剖分+差分)

线段树会T,要用O(n)的区间修改+单点查询,也就是像差值似的,把区间修改变成点修改,最后前缀和就是每个点的值。(可是我这样还是差点T掉了o(╥﹏╥)o)

2017-09-11 13:24:46

阅读数:101

评论数:0

bzoj3862/hdu4897 Little Devil I(树链剖分+线段树)

维护边权和,还要维护每个点连接的轻边是否旋转。操作1和操作3是非常裸的边权树链剖分。然而操作2很是神奇???他要更新a到b路径上的邻接边??那不是有很多??复杂度不就废了??WJMZBMR表示哈哈哈。咱们再开一颗线段树,记录每个点连接的轻边的旋转情况。我们考虑一条重链,我们要对这条重莲上的所有点的...

2017-09-11 10:37:27

阅读数:163

评论数:0

hdu4718 The LCIS on the Tree(树链剖分)

有向的合并区间。看好了是求最长连续上升子序列,并非最长上升子序列。。。这样就可以拿线段树维护,左端点的值,右端点的值,左端点正着最多几个,右端点正着最多几个,左端点倒着最多几个,右端点倒着最多几个,正着最优几个,倒着最优几个,还要看好方向,真是麻烦呢。

2017-09-10 22:33:46

阅读数:121

评论数:0

hdu3966 Aragorn's Story(树链剖分)

点权裸题

2017-09-10 20:41:52

阅读数:115

评论数:0

poj3237 Tree(树链剖分)

边权裸题。negate操作就是区间取相反数。因此为了维护最大值,我们还要维护最小值。 tips:多组数据一定要清零啊。。。懒标记要清零啊。血的教训。

2017-09-10 19:23:54

阅读数:139

评论数:0

fzu2082 过路费(树链剖分)

边权裸题

2017-09-09 19:33:29

阅读数:123

评论数:0

bzoj4999 This Problem Is Too Simple!(树链剖分+动态开点线段树)

对每一个权值开一棵线段树,维护区间和。空间不够,要动态开点。

2017-09-09 14:36:04

阅读数:223

评论数:0

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