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-树链剖分
树链剖分
学习小记
简介
树链剖分
,又叫轻重链剖分,是一种对树进行划分的方法。被划分后的每个点只会属于一条链上。这有什么作用呢?这就相当于把一个树上问题映射到了区间上,变成了一个在一个序列上的问题。
chickenT
·
2020-07-14 18:15
算法学习
树剖
信息学
树剖
Codeforces 504E Misha and LCP on Tree
树链剖分
+后缀数组
题意给一棵树,每个节点上有一个字符。每次询问a到b的路径组成的字符串和c到d的路径组成的字符串的lcp。n#include#include#include#include#includeusingnamespacestd;constintN=300005;intn,s[N*2],dep[N],fa[N],size[N],p1[N],p2[N],cnt,last[N],b[N*2],c[N*2],d
SFN1036
·
2020-07-14 18:40
树链剖分
后缀数组
codeforces 593D
树链剖分
题目链接新地址链接给出一棵树,每棵树有value值,两种操作:1uvx,用x依次除以u到v路径上的数,然后输出x,2px,把第p条边的权值改为x.直接
树链剖分
,然后用线段树维护乘积即可。
吃掉吃掉
·
2020-07-14 15:03
ACM
codeforces 733F (
树链剖分
RMQ)
题目链接:点击这里题意:给出一个图,每条边有权值和花费c,每次花费c能使的权值-1。给出一个预算,求减完权值后的一个最小生成树。观察到最优的策略必然是只减少一条边的权值。于是首先先将初始权值做一次最小生成树。然后枚举所有的边,如果这条边是生成树的边,求出预算都花在这条边上的结果;如果非树边,就在这条边两个点到他们的LCA路径上求出树边的最大值,这个最大值用轻重链剖分维护,(也可以往上倍增)树链上无
morejarphone
·
2020-07-14 15:21
树链剖分
RMQ
CodeForces343D.Water Tree(
树链剖分
)
D.WaterTreetimelimitpertest4secondsmemorylimitpertest256megabytesMadscientistMikehasconstructedarootedtree,whichconsistsofnvertices.Eachvertexisareservoirwhichcanbeeitheremptyorfilledwithwater.Thevert
Fxkkks
·
2020-07-14 12:35
CodeForces
水
树链剖分
线段树
树链剖分
(SPOJ-QTREE)(模板)
对于这种查询树链,修改树边的问题,我们可以使用
树链剖分
。首先处理出重边和轻边:①u和son[u]为重边,当且仅当son[u]是u的所有点中,其子树点数最多的。②不是重边的边为轻边。
jinglinxiao
·
2020-07-14 12:26
模板
树链剖分
ACM-
大数阶乘末尾零的个数
新浪博客发表时间--2009-07-2621:56:18阶乘末尾0的个数有一个题目说的是求100的阶乘末尾有多少个0.题解中给出的讲解提到,一个数n的阶乘末尾有多少个0思路:一个数n的阶乘末尾有多少个0取决于从1到n的各个数的因子中2和5的个数,而2的个数是远远多余5的个数的,因此求出5的个数即可.题解中给出的求解因子5的个数的方法是用n不断除以5,直到结果为0,然后把中间得到的结果累加.例如,1
iteye_1503
·
2020-07-14 12:39
洛谷P2420 让我们异或吧 (
树链剖分
法)
题面给出N#include#include#include#include#includeusingnamespacestd;intA[100005];//用前缀和维护的数组intpreA[100005];//A前缀和intB[100005];//原数组,经过dfs序映射后得到Avoidsswap(int&a,int&b){intt=b;b=a;a=t;}classTree_Chain{priva
engineoid
·
2020-07-14 10:57
#
树
hdu 3966(
树链剖分
)
Aragorn'sStoryTimeLimit:10000/3000MS(Java/Others)MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):9622AcceptedSubmission(s):2535ProblemDescriptionOurprotagonististhehandsomehumanprinceAragornco
真的好难
·
2020-07-14 07:49
数据结构
树链剖分
讲解
树链剖分
入门讲解问题导入当我们做题目的时候,往往会有一些题目是给定一颗树,并对这颗树做一堆蛇皮怪物般的操作的。
a6823202
·
2020-07-14 07:43
[Codeforces487E]Tourists(Tarjan+
树链剖分
+STL)
======这里放传送门======题解这题的意思是给一个无向图,求从某个点到某个点中间不经过重复点能够到达的所有点的点权最小值,还要支持修改某个点的点权。因为不能重复到达点,所以当它在某个点的时候,和这个点属于同一个点双联通分量的点肯定全都能用来统计答案。而因为点双缩点以后是一棵树,所以如果能把每个点双缩点,点权设置为它里面所有点的最小值,那么直接跑链剖就可以了然而把点双摘出来然后编号然后统计点
FromATP
·
2020-07-14 04:30
Codeforces
杂七杂八的图论
不知道加什么形容词的树链剖分
STL大法好
[
树链剖分
线段树] Codeforces 860E. Arkady and a Nobody-men
按照深度从小大加入,就是一个很典型的熟练剖分加线段树实现路径修改、询问的模型复杂度是O(nlog2n)最后一个点加个标记永久化、记忆化什么的卡一卡才能过…#include#include#include#include#include#include#include#include#include#include#definefifirst#definesesecondusingnamespace
LowestJN
·
2020-07-14 04:30
线段树
树链剖分
CodeForces 343D(
树链剖分
+线段树)
MadscientistMikehasconstructedarootedtree,whichconsistsofnvertices.Eachvertexisareservoirwhichcanbeeitheremptyorfilledwithwater.Theverticesofthetreearenumberedfrom1tonwiththerootatvertex1.Foreachverte
剪云 者
·
2020-07-14 02:33
数据结构
线段树
树链剖分
HDU - 5390 tree 线段树套字典树 (看题解)
HDU-5390看到的第一感觉就是
树链剖分
+线段树套字典树,感觉复杂度不太对。其实这种路径其实很特殊,一个点改变只会影响它儿子到根的路径,并且这种求最优值问题可以叠加。
weixin_30266885
·
2020-07-13 16:07
[
树链剖分
] HDU 5893 List wants to travel
Listwantstotravel题意:给一棵树,每条边有个颜色,两种操作:Changeabc,把a到b的简单路径的边颜色变成cQueryab,查询a到b的简单路径有多少段颜色,连续相邻的同色边算一段。思路:先建立树剖然后用线段树维护,记录一个区间内的颜色段数,最左颜色和最右颜色,然后就可以区间合并了,需要注意合并的顺序,没想清楚很容易就wa了,我想的是总是按查询的时间顺序把区间挨个接起来,最后合
kg20006
·
2020-07-13 06:16
ACM
题解
[
树链剖分
+MST] CF609E. Minimum spanning tree for each edge
题目链接:Minimumspanningtreeforeachedge题意:给一个无向图,n个点,m条边,对任意边edge[i],求出包含有边edge[i]的最小生成树。做法:考虑MST的性质,对任意两点u,v一定有且只有一条路径,当边[u,v]不是MST边的时候,加入边[u,v]便会形成环,于是在u到v的路径上找一条权值最大的边删去再加入边[u,v],之前环上的任意两点仍然连通。u到v路径的最大
kg20006
·
2020-07-13 06:45
ACM
题解
九存将参加
ACM-
国际超级计算大会(ICS 2018大会)
【编者PeterYe按】很荣幸能够和我的前东家VMware一道,做为九存的一员,参加ACMICS2018大会。下面转载来自微信公众号“九存区块链存储”的全文。---Begin---ACM(AssociationforComputingMachinery,美国计算机协会)是一个国际性的科技教育组织,创立于1947年,是世界上第一个科学性及教育性计算机学会,总部设在美国纽约。截止2018年,ACM已经
乐生活与爱IT
·
2020-07-13 01:11
模板
树链剖分
BFS版本
//点和线段树都从1开始//边使用vectorvectorG[maxn];intdfs_clock,que[maxn*2],num[maxn],iii[maxn],b[maxn],a[maxn],top[maxn],deep[maxn],fa[maxn],idx[maxn];//采用静态链表//a[i]是初始时树上每个点的权值//b[i]是经过bfs后每个点的权值//idx[i]是每个点在全局线段
weixin_34112208
·
2020-07-12 08:14
树链剖分
讲解及总结(重链剖分+长链剖分)
树链剖分
是解决树上问题的一种常见数据结构,对于树上路径修改及路径信息查询等问题有着较优的复杂度。
JhonXie
·
2020-07-12 08:18
P3384 【模板】
树链剖分
P3384【模板】
树链剖分
题目描述如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作:操作1:格式:1xyz表示将树从x到y结点最短路径上所有节点的值都加上z操作2:
weixin_34075551
·
2020-07-12 08:46
树上问题
所以好多地方直接粘过来了qwq目录
树链剖分
重链剖分树剖求LCA升华树上差分各种树上问题
树链剖分
所谓
树链剖分
,就是将树上的边进行划分。
树链剖分
有重链剖分,长链剖分,实链剖分等等。
Vanyun
·
2020-07-12 08:00
洛谷 P2590 [ZJOI2008]树的统计(线段树,
树链剖分
)
传送门解题思路关于两点之间的最短距离的区间操作,很显然是
树链剖分
。因为既有区间和还有区间最大值,所以我们建立两个线段树。然后就是树剖的常规操作了。
尹昱钦
·
2020-07-12 00:00
SPOJ375——Query on a tree(
树链剖分
模板详解以及入门)
Youaregivenatree(anacyclicundirectedconnectedgraph)withNnodes,andedgesnumbered1,2,3...N-1.Wewillaskyoutoperfromsomeinstructionsofthefollowingform:CHANGEiti:changethecostofthei-thedgetotiorQUERYab:askf
say_c_box
·
2020-07-11 22:42
算法
线段树
数据结构
暑假训练+个人复习
SPOJ
算法
数据结构
树链剖分
什么错都改的错题集
2、
树链剖分
板子1>给dalao们讲题的时
_Destiny
·
2020-07-11 21:00
树链剖分
详解【后期会不断更新】
如果有不会的请点这里:线段树系列文章(未完)何谓
树链剖分
?就是将一棵树分成许多条链,使得树中所有节点都被包含在这些链里。(换句话说:就是一种使你的代码瞬间增加1KB的算法。)#怎么剖分?
LZRcqbz
·
2020-07-11 18:08
#
树链剖分
树链剖分
详解
树链剖分
定义只是把一棵树拆成链来处理而已,即将树上的某些段一起通过数据结构优化进行处理来降低复杂度。
77458
·
2020-07-11 15:43
ACM-原理讲义
树链剖分
之重链剖分 详解 题目整理
树链剖分
题目中出现的
树链剖分
一般分为两种,重链剖分和长链剖分重链剖分:选择子树最大的儿子,将其归入当前点所在的同一条重链长链剖分:选择向下能达到的深度最深的儿子,将其归入当前点所在的同一条长链重剖主要用于维护子树信息和链信息
qcwlmqy
·
2020-07-11 14:36
数据结构
【洛谷】3384 【模板】
树链剖分
题目传送门这题就是模板的
树链剖分
,因为题目已经说得很清楚了。
Chester_King
·
2020-07-11 12:41
洛谷
树链剖分
难题
树链剖分
原文地址:
树链剖分
作者:starszys“在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——
树链剖分
。
laziercs
·
2020-07-11 10:37
数据结构
acm学习资料
模板综合
文章目录图论割点&\&&割边点双连通分量边双联通分量数据结构
树链剖分
换根ST表左偏树FHQ_TreapLCT字符串AC自动机SAMPAM数论exCRTBSGS高斯消元二次剩余图论割点&\&&割边source
forever_dreams
·
2020-07-11 06:11
#
总结
对LCA、树上倍增、
树链剖分
(重链剖分&长链剖分)和LCT(Link-Cut Tree)的学习
LCAwhatisLCA&whatcanLCAdoLCA(LowestCommonAncestors),即最近公共祖先在一棵树上,两个节点的深度最浅的公共祖先就是LCALCALCA(自己可以是自己的祖先)很简单,我们可以快速地进入正题了下图中的树,444和555的LCALCALCA为2,111和333的LCALCALCA是1(1也算1的祖先)除了是直接求两点的LCALCALCA的模板题,没有题目会
路人黑的纸巾
·
2020-07-11 05:44
树上倍增
树链剖分
LCA
LCT
算法
数据结构
树链剖分
-入门题目
Queryonatree题目链接:http://vjudge.net/problem/SPOJ-QTREE题目大致意思就是:给你一棵树,有连个操作:●第一个是查询任意两个不同节点上的最短路径上的最大权边!●第二个操作修改某一条边的权值;对于一棵树,数的深度如果很大,那么每次查询两个叶子节点,时间复杂度还是很高的。所以我们就把树分成一条一条的树链,所谓树链就是:沿着树的一条路径。得到路径后,我们可以
Code--Dream
·
2020-07-11 00:01
题解
模板
算法
P3384 【模板】
树链剖分
题目描述如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作:操作1:格式:1xyz表示将树从x到y结点最短路径上所有节点的值都加上z操作2:格式:2xy表示求树从x到y结点最短路径上所有节点的值之和操作3:格式:3xz表示将以x为根节点的子树内所有节点值都加上z操作4:格式:4x表示求以x为根节点的子树内所有节点值之和输入输出格式输入格式:第一行包含4个正整数N
Enjoy_process
·
2020-07-10 23:52
数据结构
树链剖分
算法#definelsl,m,rtg[N];//邻接表intcnt;//dfs标号intf[N];//保存结点u的父亲节点intd[N];//保存结点u的深度值intsize[N];//保存以u为根的子树节点个数intson[N];//保存重儿子intrk[N];//保存当前dfs标号在树中所对应的节点intid[N];//保存树中每个节点剖分以后的新编号(DFS的执行顺序)inttop[N];/
Enjoy_process
·
2020-07-10 23:52
数据结构
[SPOJ2798]QTREE3——[
树链剖分
]
【题目描述】给出N个点的一棵树(N-1条边),节点有白有黑,初始全为白。有两种操作:0i:改变某点的颜色(原来是黑的变白,原来是白的变黑)1v:询问1到v的路径上的第一个黑点,若无,输出-1【输入格式】第一行N,Q,表示N个点和Q个操作第二行到第N行N-1条无向边再之后Q行,每行一个操作”0i”或者”1v”(1≤i,v≤N).【输出格式】对每个1v操作输出结果SampleInputSampleIn
KajKeusaka
·
2020-07-10 22:08
树链剖分
[模板]
树链剖分
讲真sublime挺好用的。//Stayfoolish,stayhungry,stayyoung,staysimple#include#include#include#definelsnow>1;node[ls].val+=node[now].lazy*(mid-l+1);node[rs].val+=node[now].lazy*(r-mid);node[now].lazy=0;}voidbuil
Gh0stCai
·
2020-07-10 21:54
树
模板
树剖
树链剖分
模板
啃了好久,终于把
树链剖分
给啃下来了前置知识:dfs序,lca,线段树等算法思想:把树拆成一条一条的链,然后用数据结构维护。首先定义几个概念:子树大小:以某一节点为根节点的子树中节点的总数,包括该点。
DyingShu
·
2020-07-10 21:30
模板
树链剖分
【整合】
树链剖分
模板(线段树维护)
原题是SDOI2011染色反正链剖都长得差不多不一样的就是线段树根据题自己在查询和修改里改一改就好了跟着黄学长学的倍增记录祖先的写法,和网上不太一样求不喷注释棒棒哒代码又长跑的也不快我也是醉了注释代码根据题目不同自己修改#include#include#include#include#include#defineMAXINT0x7fffffff#defineMAXN100010#definelch
CreationAugust
·
2020-07-10 21:22
随便搞搞
树链剖分
模板
//test洛谷模板题#includeusingnamespacestd;typedeflonglongll;typedefpairpiir;constintmaxn=1e5+5;intn,m,r,mod;llwt[maxn],w[maxn];structnode{intv,next;}e[maxn*2];inthead[maxn],tot;voidinit(){tot=0;memset(head
ordinarv
·
2020-07-09 21:49
模板自用
2018牛客国庆集训派对Day6 I 清明梦超能力者黄YY(
树链剖分
)
传送门题意:中文思路:既然求倒数第k次染为什么颜色,那就倒着染色,染到第k次就标记下。所以我们可以用线段树来维护每个点被更新的次数,维护一条链上的节点被更新过的次数的最大次数。当一个区间的最大被更新次数超过k时,我们再暴力往下去找具体区间,对答案进行更新,对一个节点的答案更新完之后就将其的值设为负无穷大。由于每个点算答案的时候都只会被算到一次,所以整体的复杂度应该是O(n*logn*logn)。注
ordinarv
·
2020-07-09 21:49
树链剖分
ACM-
威佐夫博弈之取(2堆)石子游戏——hdu2177
取(2堆)石子游戏TimeLimit:3000/1000MS(Java/Others)MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):932AcceptedSubmission(s):557ProblemDescription有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一
ltree98
·
2020-07-09 20:14
ACM-博弈
漫漫刷题路
ACM
威佐夫博弈
取2堆石子游戏
hdu2177
hdu1527进阶
ACM-
进制转换
在做题的时候,遇到好多题目都是有关进制间的转换的,所以花点时间整理一下。具体的进制之间的转换方法,一般计算机书籍上都有,无非是基数与权值的讨论,只是将它们写成程序时有点费时。所以下面就直接给出一份比较简洁的模版:constintMAXN=1000;intt[MAXN],A[MAXN];charOldData[MAXN],NewData[MAXN];//转换前、后的数据intolds,news;//
潜水的疯
·
2020-07-08 09:35
ACM-专题-数学
BOJ Season Autumn, 2012
from=0101010202&ref=hotnewsfeed&sfet=102&fin=0&ff_id=256603565#nogoA怎么乱搞都能过…标程是用
树链剖分
写的,然后通过的代码有dfs序列的
夏天的风
·
2020-07-08 04:58
ACM
专题·
树链剖分
【including 洛谷·【模板】
树链剖分
一、重链与重儿子所谓树剖——
树链剖分
,就是赋予一个链的概念来优化一些或者说是应对一些操作的,所以相应的会有一些专用的概念定义。一个节点的重儿子,为其更大的一颗子树的根节点。
樱狸❀
·
2020-07-08 02:24
树型结构
树链剖分
ACM-
区间调度问题
//有m项工作每项工作分别在Si时间开始,在Ti时间结束。//对于每项工作你都可以选择参与与否。如果选择参与//那么自始至终都必须全程参与,此外参与工作的时间端不能//重叠(即使是开始的瞬间的重叠也是不允许的)//input//n=5//s={1,2,4,6,8}//t={3,5,7,9,10}//output//3#include"cstdio"#include"iostream"#includ
csx0987
·
2020-07-07 06:10
ACM
ACM-
硬币问题
//有1元,5元,10元。50元,100元,500元的硬币各C1,C5,C10,C100//C500枚。现在要用这些硬币来支付A元,最少需要多少枚硬币?假定//本题至少存在一种支付方案//input//C1=3,C5=2,C10=1,C50=3,C100=0,C500=2,A=620//output//6#include"cstdio"intC[6];constintV[6]{1,5,10,50,
csx0987
·
2020-07-07 06:10
ACM
洛谷3178 [HAOI2015]树上操作(树上树状数组-改段求段)(线段树)
题解1
树链剖分
裸啊!对于子树操作,最合适的结构就是dfs序了,恰好
树链剖分
就是带重边的dfs序。接下来自己yy吧。题解2树状数组-改段求段+线段树类似树状数组改段求段的思想,给每个节点开
逐梦起航-带梦飞翔
·
2020-07-06 20:44
线段树
树状数组
刷题之路
NOIP 考前日记
数论要加油qwq10.3今天依旧是考的很炸的一天23333下午听大佬讲
树链剖分
的启发式合
LaLaLa112138
·
2020-07-06 11:33
总结
C++经典算法
前方含精量高能)目录一.数论二.容斥专题三.图论&搜索四.DP&递推五.总结六.单调队列&栈七.树状数组八.线段树九.STL十.矩阵加速专题十一.高级搜索十二.最近公共祖先LCA十三.2019暑假篇十四.
树链剖分
十五
PI_PJW
·
2020-07-06 05:46
总结
ACM-
字符串完全总结(知识点+模板)
目录常用STL方法manacher算法字符串HashKMP4.1普通KMP4.2扩展KMPTrie(字典树)5.1字典树5.101字典树自动机6.1AC自动机6.2AC自动机上的动态规划6.3回文自动机(回文树)后缀数组7.1后缀数组的常见用法后缀自动机(SAM)注意1.对于字符串问题,最好使用char[]来存储,不要用string,否则可能会占用大量内存及减低速度2.strlen(char[])
Ogmx
·
2020-07-06 04:54
ACM常用模板
算法完全解析
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
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
其他