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
dfs序&树链剖分
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
CodeForces - 841D Leha and another game about graph 构造(dfs + 思维)
思路:首先我们考虑一条边都不选的情况,此时所有d[i]==0的i都满足了题目要求,此时如果有d[i]==1的点,我们就要加一条边,我们考虑用dfs维护这个过程,在
dfs序
形成的搜
WA是一笔财富
·
2020-07-14 14:57
codeforces
各种思维题
dfs
构造
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
模板
树链剖分
洛谷P2420 让我们异或吧 (
树链剖分
法)
include#includeusingnamespacestd;intA[100005];//用前缀和维护的数组intpreA[100005];//A前缀和intB[100005];//原数组,经过
dfs
engineoid
·
2020-07-14 10:57
#
树
HDU-3974-Assign the task(线段树维护
dfs序
)
题目链接:HDU-3974-Assignthetask题意是给定一棵树,然后一种操作是指定一个点,这个点及这个点的的子树被染色,另一种操作是指定一个点,问这个点的颜色。可以通过dfs树将这棵树放在线段上,记结点u在线段上的位置是pos[u],以结点u为根的子树的结点总数是cnt[u],那么在每次染色就是染色线段上pos[u]~pos[u]+cnt[u]-1这段区间。然后用线段树维护就行了。#inc
abcd12341abcd1234
·
2020-07-14 07:19
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
dfs序
+线段树--青出于蓝胜于蓝
https://nanti.jisuanke.com/t/20690武当派一共有nn人,门派内nn人按照武功高低进行排名,武功最高的人排名第11,次高的人排名第22,...武功最低的人排名第nn。现在我们用武功的排名来给每个人标号,除了祖师爷,每个人都有一个师父,每个人可能有多个徒弟。我们知道,武当派人才辈出,连祖师爷的武功都只能排行到pp。也就是说徒弟的武功是可能超过师父的,所谓的青出于蓝胜于蓝
Falling~
·
2020-07-14 05:16
线段树&树状数组&RMQ
二叉树&树
CodeForces 877E Danil and a Part-time Job (
dfs序
+线段树)
K-DanilandaPart-timeJobCodeForces-877EDanildecidedtoearnsomemoney,sohehadfoundapart-timejob.Theinterviewhavewentwell,sonowheisalightswitcher.Danilworksinarootedtree(undirectedconnectedacyclicgraph)wit
The_Moth
·
2020-07-14 05:15
dfs序
codeforces
dfs
[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
线段树
树链剖分
青出于蓝
dfs序
+树状数组
题目来源:蓝桥杯2018模拟武当派一共有n人,门派内n人按照武功高低进行排名,武功最高的人排名第1,次高的人排名第2,...武功最低的人排名第n。现在我们用武功的排名来给每个人标号,除了祖师爷,每个人都有一个师父,每个人可能有多个徒弟。我们知道,武当派人才辈出,连祖师爷的武功都只能排行到p。也就是说徒弟的武功是可能超过师父的,所谓的青出于蓝胜于蓝。请你帮忙计算每个人的所有子弟(包括徒弟的徒弟,徒弟
A_Pathfinder
·
2020-07-14 03:08
例题
树形结构
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
题解
[2016北京集训测试赛15]statement-[线段树+拆环]
假如是树形结构,所有的t[i]就直接在线段树t[i]点的
dfs序
(即in[t[i]],out[t[i]]区间)处记录t[i]点的深度。
diancao3075
·
2020-07-12 21:50
对tarjan缩点/求割点/求桥的理解
不适合初学者,适合复习缩点dfn[i]dfn[i]dfn[i]就是一个dfsdfs
dfs序
。
良月澪二
·
2020-07-12 17:38
Tarjan
割点
Tarjan缩点
由于Tarjan通常是嵌套在其他题中,所以给个求
dfs序
时候的模板吧~proceduredfs(u:longint);begindfn[u]:=time;inc(time);low[u]:=dfn[u]
wuzhuangtai00
·
2020-07-12 16:15
Tarjan缩点
2014
模板
模板
树链剖分
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
Tarjan模板 人工栈版Tarjan
引入tarjan算法有两个最重要东西dfn[x]表示x的
dfs序
low[x]表示x以及x能连到的点中(包括间接连到的)最小的dfn还有两个标记一个表示是否访问过一个为是否在当前的栈中求解low何时能更新呢设当前点为
Jacky35
·
2020-07-12 02:10
模板库
Tarjan
模板库
洛谷 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
算法
数据结构
树链剖分
kosaraju 和 tarjan算法详解(强连通分量)
每个结点的结束时间和开始时间是
dfs序
,开始时间是此点第一次被遍历到时,结束
qq_43842119
·
2020-07-11 21:55
图
Kosaraju算法、强连通图(例C-班长竞选
目录强连通图
DFS序
Kosaraju算法例:班长竞选强连通图什么是强连通图?
咔嗒i咛
·
2020-07-11 21:49
C++语言程序
什么错都改的错题集
2、
树链剖分
板子1>给dalao们讲题的时
_Destiny
·
2020-07-11 21:00
sdwc2019 可爱的Mys_C_K小学妹的爆裂摧毁好题
题意:nnn个点m条边的无向连通图
dfs序
计数,对998244343998244343998244343取模。
cjc030205
·
2020-07-11 20:57
题目
状压
状态设计
数数
dp
连通性
状压
数数
状态设计
割点与桥与缩点(tarjan)
割点:若删除该点,图不连通,则该点为割点桥:若删除该边,图不连通,则该边为桥如何求割点:Tarjan算法,一次dfs遍历:对每个点,记录
dfs序
为dfn[],low值为low[](low初始值与dfn相同
green_wang_
·
2020-07-11 19:07
树链剖分
详解【后期会不断更新】
如果有不会的请点这里:线段树系列文章(未完)何谓
树链剖分
?就是将一棵树分成许多条链,使得树中所有节点都被包含在这些链里。(换句话说:就是一种使你的代码瞬间增加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
#
总结
2019/11/12 校内模拟
std的解释:我们用这些字符串构建出一棵字典树,我们发现,按照字典树的任意一种dfsdfs
dfs序
输出字符串都可以获得一个合法的答案。简单起见,我们直接按字典序输出字符串即可。
forever_dreams
·
2020-07-11 06:10
#
校内模拟
对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
算法
数据结构
Tarjan [割点, 缩点, 桥(待填坑)]
$缩点(点双)$$相关例题$割点割点割点删除这个点后,图的联通块数量变多.DFSDFSDFS时,设当前点为kkk,low[]low[]low[]为最高祖先,dfn[]dfn[]dfn[]为dfsdfs
dfs
Zbr162
·
2020-07-11 00:00
图论-Tarjan
树链剖分
-入门题目
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
随便搞搞
上一页
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
其他