E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
树链剖分【HeavyLight
[bzoj2819][
树链剖分
][博弈]Nim
Description著名游戏设计师vfleaking,最近迷上了Nim。普通的Nim游戏为:两个人进行游戏,N堆石子,每回合可以取其中某一堆的任意多个,可以取完,但不可以不取。谁不能取谁输。这个游戏是有必胜策略的。于是vfleaking决定写一个玩Nim游戏的平台来坑玩家。为了设计漂亮一点的初始局面,vfleaking用以下方式来找灵感:拿出很多石子,把它们聚成一堆一堆的,对每一堆编号1,2,3
Rose_max
·
2018-03-02 13:58
bzoj
树链剖分
博弈
[ZJOI2008]树的统计(
树链剖分
+线段树)
题目传送门题解板子题代码#include#include#includeusingnamespacestd;constintmaxn=1000005;intn,m,x,y,a[maxn],sum[maxnmaxnow){maxnow=tot[to];//这里是找儿子而不是找xson[x]=to;}}}}intcnt;//标记dfs序的计数器voiddfs2(intx,inttp){top[x]=t
A_Comme_Amour
·
2018-02-28 13:38
线段树
树链剖分
[BZOJ4034][HAOI2015]树上操作(
树链剖分
+线段树)
4034:[HAOI2015]树上操作TimeLimit:10SecMemoryLimit:256MBSubmit:6487Solved:2161[Submit][Status][Discuss]Description有一棵点数为N的树,以点1为根,且树点有边权。然后有M个操作,分为三种:操作1:把某个节点x的点权增加a。操作2:把某个节点x为根的子树中所有点的点权都增加a。操作3:询问某个节点x
Effervescence
·
2018-02-27 22:21
线段树
树链剖分
[BZOJ2243][SDOI2011]染色(
树链剖分
+线段树)
2243:[SDOI2011]染色TimeLimit:20SecMemoryLimit:512MBSubmit:9399Solved:3528[Submit][Status][Discuss]Description给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”
Effervescence
·
2018-02-27 21:13
线段树
树链剖分
[UOJ128][NOI2015]软件包管理器(
树链剖分
+线段树)
#128.【NOI2015】软件包管理器Linux用户和OSX用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所有的配置。Debian/Ubuntu使用的apt-get,Fedora/CentOS使用的yum,以及OSX下可用的homebre
Effervescence
·
2018-02-27 20:23
线段树
树链剖分
[模板]
树链剖分
讲解与模板
树链剖分
的思想比较神奇它的思想是:把一棵树拆成若干个不相交的链,然后用一些数据结构去维护这些链重儿子:该节点的子树中,节点个数最多的子树的根节点(也就是和该节点相连的点),即为该节点的重儿子重边:连接该节点与它的重儿子的边重链
A_Comme_Amour
·
2018-02-27 07:03
模板
树链剖分
树链剖分
求LCA
树链剖分
深夜写博客……LCA的问题是可以有很多方法解出来的了,比如Tarjan,或者转化成ST表的RMQ问题,或者在树上倍增跳Ancestors数组Blablabla……。
Jerry_wang119
·
2018-02-14 00:30
LCA
树链剖分
【NOIP2015模拟11.4】电话线铺设 jzoj 4313 最小生成树+
树链剖分
题目分析要把n个点用n-1条边连接起来,还要使总边权和最小,那么很明显是求最小生成树,用克鲁斯卡尔算法可解。但是这题有一个限制条件:一定要用n-2条王牌电缆+1条李牌电缆组成最小生成树。那我们就先用n-1条王牌电缆建立最小生成树。然后枚举所有李牌的边,如果一条李牌边是从x到y费用z,因为要使结果是一颗树,所以要把新生成的环上边权最大的边删去(即在x到y的路径上删去一条最大的王牌的边)这个边显然可以
A_loud_name
·
2018-01-30 16:21
LCA
c++
最小生成树
树链剖分
jzoj
NOI级别的超强数据结构——Link-cut-tree(动态树)学习小记
简介如果有一道题,让我们维护一棵树,支持以下操作:1.链上求和;2.链上求最值;3.链上修改;4.子树修改;5.子树求和;这道题用
树链剖分
就可以切掉了。
Iking123
·
2018-01-24 16:15
学习小记
-------data
Link
Cut
Tree
【
树链剖分
】LGP3613 睡觉困难综合征
原题地址【题目大意】不想打了。【题目分析】每一位不会互相影响,可以把每一位分开考虑。还要用unsignedlonglong。【解题思路】将每一位分开以后修改好啊,直接改就好了。询问的时候算出来每一位填0,1经过这条链的变换之后得到的值。我们发现从高位往低位走的时候,如果这一位填0可以得到1,那么填0一定是最优的。否则如果可以填1,就把这一位填为1。复杂度是nklog2n(树剖)或者nklogn(L
Dream_Lolita
·
2017-12-12 16:45
Tree-树链剖分
【ZJOI2008】树的统计(LCT)做法
题解由于此题的
树链剖分
做法我已经很娴熟,所
Luckfort
·
2017-12-06 22:13
[bzoj3531][
树链剖分
]旅行
DescriptionS国有N个城市,编号从1到N。城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市。每个城市信仰不同的宗教,如飞天面条神教、隐形独角兽教、绝地教都是常见的信仰。为了方便,我们用不同的正整数代表各种宗教,S国的居民常常旅行。旅行时他们总会走最短路,并且为了避免麻烦,只在信仰和他们相同的城市留宿。当然旅程的终点也是信仰与他相同的城市。S国政府为每个城市标定了不同的
Rose_max
·
2017-12-03 14:38
bzoj
树链剖分
OI路漫漫
史上最详尽的LCT讲解
2)维护一个序列,支持下列操作:区间求和区间求最值区间修改求连续子段和添加一段区间删除一段区间翻转一段区间Splay的基本操作(3)维护一棵树,支持下列操作:链上求和链上求最值链上修改子树修改子树求和
树链剖分
wwyx2001
·
2017-11-23 20:54
学习笔记
LCT
bzoj 4034(
树链剖分
)
传送门考前复习模板题(子树修改,单点修改,链上求和)。一晚上狂TLE,原因竟是:链剖siz比较写错,写了个轻链剖分。。。#includeusingnamespacestd;#definelsonrtg[MAXN];intfa[MAXN],dep[MAXN],siz[MAXN],son[MAXN],top[MAXN],in[MAXN],out[MAXN],rk[MAXN],tim=0;/*-----
KGV093
·
2017-11-03 20:16
数据结构
树链剖分
求lca模板
传说中比O(1)还快的求LCA的方法再加上正向表优化,#include#include#includeusingnamespacestd;#defineM100005#defineFOR(i,x,y)for(inti=(x);i=(y);i--)intnxt[Msz[son[x]])son[x]=y;}}voidrdfs(intx,inttp){Top[x]=tp;Tid[x]=++tim;if(
NOI_yzk
·
2017-11-02 08:15
bzoj4034: [HAOI2015]树上操作(
树链剖分
+线段树)
题目传送门水经验。解法:就写个树剖呗。然后用线段树维护一下呗。维护整一段的和。打个懒标记。代码实现:#include#include#include#include#include#include#includeusingnamespacestd;typedeflonglongll;structnode{intx,y,next;}a[210000];intlen,last[110000];void
Hanks_o
·
2017-10-30 11:14
树链剖分
线段树
BZOJ
NOIP2015 运输计划
Problem既然是NOIP的题目,那么……意料之中的偷懒不可避免SolutionActually,刚开始看这道题目的时候没有什么想法,然后就手贱点开了标签——
树链剖分
!!!
Rayment_cc
·
2017-10-29 22:29
好题集
二分答案
NOIP
bzoj2243: [SDOI2011]染色(
树链剖分
+线段树)
题目传送门开心的我又看错了题目。一开始看成是一段序列了那直接上线段树不就完了呗。打个懒标记。维护一下区间有多少种颜色以及边界都是什么颜色。打完了代码又去看题。发现是在一棵树上。。哦那就加个树剖呗。解法:线段树维护四个特征值:区间内有多少段颜色。区间内颜色是否统一,统一的话是什么颜色。区间左端点是什么颜色。区间右端点是什么颜色。然后上树剖。如果当前这一段跟上一段的结尾的颜色是一样的话,那么ans–其
Hanks_o
·
2017-10-23 10:31
树链剖分
线段树
BZOJ
NOIP集训Week 3总结
本周已完成的内容:数据结构:LCA,
树链剖分
,LCT(略带),莫队,线段树合并Dp:普通dp,树形dp,区间dp,状压dp(未完),期望dp(未完),斜率优化,四边形优化每天的效率还不错,但是仍有较大提升空间
KGV093
·
2017-10-01 22:24
总结
[BZOJ 2243][SDOI2011] 染色
树链剖分
模板题
题目传送门:【BZOJ2243】题目大意:给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。题目分析:(说好的是一道模板题,结果花了本人4个小时修改之后的线段树)如题,通常来讲,询问一棵树上的节点信息这样的题,并且包含着“
江澤妮可
·
2017-09-29 11:32
各大OJ专题(POJ
BZOJ
hdu等)
模板题
树链剖分
noip前计划
以后还需调整9.23~9.29dp概率,期望背包树形数位(记忆化搜索)状压区间,序列9.30~10.5数据结构链表栈队列堆(可并堆)并查集(按秩)St表(和树相结合)hash表(和字符串等相结合)Lca
树链剖分
线段树
五彩蒟蒻DDD
·
2017-09-22 16:13
bzoj3531 [Sdoi2014]旅行(
树链剖分
+动态开点线段树)
我们给每个宗教都建一棵线段树,维护区间和和区间最大值。但是这样会MLE,因此我们掌握了新技能:动态开点线段树。也就是不预先把所有点都建出来,用到才建。每次最多建logn个点,所以开到mlogn就足够了。这样还要记录每棵树的左右儿子,因为他们已不再是pusingnamespacestd;#defineN100010inlineintread(){intx=0,f=1;charch=getchar()
Icefox_zhx
·
2017-09-09 12:34
bzoj
线段树
树链剖分
bzoj2243 [SDOI2011]染色(
树链剖分
,线段树求颜色段数)
树链剖分
映射到线段树上,点与点的左右关系,大小关系都是不同的。因此维护ls,rs时要小心。
Icefox_zhx
·
2017-09-08 15:41
线段树
树链剖分
bzoj4034 [HAOI2015]树上操作(
树链剖分
)
子树修改,通过dfn序可以变成区间修改。然后就是裸题了。#include#include#definelllonglong#defineN100010intn,a[N],m,num=0,h[N],dep[N],size[N],son[N],fa[N],top[N],in[N],out[N],dfn=0,w[N];structedge{intto,next;}data[N'9'){if(ch=='-
Icefox_zhx
·
2017-09-08 09:28
bzoj
树链剖分
HYSBZ - 2243 [SDOI2011]染色(
树链剖分
)
分析:
树链剖分
+线段树(区间查询,单点查询,区间合并+区间合并),要注意的是,在Update时,如果更新的不是一个结点蕴含的区间,要注意两个区间相邻结点颜色是否相同,在Find时,也要看两条链相邻结点颜色是否相同
Vmorish
·
2017-09-03 09:31
数据结构--树链剖分
9.1 联合作战战果
1.处理内容:
树链剖分
4题最大流模板1题线性DP3题bellman-ford判负环1题2.树剖直接甩链接3.最大流模板略过4.线性DP水题1:目测是USACO2009Open的滑雪课f[i][j]为i时能力
Friedrich_Taylor
·
2017-09-01 21:22
OI
动态规划纲
校内赛 codeforces 827D【最小生成树】【
树链剖分
】 解题报告
找不到题面!!题意给出一张n(#include#include#include#include#includeusingnamespacestd;constintN=400000+5;constintinf=0x7fffffff;intn,m,val[N],id[N],rk[N];structEdge{intv,next,w,id;};Edgee[2*N];structdate{intu,v,w,
Hawo11
·
2017-08-30 20:14
————单个题目———
————图论————
生成树
树链剖分
校内赛
bzoj 1036(
树链剖分
)
传送门模板题,代码就作为模板扔这儿。注意:每次query从main函数传参时传x,y不是tid[x],tid[y]#pragmacomment(linker,"/STACK:1024000000,1024000000")#include#include#include#include#defineroot1,n,1#definelsonl,mid,rtsiz[son[p]])son[p]=v;}}
KGV093
·
2017-08-29 22:15
数据结构
POJ - 3237 Tree(
树链剖分
)
分析:首先基于
树链剖分
,得到一些链,然后用线段树维护这些链。我们可以把这三个问题分别对应于线段树的单点更新,区间更新和区间查询。
Vmorish
·
2017-08-28 19:11
数据结构--树链剖分
树剖
这题有一种LCA的做法,我之前写过,最近新学了
树链剖分
,心血来潮写了一下,发现要把边权转换成点权(因为树剖好像只能解决点权的问题,反正我是这么理解的)发现有好多好多的坑点套路和注意点都在代码旁边的批注上代码如下
JamesKerry
·
2017-08-28 12:00
树链剖分
codeforces
多校第九场总结,树剖
当然也可以将所有的查询和点权排序,用
树链剖分
做这个题,在线段树上面插入就ok
伟大的蚊子
·
2017-08-23 03:46
实用数据结构
图论初步
codeforces838B Diverging Directions --
树链剖分
+ 线段树
令ai表示从i到根的边的长度。对于每个点维护disti表示从根到i的路径,mindisti表示i的子树中distj+aj的最小值。然后对于询问(u,v)分类:如果u是v的祖先,由于权值都是正整数,答案为distv−distu。否则答案为mindistu−distu+distv。dist和mindist用dfs序+线段树维护就可以了。代码#include#include#include#includ
gjghfd
·
2017-08-18 21:41
树链剖分
线段树
[BZOJ2157] 旅游
树链剖分
模板题,没什么好说的#include#include#include#include#include#includeusingnamespacestd;constintLim=150005;intn,m;vectoredge[Lim];structE{inta,b,c;}e[Lim];namespaceDfsing{intprt[Lim],son[Lim],depth[Lim];intnumber
Dr_Nobody
·
2017-08-16 22:22
栈和单调栈
树链剖分
[BZOJ2157] 旅游
树链剖分
模板题,没什么好说的#include#include#include#include#include#includeusingnamespacestd;constintLim=150005;intn,m;vectoredge[Lim];structE{inta,b,c;}e[Lim];namespaceDfsing{intprt[Lim],son[Lim],depth[Lim];intnumber
Dr_Nobody
·
2017-08-16 22:22
栈和单调栈
树链剖分
旅游(国家集训队)
题面
树链剖分
,边权存到点上,注意边界处理#include#include#include#definemaxn100005usingnamespacestd;intn,m;structedge{intto
Hunter_HunterL
·
2017-08-16 06:09
树剖
Noip 2013 提高组 货车运输
3.
树链剖分
,线段树维护最小值。注意:如果把边上的权值转移到点上,要注意在求值的时候LCA点要不要算上去。
YKLCY_1334
·
2017-08-15 13:03
NOIP
浅谈
树链剖分
首先把一个知识摆在前面:倍增。这是个非常优秀的算法,他普遍应用与何处呢?像树上的倍增求LCA,序列中的倍增RMQ之类的算法,倍增在dp中也有广泛应用,可以大大优化时间和空间。但是我相信,各位读者都是比本人智商高的人,于是倍增只讲讲一个RMQ。RMQ有一个很优秀的算法就是DP。这个大家都很熟悉,众所周知,RMQ中多加一个修改操作,那么DP就失去的它的用武之地,也就是说,倍增在这里就不管用了。那么,就
RainbowCrown
·
2017-08-14 22:00
蒟蒻CGH的专题学习成长历程
【HAOI2015】T2 树状数组
题意:维护一棵树,要求可以支持1:单点权值加,2:以某点为根的子树中的所有点权值加,3:询问某点到根路径上的点权和分析:法1:
树链剖分
,以后来补吧…法2:线段树,与下面的大相径庭法3:树状数组维护欧拉序列
Dr_Nobody
·
2017-08-11 08:46
树状数组
【HAOI2015】T2 树状数组
题意:维护一棵树,要求可以支持1:单点权值加,2:以某点为根的子树中的所有点权值加,3:询问某点到根路径上的点权和分析:法1:
树链剖分
,以后来补吧…法2:线段树,与下面的大相径庭法3:树状数组维护欧拉序列
Dr_Nobody
·
2017-08-11 08:46
树状数组
树链剖分
这几天跟lxn学了一下
树链剖分
(当然ljm小儿子是我的主讲老师啦,还是要感谢的),感觉挺简单的,怕忘在此记录一下。
DYP_SimonGreenall
·
2017-08-10 20:29
C++
POJ - 2763
树链剖分
树链剖分
(轻重链剖分)仔细想想自己第一次听说这个这个数据结构大概有两年半的时间了然而一直不会.不过现在再回头来看发现其实也不是很麻烦首先在学
树链剖分
之前最好先把树形以及序这三个知识点学了如果这三个知识点没掌握好的话
树链剖分
难以理解也是当然的
Sherlock_n
·
2017-08-09 19:58
ACM-树链剖分
【BZOJ3626】LCA(
树链剖分
)
传送门LCAIthink%%%:(清华爷题解)考虑这样的一种暴力,我们把z到根上的点全部打标记,对于l到r之间的点,向上搜索到第一个有标记的点求出它的深度统计答案。观察到,深度其实就是上面有几个已标记了的点(包括自身)。所以,我们不妨把z到根的路径上的点全部+1,对于l到r之间的点询问他们到根路径上的点权和。仔细观察上面的暴力不难发现,实际上这个操作具有叠加性,且可逆。也就是说我们可以对于l到r之
Etta19
·
2017-08-08 17:09
树链剖分
树链剖分
模板题(luogu3384 【模板】
树链剖分
)
题目描述如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作:操作1:格式:1xyz表示将树从x到y结点最短路径上所有节点的值都加上z操作2:格式:2xy表示求树从x到y结点最短路径上所有节点的值之和操作3:格式:3xz表示将以x为根节点的子树内所有节点值都加上z操作4:格式:4x表示求以x为根节点的子树内所有节点值之和输入输出格式输入格式:第一行包含4个正整数N
forever_piano
·
2017-07-27 20:13
Codeforces Round #425 (Div. 2) D.Misha, Grisha and Underground
我奇特的脑回路的做法就是
树链剖分
+树状数组树状数组是那种区间修改,区间求和,还有回溯的当我看到别人写的是lca,直接讨论时,感觉自己的智商收到了碾压。。。
basasuya
·
2017-07-25 23:00
bzoj3289 树状数组+莫队
这是本蒟蒻的第一篇博客,在此手动庆祝一下~~其实今天本来想写一道
树链剖分
的题但是一直没过(蒟蒻的无奈)……所以只好写前几天莫队的题解啦这道题分为两个知识点,树状数组和莫队1。
五彩蒟蒻DDD
·
2017-07-21 21:25
莫队
树状数组
【BZOJ3531】旅行(线段树)
算法:线段树(动态开点)+
树链剖分
实现:对每一种c2(信仰)建立线段树,维护以之为信仰的城市的c1。Attention!
Etta19
·
2017-07-20 10:03
线段树
树链剖分
spoj-QTREE3 LCT
对于
树链剖分
的做法也很容易理解,就是剖分不停在向上爬的时候类似于二分查找去寻找第一个出
WJSZMRX
·
2017-07-08 10:46
线段树
经典问题
Splay
LCT介绍
LCT=link-cut-tree在
树链剖分
里我们把树按dfs序换成连续序列,再来解决树上两点间路径操作的问题。很明显,假如树的结构变了,那么原来的
树链剖分
就GG了。
WJSZMRX
·
2017-07-07 20:59
其它
经典问题
Splay
树链剖分
【知识点】+【模板】
知识点讲解链接简单模版QTREE-QueryonatreeYouaregivenatree(anacyclicundirectedconnectedgraph)withNnodes,andedgesnumbered1,2,3…N-1.Wewillaskyoutoperfromsomeinstructionsofthefollowingform:CHANGEiti:changethecostofth
qq_37383726
·
2017-06-13 22:00
结构的模版
线段树
树链剖分
bzoj 3862: Little Devil I (
树链剖分
+线段树)
题目描述传送门题目大意:给出一棵n个点的树,有三种操作。操作1:把x,y路径上所有边反色操作2:把x,y路径上所有相邻的边反色,即一个点在路径上操作3:询问x,y路径上黑边的个数。注意刚开始的时候所有边均为白色。题解操作1,3都是基本的操作,关键就是2.对于每个点维护这个点的轻儿子是否要反色。每次修改的时候直接区间修改即可。两条重链相连的轻边需要特判。路径的顶点到他父亲之间的边也需要特判。每次计算
clover_hxy
·
2017-06-06 08:00
线段树
树链剖分
上一页
10
11
12
13
14
15
16
17
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他