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
ACM-树链剖分
洛谷 P3313 [SDOI2014]旅行(
树链剖分
+线段树)
传送门这题是求固定路径上某固定宗教的评级最大值或和,由于我们知道树上路径是顺着链走的,我们可以用
树链剖分
使一条链上的编号连续,方便查询。
Dawn_LLLLLLL
·
2018-07-12 09:48
线段树
树链剖分
圆方树和广义圆方树学习小记
有了圆方树,什么树上的算法都可以套在仙人掌上了,比如说点分治、
树链剖分
、虚树等等。OI数据结构无穷无尽,只有你不会的,没有你想不到的。资料参见WC2017讲稿。圆方树:圆方树分为圆点和方点。
Cold_Chair
·
2018-07-05 21:56
模版
圆方树
[bzoj4855][Jsoi2016]轻重路径【
树链剖分
】【线段树】
【题目链接】https://www.lydsy.com/JudgeOnline/problem.php?id=4855【题解】考虑一个轻重路径剖分,当有一个新的节点被加入后,最多改变O(log)O(log)个路径的剖分。那我们考虑时间倒流每次加入一个节点,那么改变的只可能是这个点到根的轻边,对于每个轻边,拿它与当前重边比较。比较时先比较size,再比较下一个节点插进来的时间。由于是时间倒流,所以时
VanishD
·
2018-05-29 18:05
【线段树】
【树链剖分】
[SDOI2013]森林,洛谷P3302,主席树+启发式合并
明显要找lca,就想到了
树链剖分
。每次往上跳把当前这一段记录下来,很明显要开n棵前缀主席树。然后再让找出来的op个区间相减(right-(left-1)),变成op个区间和op个区间相减。
Deep_Kevin
·
2018-05-28 19:57
【SHOI2014/Luogu4332】三叉神经树
树链剖分
原题走这里首先我们定义节点的状态0,1,2,3分别代表该节点分别接收到0,1,2,3个信号。那么我们会发现,叶子节点的状态改变,会导致叶子节点到根的路径上一连串节点的状态改变。比如当某叶子节点到根的路径上,由叶子节点开始的若干个连续的节点均处于状态2,且该叶子节点处于激活状态,那么此时,如果我们改变这一叶子节点的状态,则从叶子节点开始,一路向根走,遇到的这些连续的2节点全部会变成状态1,此外还要对
CRTorlonia
·
2018-05-04 12:04
[SDOI2017]树点涂色(LCT,
树链剖分
,线段树)
Description给定一棵树。定义一条路径的权值是,这条路径上的点(包括起点和终点)共有多少种不同的颜色。要求支持三种操作:xx,把点xx到根节点的路径上的所有的点染上一种没有用过的新颜色;x,yx,y,求xx到yy的路径的权值;xx,在以xx为根的子树中选择一个点,使得这个点到根节点的路径权值最大,求最大权值。Solution对于操作11,可以发现它与LCTLCT中的accessaccess
DSL_HN_2002
·
2018-04-27 22:06
数据结构——动态树/LCT
数据结构——线段树
数据结构——树链剖分
bzoj3531: [Sdoi2014]旅行(
树链剖分
+线段树)
题目传送门。解法:据说叫动态开点。需要用的点才建线段树。那么最多只有二十万种不同的信息。。跟主席树一样嘛。YY就好了代码实现:#include#include#include#include#include#include#includeusingnamespacestd;structnode{intx,y,next;}a[210000];intlen,last[110000];voidins(i
Hanks_o
·
2018-04-22 16:30
树链剖分
线段树
BZOJ
算法学习链接+学习小结
,勿喷哦,%%%dalao【---------------------------------】0.csdn数学符号:#传送门【---------------------------------】1.
树链剖分
disPlayLzy_
·
2018-04-14 15:02
心得/总结/知识点
树链剖分
求LCA[模板] 超详细解释 + 代码
(题外话)虽然LCA最快不是
树链剖分
但由于想学于是刻苦钻♂研了下由于网上那些都是零零碎碎(这不是我的超链接)的自己通过东拼西凑(这也不是)加理解终于懂了然后以自己的理解再复述一遍~可谓是倾囊以授啦~(正篇
Frocean_拾月氷海
·
2018-04-10 13:45
数据结构
bzoj3626: [LNOI2014]LCA(离线处理+
树链剖分
)
题目传送门。解法:对于任意一个询问:lrz对于任意一个点来说。他对答案的贡献实际上是LCA(i,z)的深度。也就是lca到根的点数。那么我们可以每个点到根的路径都加1。然后询问下z到根的路径上的答案总和其实就是答案啊。显然可以分成两个区间,一个1到l-1,一个1到r。l到r的答案用两个答案相减,正确性显然。那么离线处理。把每个操作都分成两个区间。然后分别按照右端点排序。把每个点到路径的点都加1。然
Hanks_o
·
2018-03-20 16:38
树链剖分
BZOJ
BZOJ4515: [Sdoi2016]游戏-
树链剖分
+超哥线段树
传送门题意:Alice和Bob在玩一个游戏。游戏在一棵有n个点的树上进行。最初,每个点上都只有一个数字,那个数字是123456789123456789。有时,Alice会选择一条从s到t的路径,在这条路径上的每一个点上都添加一个数字。对于路径上的一个点r,若r与s的距离是dis,那么Alice在点r上添加的数字是a×dis+b。有时,Bob会选择一条从s到t的路径。他需要先从这条路径上选择一个点,
Fizzmy
·
2018-03-18 19:34
线段树
[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
树状数组
上一页
12
13
14
15
16
17
18
19
下一页
按字母分类:
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
其他