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序
「学习笔记」树相关算法
dfs序
系列2-
dfs序
:dfs进出的时候给一个点,给一个+1和-1系数。可以表示根到点的链信息。
hfhongzy
·
2019-10-02 18:00
bzoj1036 树的统计 树链剖分模板
重儿子就是点最多的那个子树,其余都是轻儿子),用一个son数组指向每个节点的重儿子2、对树进行第二次dfs,对于所有的重儿子,求出他的top节点也就是每个重儿子沿着重链可以到达的最远的那个祖先,然后维护
dfs
CUPXSR
·
2019-10-02 16:00
模拟51 题解
原文链接:http://www.cnblogs.com/skyh/p/11599278.htmlA.Tree可以发现,在开始时以1为根处理出
dfs序
。
baobi9210
·
2019-09-27 17:00
Codeforces 1192B 全
dfs序
+ 线段树
思路:来源于:https://www.cnblogs.com/TinyWong/p/11260601.html得到树的全序
dfs序
之后,我们考虑用线段树维护x-2*y+z。
维和战艇机
·
2019-09-19 18:00
数链剖分总结
前置知识:以线段树为代表的各种强大的数据结构;
dfs序
(化树形为线性)学习前先了解一些新概念:重
千叶繁华
·
2019-09-18 17:00
【支配树模板】
下面介绍一下一般有向图的支配树构建方法:下面化还是一些名词解释:1.dfs树:从图的一个点S开始dfs整张图,可以提取出一颗dfs树,并且记x的
dfs序
为dfn[x]。
ACgay_caoyue
·
2019-09-17 18:12
算法模板
2019.09.13【NOIP提高组】模拟 A 组
我们考虑在
dfs序
上dp。设f[i][j]表示到
dfs序
上的第i个点时,1~i经过了j条左边的方案数。
chiyankuan
·
2019-09-16 21:58
【NOIP提高组】模拟A组
排序+并查集——cf1213F
/*有向边(pi,pi+1),形成链后进行dfs,求出
dfs序
一个联通块内的元素必须是同一个字符,如果最后的联通块个数usingnamespacestd;#defineN200005intn,k,p[N
zsben
·
2019-09-11 21:00
CTSC2016 时空旅行
由于每个节点的操作对子树生效,而子树的
DFS序
是连续的,所以可以对
DFS序
做线段树分治。区间修改操作可以在DFS的同时解决,主要就是递归和回溯之前的操作,具体见代码。然后由于修改互相独立,所以可以
autoint
·
2019-09-10 08:00
树链剖分学习笔记
对于一条重链上的点,他们的
dfs序
是连续的,对与一
文雨淋
·
2019-09-04 13:00
Educational Codeforces Round 71 G.Indie Album(ac自动机+
dfs序
线段树维护fail树)
输入一颗字典树,之后m个查询,每个查询给出一个串,问这个串在字典树某一个节点代表的串中出现了多少次。一个串在另一个串中出现了多少次是sam的基操,但是这里输入了一颗字典树,4e5个节点,于是后缀自动机维护的难度和复杂度就变得巨大,分析了一下,似乎是不可做的。久违的用了一次ac自动机来解决一个串在另一个串里出现了多少次的问题,只需要建出fail树,这个问题就变成了一个串的链有多少个节点在另一个串的子
Cymbals
·
2019-08-28 22:22
ACM
AC自动机
Educational Codeforces Round 71 G.Indie Album(ac自动机+
dfs序
线段树维护fail树)
输入一颗字典树,之后m个查询,每个查询给出一个串,问这个串在字典树某一个节点代表的串中出现了多少次。一个串在另一个串中出现了多少次是sam的基操,但是这里输入了一颗字典树,4e5个节点,于是后缀自动机维护的难度和复杂度就变得巨大,分析了一下,似乎是不可做的。久违的用了一次ac自动机来解决一个串在另一个串里出现了多少次的问题,只需要建出fail树,这个问题就变成了一个串的链有多少个节点在另一个串的子
Cymbals
·
2019-08-28 22:22
ACM
AC自动机
Ka Chang(树上分块+
dfs序
+线段树)
题意链接:https://nanti.jisuanke.com/t/A1998给出一个有根树(根是1),有n个结点。初始的时候每个结点的值都是0.下面有q个操作,操作有两种,操作1.将深度为L(根节点深度为0)的点的值全部增加X。操作2.查询以x为根的子树的结点值得和。其中N,Qblock。对于情况1:更新操作我们可以暴力,因为block我是取的sqrt(n),那么更新的复杂度最坏也是O(qlog
swineherd_MCQ
·
2019-08-27 18:00
cf1039D 分块
复杂度\(O(nlogn+n\sqrt{n}logn)\)递归会被卡,所以要记录
dfs序
然后循环代码#include#include#includeusingnamespacestd;constint_
复杂的哈皮狗
·
2019-08-24 20:00
芝士清单
(强联通分量,割点,缩点,割边,LCA)(已降序排序)数学(约数,组合(Lucas,卡特兰数等),欧拉函数,期望,逆元,同余,中国剩余定理,扩欧,Mobius反演)(一点不会)倍增离散化扫描线树上差分
dfs
Y15BeTa
·
2019-08-24 11:00
树链剖分
前言:首先,在学树链剖分之前最好先把LCA、树形DP、
DFS序
这三个知识点学了emm还有必备的链式前向星、线段树也要先学了。如果这三个知识点没掌握好的话,树链剖分难以理解也是当然的。
SeanOcean
·
2019-08-03 18:00
【填坑】树链剖分个人理解(2019.8.8)
总的来说,树链剖分是把树结构分成不同的链,将树上路径、子树等问题转化为链上问题进行解决,比如
dfs序
就是一种将子树转化成链的
AnKh_Ezra
·
2019-08-02 18:13
算法学习笔记
NOIp训练 子串查找VII(树剖+ac自动机+
dfs序
+bit套主席树)
传送门题意:有一棵nnn个点的无根树,第iii个点上有一个字符串sis_isi作为编号和一个权值viv_ivi,现在有mmm次强制在线的询问/修改。询问:给出一个字符串SSS和一条路径(u,v)(u,v)(u,v),路径上iii点的贡献是sis_isi在SSS中出现次数*viv_ivi,问总贡献。时间复杂度:O(nlog3n),∑∣si∣,∑∣S∣,n,mO(nlog^3n),\sum|s_i|,
SC.ldxcaicai
·
2019-07-17 19:24
#
树链剖分
#
主席树
#
树状数组
#
dfs序
#
ac自动机
【NOI2019模拟2019.6.20】ichi(kruskal重构树+KD-tree)
满足路径最小值>=d的点同样在kruskal重构树的一个子树里,也用
dfs序
搞搞。那么就是个三维偏序问题,考虑到这题卡空间,最好写的
Cold_Chair
·
2019-06-21 21:51
K-D
tree
【NOI2019模拟2019.6.20】ichi(kruskal重构树+KD-tree)
满足路径最小值>=d的点同样在kruskal重构树的一个子树里,也用
dfs序
搞搞。那么就是个三维偏序问题,考虑到这题卡空间,最好写的
Cold_Chair
·
2019-06-21 21:51
K-D
tree
POJ - 3321 树状数组+
dfs序
Thereisanappletreeoutsideofkaka'shouse.Everyautumn,alotofappleswillgrowinthetree.Kakalikesappleverymuch,sohehasbeencarefullynurturingthebigappletree.ThetreehasNforkswhichareconnectedbybranches.Kakanum
Chter0
·
2019-05-27 16:16
poj1330 Nearest Common Ancestors(lca模板题)
题目T组样例,N(2v后,询问一组u和v的lca思路来源《挑战程序竞赛》P330-331题解lca裸题,用RMQ+ST就好了,其实倍增也是应该掌握的由于只有一组询问,所以预处理欧拉序dfnid用来记录
dfs
Code92007
·
2019-05-02 19:53
【
DFS序
+线段树】CF1132G Greedy Subsequences
【题目】CF给定一个长度为nnn的序列aaa,问每个长度为KKK的连续区间的最长贪心上升子序列有多长。贪心上升子序列是指每个数找到它后面第一个比它大的数作为后继子序列。n≤106n\leq10^6n≤106【解题思路】开始看错题了,以为就是区间最长上升子序列,然而正确的题目似乎性质更显然了。我们按题意进行连边会形成一个森林,再新建一个节点作为超级根。那么实际上对于每个询问的区间来说,对应了树上的一
Dream_Lolita
·
2019-04-27 11:13
数据结构-线段树
阿狸的打字机 Trie fail树+树状数组+
dfs序
https://ac.nowcoder.com/acm/problem/17633题意就不说了,那上面说得很清楚了;这道题最暴力的办法就是,每个字符串都跑next数组,然后kmp匹配,数据很小的时候,可以这样,但不过这道题就不能了,太暴力了。所以我们还是想想Trie(AC自动机吧),这道题用到了一个很有用的结论,我觉得这个结论在字符串配中还是很重要的T串为S串的子串,当且仅当T是S的某一个前缀的后
KXL5180
·
2019-04-25 21:37
ACM题解
数据结构
Codeforces 588E 树上主席树+Lca
对
dfs序
建一个主席树,那么对于每个询问答案就是$sum[u]+sum[v]-sum[lca(u,v)]-sum[fa[lca(u,v)]]$之后就不难了,实现起来比较复杂,不过写的蛮快的,wa了之后扫了一下主席树感觉没什么
Seast
·
2019-04-23 03:00
dfs序
与 树链剖分 例题 Distance on the tree
dfs序
和熟练剖分本质上是hash,将树型结构转换成线性结构熟练剖分是
dfs序
的一种
dfs序
就是dfs遍历点的顺序,对于二叉树就是其中序遍历的顺序,如图红色序号特点:一颗子树的序号是连续一段序号,比如1
Adolphrocs
·
2019-04-21 10:29
dfs序
树链剖分
acm
E - Apple Tree(
DFS序
,树状数组)
:一颗苹果树,刚开始所有节点都有苹果,有以下两种操作,一种是改变一个节点的状态(有苹果就取走,没苹果就产生一个),一种是询问一个点的子树(包括节点自己)一共有多少个苹果,对于每次询问输出结果分析:重新
DFS
KetchupZ
·
2019-04-15 21:08
#
树状数组
51Nod 1199 Money out of Thin Air(
dfs序
加线段树)
http://www.51nod.com/Challenge/Problem.html#!#problemId=1199又wa了一下午。。。思路树的先序遍历顺序刚好对应线段树的一个区间,利用这一点直接dfs建序,然后再建线段树来查询修改就可以了。1#definedbg(x)cout4#defineiter::iterator5usingnamespacestd;6typedeflonglongll
SnowLove
·
2019-04-07 18:00
2018 蓝桥杯省赛 B 组模拟赛(一)青出于蓝胜于蓝(
DFS序
+树状数组)
题目链接武当派一共有nn人,门派内nn人按照武功高低进行排名,武功最高的人排名第11,次高的人排名第22,...武功最低的人排名第nn。现在我们用武功的排名来给每个人标号,除了祖师爷,每个人都有一个师父,每个人可能有多个徒弟。我们知道,武当派人才辈出,连祖师爷的武功都只能排行到pp。也就是说徒弟的武功是可能超过师父的,所谓的青出于蓝胜于蓝。请你帮忙计算每个人的所有子弟(包括徒弟的徒弟,徒弟的徒弟的
语海与冰
·
2019-03-23 20:23
线段树/树状数组
蓝桥杯
牛客 H 华华和月月种树(
dfs序
+线段树)
链接:https://ac.nowcoder.com/acm/contest/392/H来源:牛客网时间限制:C/C++2秒,其他语言4秒空间限制:C/C++131072K,其他语言262144K64bitIOFormat:%lld题目描述华华看书了解到,一起玩养成类的游戏有助于两人培养感情。所以他决定和月月一起种一棵树。因为华华现在也是信息学高手了,所以他们种的树是信息学意义下的。华华和月月一起
城南的花
·
2019-03-19 21:52
线段树
tarjan算法总结
定义dfn(x)为x点
dfs序
,low(x)为该点能通过非树边返回的深度最小祖先的dfn。
caoyang1123
·
2019-03-13 07:42
训练集
笔记
刷题集
牛客练习赛39
题解:
dfs序
+LIS。根据题意可知首先dfs按照根,右,左的顺序求出该树的序列,再按
HUGOkungggg
·
2019-02-14 12:27
ACM
CodeForces 1110F Nearest Leaf | 线段树/换根
(虽然还是比不过列表里的各路神仙)题目链接题目描述一棵\(n\)个点的有根树,规定一种
dfs序
(规则:编号小的点优先dfs),\(m\)次询问一个点\(u\)和一个区间\([l,r]\),求
dfs序
在这个区间内的叶子中
胡小兔
·
2019-02-09 23:00
洛谷 P3320: bzoj 3991: LOJ 2182: [SDOI2015]寻宝游戏
题解:有一个结论:
DFS序
求出后,假设关键点按照
DFS序
排序后是\(\{a_1,a_2,\ldots,a_k\}\)。
粉兔
·
2019-02-08 23:00
2019雅礼集训day2 题解
每次求对于其中一棵树AAA的一条边(p,q)(p,q)(p,q)(设ppp为qqq的父亲,即qqq在ppp子树内),在另一棵树BBB上的边(x,y)(x,y)(x,y)(设x,yx,yx,y在AAA中dfsdfs
dfs
ccosi
·
2019-01-20 14:50
---多项式---
线段树
费用流
点分治
二分图匹配
FFT
NTT
2019YALIWC
bzoj4530: [Bjoi2014]大融合(线段树合并)
思路:先建出所有操作完之后的树统计出dfsdfs
dfs序
注意有可能是森林而不是树然后用线段树合并维护每棵子树的sizesizesize即可。
SC.ldxcaicai
·
2019-01-14 18:35
#
线段树合并
bzoj 3473 字符串 - 后缀数组 - 树状数组
数这个东西,可以将每个串的后缀(被奇怪的字符分割开的地方认为它属于不同后缀)按
dfs序
排序,然后简单容斥就能统计出来。对于每个后缀,有贡献的是一个前缀,然后直接统计就行了。Code1/**2*b
阿波罗2003
·
2019-01-07 11:00
DFS序
+树状数组
#includeusingnamespacestd;inttr[10003],in[10003],ou[10003],fo[10003];vectoredge[10003];intn,m,key;//修改节点k,添加代入1,删除代入-1voidadd(intx,intval){while(x0){rec+=tr[x];x-=x&(-x);}returnrec;}//为每一个node添加一个左值和右
_Jim_
·
2019-01-02 12:52
ACM笔记-2串树
洛谷3320 SDOI2015寻宝游戏(set+
dfs序
)(反向迭代器的注意事项!)
题目链接被STLSTLSTL坑害了一个晚上,真的菜的没救了啊。准确的说是一个叫reverseiteratorreverse\iteratorreverseiterator的东西,就是我们经常用的rbegin()rbegin()rbegin()有一个非常重要的性质在反向迭代器中,++相当于正常的–,--相当于正常的++也就是说假设我们要访问setsetset中的倒数第二个元素,我们要++s.rbeg
y_immortal
·
2018-11-28 20:18
STL
平衡树
DFS序
,欧拉序
#includeusing namespace std;using ll=long long ;using ull=unsigned long long ;#define me(a) memset(a,0,sizeof(a));const int N=10005;vectorg[N];int num[N],dis[N],len,t;int s[N],e[N];int euler[N];// voi
qinXpeng
·
2018-11-27 20:43
dfs
euler
序
数据结构
【模板】动态DP&对于树链剖分的一些思考&全局平衡二叉树
在需要回答在子树/或结点到根路径查询时,由于dfsdfs
dfs序
的连续性,可以用到树链剖分将复杂度降到log2nlog^2nlog2n。
ccosi
·
2018-11-15 11:39
树链剖分
动态DP
全局平衡二叉树
2018.11.08 NOIP模拟 班车(倍增+dfs+bit)
用dfsdfs
dfs序
求出每个点管辖的子树
SC.ldxcaicai
·
2018-11-08 23:05
#
树状数组
#
倍增
#
dfs序
Gym - 101615D Rainbow Roads (
dfs序
,差分)
题目链接题意:给你一颗无向树,树上的每条边都有一种颜色,如果以一个点为起点的所有的路径上相邻两条边的颜色总是不相同,那么这个点被称为“好点”。求这棵树上所有的好点。解法:假设节点u和节点v均与节点w相邻,且e(w,u)与e(w,v)颜色相同,那么要分两种情况:(1)u与v不存在祖先与后代的关系,那么这两个结点所在的内子树上的点都不是好点,都要剪掉。(2)u是v的祖先,那么v的内子树与u的外子树及u
jrltx
·
2018-11-01 00:00
差分
dfs序
[关于几个tarjan算法]
dfn是时间戳,表示dfs下第一次访问的时间,然后我们tarjan搜索树上的
dfs序
就是dfn值。
jerome_wei
·
2018-10-31 19:18
模板
总结&口胡
线段树(
dfs序
建树加区间更新和单点查询)
具体思路:具体关系可通过
dfs序
建树,但是注意,在更新以及查询时的数和你
dfs序
建成的数是不一样的。因为你
dfs序
建成的树每个左右区间以及端点会发生不符合建树的条件。
Let_life_stop
·
2018-10-21 16:43
线段树
2018.09.30 bzoj3551:Peaks加强版(
dfs序
+主席树+倍增+kruskal重构树)
查到询问的子树之后就可以用
dfs序
+主席树统计答案了。
SC.ldxcaicai
·
2018-09-30 14:04
#
主席树
#
kruskal
#
倍增
#
dfs序
套路集锦
]表示i最小的质因子这个可以O(N)O(N)O(N)筛出来每次至少会缩小一半范围所以可以O(log值域)O(\log值域)O(log值域)2:找一棵树上一些点与他们之间联通的边的连通块大小把这些点按
dfs
Rose_max
·
2018-09-22 09:26
学习笔记啥的
BZOJ2819 Nim
先求
dfs序
,转化成区间问题,然后用树状数组维护一下就好了,查询的时候,求一条x–>rt的Xor路径,再求一条y–>rt的Xor路径,Xor一下,发现lca(x,y)以上就没了,但是少了一个val[lca
AcerMo
·
2018-09-14 15:58
数据结构-树状数组
倍增LCA
pat1151 LCA in a Binary Tree
思路:求
dfs序
,st表维护
dfs序
中的高度,map映射一下每个值对应的节点序号,rmq求lca。
csx0987
·
2018-09-10 10:26
pat
往事 - SAM - 启发式合并
题解:建出SAM后,考虑parent树中每次合并两颗子树,启发式的把小的插到大的里面,显然每次插入的时候只会取
dfs序
的前驱和后继做LCA来更新答案。两个log。
Mys_C_K
·
2018-09-06 16:22
广义后缀自动机
启发式合并
上一页
6
7
8
9
10
11
12
13
下一页
按字母分类:
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
其他