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序
动态树问题
eulertourtree我不知道真正的ETT怎么打,我将它理解为“使用平衡树维护
dfs序
”
WerKeyTom_FTD
·
2016-05-09 20:00
【BZOJ3439】Kpm的MC密码,trie树+
dfs序
+主席树
2016.05.07Author:xiaoyimi转载注明出处谢谢传送门思路:1.haveatrie,还得是倒着建的,记录每个结尾节点的id(可能会有重复,所以开一个vector记录一下)2.对trie树进行
dfs
xym_CSDN
·
2016-05-07 21:00
【BZOJ2588】Count on a tree,主席树维护链+ST表求LCA
传送门写在前面:一天下来就写了两道主席树的题……(codevs上的一道智障天梯不算)思路:才知道原来主席树不仅可以通过
dfs序
维护子树区间,还可以直接维护一条到根的链……我们建好主席树后,每次查询u->
xym_CSDN
·
2016-05-06 21:00
bzoj3244 树的计数 递推
害的我还去抄了一发标程 首先按照bfs的顺序重新标号(比如样例那样),然后对于点x,令pos[x]为x的
dfs序
编号,a[i]为
dfs序
的第i个。
lych_cys
·
2016-05-06 12:00
递推
dfs序
bfs序
【BZOJ3551】Peaks加强版,主席树+kruskal重构+
dfs序
+倍增思想
传送门写在前面:一道调了不止一上午的题目思路:我们先来看一下神奇的kruskal重构树图中红色的是原图的边权,黑色的是原图上的点这样生成的树有一些十分优美的性质:1.二叉树(好吧这题意义不大)2.原树与新树两点间路径上边权(点权)的最大值相等3.子节点的边权小于等于父亲节点(大根堆)4.原树中两点之间路径上边权的最大值等于新树上两点的LCA的点权这些神奇的性质可以解决一些图上的连通性问题。对于这道
xym_CSDN
·
2016-05-05 22:00
DFS序
+主席树 51Nod1681 公共祖先
传送门:点击打开链接题意:有一个庞大的家族,共n人。已知这n个人的祖辈关系正好形成树形结构(即父亲向儿子连边)。在另一个未知的平行宇宙,这n人的祖辈关系仍然是树形结构,但他们相互之间的关系却完全不同了,原来的祖先可能变成了后代,后代变成的同辈……两个人的亲密度定义为在这两个平行宇宙有多少人一直是他们的公共祖先。整个家族的亲密度定义为任意两个人亲密度的总和。思路:这道题的主席树用的太巧妙了~我们考虑
qwb492859377
·
2016-05-04 17:00
[BZOJ3306]树(
dfs序
)
题目描述传送门题解同BZOJ3083代码#include #include #include usingnamespacestd; constintmax_n=1e5+5; constintmax_e=max_n; constintmax_tree=max_n*4; constintINF=2147483647; intn,m,N,fa,root,x,y; inttot,point[max_n
Clove_unique
·
2016-05-02 17:00
bzoj
dfs序
Water Tree 【
dfs序
+线段树】
方法1把树按照
dfs序
展开,用线段树维护子树和,设0表示empty,1表示filled操作1:若子树v存在0节点,则把v的父亲【in[fa],out[fa]】更新成0。
xinag578
·
2016-05-02 13:00
【BZOJ3653】谈笑风生【主席树】【
DFS序
】
【题目链接】发现每次询问其实相当于,问
dfs序
在一段区间内,深度在一段区间内的点的贡献是多少,这个是经典的二维矩形求和的问题。因为数据比较大,考虑用主席树来维护这个信息。
BraketBN
·
2016-05-02 09:00
POJ 3321Apple Tree(
dfs序
树状数组)
传送门:http://poj.org/problem?id=3321刚开始看到这题的时候,直接敲了一发模拟准备水过,结果TLE了,仔细想想确实是会超时的,如果变成一条直线的话,修改操作的复杂度就是O(N),妥妥超时。想了半天不知道怎么做,后来一查发现是树状数组,一时间没想出来怎么做,因为原来做的树状数组都是一条直线上操作,不知道怎么在树上建立树状数组。学习了一发别人的博客,才知道还有一种思路是根据
xtttgo
·
2016-05-01 14:00
[LCT 线段树
dfs序
] BZOJ 3779 重组病毒
%%%PoPoQQQ http://blog.csdn.net/popoqqq/article/details/45919545”题目大意:给定一棵树,初始每个点都有一个颜色,支持三种操作: 1.将某个点到根的路径上所有点染上一种新的颜色 2.将某个点到根的路径上所有点染上一种新的颜色,然后把根设为这个点 3.定义一个点的代价为这个点到根路径上颜色的种类数,求某个点子树中所有点代价的平均值容易发现
PoPoQQQ
·
2016-04-30 14:00
【模板】tarjan
强连通分量基于
dfs序
dfn[i]:节点i的发现时间low[i]:i或i的子树能够追溯到的最早的栈中节点的次序号http://www.cppblog.com/sosi/archive/2010/09/26
yxr0105
·
2016-04-30 12:00
模板
Tarjan
【模板】LCA
和他的父亲加入同一个集合此时祖先为u的父亲这样对于一个询问(u,v)访问完u及其子树时若尚未访问完v及其子树那么暂时不查询访问v及其子树时查询若已未访问完v及其子树那么ans=find(v)其实主要用的是
dfs
yxr0105
·
2016-04-30 12:00
模板
LCA
【CodeChef-ANUDTQ】Dynamic Trees and Queries【Splay】【
DFS序
】
【题目链接】第一次见到用Splay维护
DFS序
的题。(其实一开始看jiry_2题解,写的LCT,结果TLE/RE。重新思考人生后换成了Splay)又忘把标记下传了。。
BraketBN
·
2016-04-29 18:00
poj 3321 Apple Tree(
dfs序
+线段树)
给出一个多叉树(不一定是二叉),每个树上有一个苹果,有n-1条边,m次操作操作有两种:一:每次操作使该节点的苹果从有到无或从无到有,每个节点最多有一个苹果二:查询该节点的子树上共有多少个苹果思路:先用
dfs
rachelsg
·
2016-04-28 10:00
[
dfs序
树状数组] BZOJ 4034 [HAOI2015]T2
两个log可以树链剖分day2听课时惊闻一个log的做法但我打low了,并不快...#include #include #include #defineVG[p].v usingnamespacestd; typedeflonglongll; inlinecharnc() { staticcharbuf[100000],*p1=buf,*p2=buf; if(p1==p2){p2=(p1=buf
u014609452
·
2016-04-27 19:00
[ONTAK2010]Highways
设x的
dfs序
为dfn(x),x的子树中
dfs序
最大的节点的
dfs序
为dr(x)。将额外的边(u,v)看作点(dfn(u),dfn(v))(dfn(u)≤dfn(v))。
TA201314
·
2016-04-27 14:00
bit
扫描线
分块
BZOJ4034 HAOI2015 T2 线段树+
DFS序
第一次知道了子树原来是用
DFS序
来维护,涨姿势了--。
WDZRMPCBIT
·
2016-04-26 23:00
HDU 4358-I - Boring counting-
dfs序
+离线+树状数组/线段树
我们先求个
dfs序
,把树型结构转为线性数组。那么题目变成q次查询,每次查询区间L【x】,R【x】之间有多少个权值,出现的次数恰好为k而本题可以用离线的做法,先把所有查询的区间按右端点排序
viphong
·
2016-04-23 10:00
[bzoj3720]Gty的妹子树 解题报告
就是用块链维护
dfs序
。维护每个节点按
dfs序
是在哪个块的哪个位置,对每个块维护块中节点的最浅深度、它的下一个块是哪个块,块中节点按
dfs序
排序的序列,按权值排序的序列。
TA201314
·
2016-04-22 21:00
分治
平衡树
分块
bzoj2434(NOI2011).阿狸的打字机(AC自动机 &&
DFS序
&& 树状数组)
阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。经阿狸研究发现,这个打字机是这样工作的:l输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。l按一下印有'B'的按键,打字机凹槽中最后一个字母会消失。l按一下印有'P'的按键,打字机会在纸上打印出凹槽中现有的所有字母并换行,但凹槽中的字母不
ALXPCUN
·
2016-04-22 14:55
【BZOJ1103】[POI2007]大都市meg【树链剖分 / 树状数组 +
dfs序
】
【题目链接】想都没想直接树剖去了...看了题解发现树状数组维护
dfs序
也可以做。
BraketBN
·
2016-04-21 08:00
无向图强连通分量缩点+
DFS序
codeforces555E Case of Computer Network
传送门:点击打开链接题意:n个点,m条边的无向图,点不一定都连通,有q个查询,每个查询有u和v。现在要把m条边从无向边变成有向边,并要求每个查询的u能通过后来的有向边到达v。问是否存在这样的构造。所有数都 #include #include #include #include #include #include #include #include #include #include #includ
qwb492859377
·
2016-04-18 13:00
[scoi2005]王室联邦 解题报告
做法是按
dfs序
出栈或bfs倒序考虑,把当前这个子树的剩余块加到它的父亲上,如果它的父亲上的块已经≥b就把这个块取出来。
TA201314
·
2016-04-15 10:00
bfs
分块
dfs序
BZOJ3935: Rbtree
我不会QWQ对着别人的代码打了一发树形DP按
DFS序
处理#include #include #include const intMax_N=501,INF=1b?
liutian429073576
·
2016-04-12 13:00
Codeforces Round #316 (Div. 2) D 【
dfs序
+二分】
链接:http://codeforces.com/contest/570/problem/D题意:给你一棵n个节点树,树的每个节点少有一个字母,然后m个询问,问节点a的子树中深度(以1为根)为b的节点上的字母能否组成回文串。分析:判断回文串,我们只要找到字母为奇数个的个数大于1就不能组成回文,我们可以用异或求出,用前缀和优化,在dfs的时候深度一样的节点都是按照顺序便利的,我们可以用vector记
u012483216
·
2016-04-08 21:00
[HDU 5029] Relief grain (树链剖分+线段树)
染过多少次如果在线段树维护的话,很难做到,估计得树套树,而且空间会炸好在这题是离线的,可以使用差分的思想来维护对一段区间[l,r]染色c,相当于在这段区间左端点l打上c标志,右端点r+1打上-c标志然后扫一遍整个区间(依照
dfs
u012015746
·
2016-04-07 20:00
bzoj3653: 谈笑风生
子树问题,我们优先想到
dfs序
,然后问题变成了在
Fsss_7
·
2016-04-06 22:00
hdu4358Boring counting
分析:遇到子树问题,首先考虑到的就是
dfs序
,然后发现还有一个条件k。我的处理方式是:先离散化,然后构出
dfs序
,然后处理出in[],out[],lose[]数组,如果当前i中的数是某个出
Fsss_7
·
2016-04-06 20:00
bzoj3306: 树
分析:因为题目要求查询子树中的最小值,很明显想到
dfs序
。但是还有一个操作:换根。
Fsss_7
·
2016-04-06 16:00
[spoj10707]Count on a tree II 解题报告
我一开始的想法是就是把
dfs序
分成大小为S的块,然后就是O(N3S2+MS),这样显然块越大越好,所以卡着内存线S最大可以开到800,时间复杂度大约就是108,然
TA201314
·
2016-04-06 16:00
bitset
分块
dfs序
主席树
点分治
CodeForces 570D(
dfs序
or 离线dfs)
解法1: 利用
dfs序
,为所有点标上进出两个标记,既可以代表一个区间(
dfs序
很重要的一个应用),顺便将每个深度下所有的单个字母出现的标号统计到相应的vector中后,在计算答案时进行26次二分上下界求这个子树区间分别有多少
playwfun
·
2016-04-06 14:00
bzoj4448 情报传递
dfs序
列&树状数组
首先遍历得到
dfs序
列,离线后按照C排序再从小到大插入和查询,每一次相当于单点修改和链上查询,然后用树状数组来维护区间修改单点查询就好了。(根本不需要用什么树链剖分)。
lych_cys
·
2016-04-05 16:00
DFS
树状数组
LCA
dfs序
【poj 3321】Apple Tree 题意&题解&代码(C++)
题解:
dfs序
之后,单点修改区间查询,线段树与树状数组都可以。普通的vector在这道题中迷之超时,加了个typedef后就不超时了,真是神奇,手写边表的话应该没什么问题。
deritt
·
2016-04-05 15:26
oi之路
poj
DERIT的博客专栏
【poj 3321】Apple Tree 题意&题解&代码(C++)
题解:
dfs序
之后,单点修改区间查询,线段树与树状数组都可以。普通的vector在这道题中迷之超时,加了个typedef后就不超时了,真是神奇,手写边表的话应该没什么问题。
deritt
·
2016-04-05 15:26
oi之路
poj
DERIT的博客专栏
【poj 3321】Apple Tree 题意&题解&代码(C++)
题解:
dfs序
之后,单点修改区间查询,线段树与树状数组都可以。普通的vector在这道题中迷之超时,加了个typedef后就不超时了,真是神奇,手写边表的话应该没什么问题。
DERITt
·
2016-04-05 15:00
poj
DFS
【poj 3321】 Apple Tree 树状数组+
dfs序
AppleTreeTimeLimit:2000MSMemoryLimit:65536KTotalSubmissions:23568Accepted:7118DescriptionThereisanappletreeoutsideofkaka’shouse.Everyautumn,alotofappleswillgrowinthetree.Kakalikesappleverymuch,sohehas
ALPS233
·
2016-04-05 15:00
poj
DFS
[BZOJ2434][NOI2011]阿狸的打字机(AC自动机+树状数组)
求出fail树的
dfs序
。离线之后按照y排序,将y单词所有的节点权值都+1,然后对于每
Clove_unique
·
2016-04-04 23:00
树状数组
AC自动机
NOI
bzoj
【codevs1946】【BZOJ2434】阿狸的打字机,AC自动机练习
思路:纠结了好久的自动机题目,不论网上的神犇们怎么说,蒟蒻就是觉得好难啊(/□),算是学了一门新姿势了吧——fail树+
dfs序
树状数组维护AC自动机上的信息,纠结了许久,磨出来以后又和黄学长std拍了好久
xym_CSDN
·
2016-04-04 20:00
NOI 2011 阿狸的打字机
id=2434思路:AC自动机,离线处理,主要利用fail树的性质,然而我犯傻了,
dfs序
总是犯晕,wa好多次,应该引起重视,再总结一下
dfs序
代码:#include #include #include
qq_20669971
·
2016-03-31 17:00
bzoj1103[POI2007]大都市meg
分析:题目要求的是每次都是从节点1计算到节点x的距离,我们可以利用长度为2*n的
dfs序
的性质,因为在
dfs序
中我们会保存节点i进入时间l[i]和出去时间r[i],那么我们可以设置一个树状数组记录前缀和
Fsss_7
·
2016-03-30 23:00
Tree Requests(
DFS序
+BFS+二分)
题目链接:点这里题意:给你一棵树(n[2,7] 3->[6,10]再结合同一深度的
dfs序
是递增的,就能知道以v为根深度h的子树下,利用二分在h深度的bfs序可以知道有哪些节点(注意边界)。
u014325920
·
2016-03-30 22:00
codeforces
bfs
二分
dfs序
【暑假】[基本数据结构]基本的数据结构知识点总结梳理
3、根据BFS与DFS构树:由BFS序列中的位置判断结点关系,顺
DFS序
列依次为每个结点建立关系。应用
hahalidaxin
·
2016-03-30 17:20
【暑假】[基本数据结构]基本的数据结构知识点总结梳理
3、 根据BFS与DFS构树:由BFS序列中的位置判断结点关系,顺
DFS序
列依次为每个结点建
hahalidaxin
·
2016-03-30 17:00
【暑假】[基本数据结构]根据BFS与DFS确定树
UVa10410TreeReconstruction算法:根据BFS构造pos数组以区分关系,在此基础上对
DFS序
列操作。注:栈中存父结点,栈顶是最优先的父结点。
hahalidaxin
·
2016-03-30 17:00
BZOJ-3083 遥远的国度 树链剖分+分类讨论 or
DFS序
3083:遥远的国度TimeLimit:10SecMemoryLimit:1280MBSubmit:2165Solved:525[Submit][Status][Discuss]Description描述zcwwzdjn在追杀十分sb的zhx,而zhx逃入了一个遥远的国度。当zcwwzdjn准备进入遥远的国度继续追杀时,守护神RapiD阻拦了zcwwzdjn的去路,他需要zcwwzdjn完成任务后
DaD3zZ
·
2016-03-28 19:35
BZOJ
树链剖分
cf#316-codeforces570D - Tree Requests -
dfs序
+分类再二分+树dp+异或位运算+bitmask(位压缩)
http://codeforces.com/contest/570/problem/D题意:给一棵树n个节点,每个节点有一个字母信息。节点1的深度为1,其他节点的深度为到1的距离m次查询,每次查询给出(v,h) 求以v为根节点的子树的所有节点中 深度在第h层 的所有节点 能否构成一个回文串(以任意顺序排列)首先既然是任意顺序构成回文串的话,只要是该字母出现偶数次就没问题,我们只需要看出现奇数次的
viphong
·
2016-03-27 23:00
codeforces#225-C - Propagating tree-
dfs序
(奇偶)+线段树
把x节点加val,把其所有儿子-val,把儿子的儿子都+val,反复如此2:查询某个节点的值对每次操作,显然就是把该节点的所有子节点中,奇偶性与X相同的+val,不同的则-val,如此反复我们先跑一遍
dfs
viphong
·
2016-03-26 22:00
杂题集合
1.NOI阿狸的打字机():观察:离线,建立AC自动机,fail树的每个节点的所有子节点都包含此节点,问题转化为点到根路径加一,询问子树和或者反过来,用
dfs序
离线+树状数组或者连剖都行,(ps:感觉相同的串很麻烦
qq_20669971
·
2016-03-25 11:00
[BZOJ4196][NOI2005]软件包管理器(链剖+
dfs序
)
题目描述传送门题解链剖练习题,思路很好想。刚开始的时候出了个小bug,让我现在十分怀疑自己写数据结构的一次成功率。代码#include#include#includeusingnamespacestd;constintmax_n=1e5+5;constintmax_e=max_n*2;constintmax_tree=max_n*5;intn,q,x,N,ans;chars[20];inttot,
Clove_unique
·
2016-03-22 17:35
题解
NOI
线段树
树链剖分
dfs序
上一页
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
其他