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序
【bzoj2434】阿狸的打字机 AC自动机+树状数组
然后构建一个fail树,得出
dfs序
,得出每个结点进出时间l[x],r[x],考虑这样一种暴力对于一个询问x,y,查询自动机上root-y的每一个结点,沿着fail指针是否会走到x的结尾点如果可以
chty_syq
·
2016-11-21 13:10
bzoj
树状数组
AC自动机
【jzoj4895】【三部曲】【线段树】
解题思路先按
dfs序
重标号
inklutcuah
·
2016-11-16 08:27
jzoj4895
三部曲
jzoj
数据结构
COGS 2105. [NOIP2015] 信息传递 解法二 解题报告
includeusingnamespacestd;constintmaxn=200000+10;intto[maxn],vis[maxn],num[maxn];//num[i]记录经过节点i的“时间”--
dfs
Janis_z
·
2016-11-05 14:37
DFS
[BZOJ4034][HAOI2015]T2 树链剖分+
dfs序
常规题,比较特殊的操作是修改以x为根的子树的所有节点我们知道,这颗子树的
dfs序
一定是连续的,所以我们只需要对每个节点记录一下,最大的
dfs序
即可因为树剖要dfs,所以我们直接在第二次dfs时记录,但需要注意的是
Cabinfever
·
2016-11-02 22:00
bzoj
数据结构——树链剖分
[BZOJ4326][NOIP2015]运输计划(二分+
dfs序
+树上差分)
题目描述传送门题解首先,要求最大值最小,先想到二分。可以预处理出来所有路径所需要的时间。关键是怎么check呢?算法一每次二分出mid了之后,将所有时间>=mid的路径上的边打标记(链剖+bit即可),然后枚举每一条边,如果这条边打的标记的数量=所有需要打标记的路径的数量,并且这条边是所有满足条件里的最大的,那么将这条边砍断。然后再判断这个最解是否可行就行了。然而这个时间复杂度是O(logTmlo
Clove_unique
·
2016-10-18 14:54
题解
NOIP
dfs序
二分
差分
[BZOJ3589]动态树(树链剖分+
dfs序
+lca)
题目描述传送门题解修改的操作直接做就可以了。查询的时候问题主要出在会有重复的路径。我的思路就是将重复的路径砍断,变成不重复的,然后最后依次查询就可以了。由于k比较小,O(k2)判断就是可以接受的。由于树枝全部是从某个节点到根的路径的一段,处理起来就比较方便了。处理两条树枝的方法是:设两条树枝(x1,y1)(x2,y2),且h[x1]h[r]或者h[x2]>h[r],则说明两条树枝不相交,可以不作任
Clove_unique
·
2016-09-24 07:45
题解
lca
树链剖分
dfs序
[BZOJ3589]动态树(树链剖分+
dfs序
+lca)
题目描述传送门题解修改的操作直接做就可以了。查询的时候问题主要出在会有重复的路径。我的思路就是将重复的路径砍断,变成不重复的,然后最后依次查询就可以了。由于k比较小,O(k2)判断就是可以接受的。由于树枝全部是从某个节点到根的路径的一段,处理起来就比较方便了。处理两条树枝的方法是:设两条树枝(x1,y1)(x2,y2),且h[x1]h[r]或者h[x2]>h[r],则说明两条树枝不相交,可以不作任
Clove_unique
·
2016-09-24 07:45
题解
lca
树链剖分
dfs序
CodeForces 375D Tree and Queries 莫队算法
//codeforces.com/problemset/problem/375/D题意:给定一个以1为根的树,树中每个节点有一个颜色,求以某个节点v为根的子树中颜色出现次数大于等于k的颜色有几种思路:
dfs
霜刃未曾试
·
2016-09-22 14:03
莫队算法
hdu 3887
DFS序
+树状数组
点击打开链接
DFS序
的意义:对一棵树进行DFS遍历,一个结点最多到达两次,一次入,一次出,而这之间的结点标号均为它的子树结点的标号。
Masamiiiii
·
2016-09-12 20:33
Data
Structure
用bfs求
dfs序
(先序遍历序)
给你一棵树求这棵树的
dfs序
但是树的深度会爆系统栈那么如何求出
dfs序
?
A_E_Lv_0_0_
·
2016-09-09 22:22
搜索
codeforces题目分类
388A(贪心)388B(一个不错的构造题,二进制构造)388C(一个很好的博弈题,要仔细分析,推荐)383A(最优情况分析,相邻情况分析)383C(线段树+
dfs序
)383D(类似于双塔dp)715A
luotuoqingshan
·
2016-09-07 15:11
oj
JZOJ4727. 挺进
然后考虑用线段树维护
DFS序
上的联通块直径,线段树上一个区间即代表
DFS序
对应区间的结点构成的联通块。然后枚举删除哪条边
Akakii
·
2016-08-22 20:33
线段树
RMQ
DFS序
--树的问题转化为区间问题
问题概述:一颗树有n个结点,编号为1到n,其中1为根节点,现有两种操作:1xy表示将x结点的权值加上y,2x表示查询x到根节点中所有结点的权值和,每个结点权值初始都为0,n和m都小于50000(http://acm.zzuli.edu.cn/zzuliacm/problem.php?cid=1159&pid=2)输入样例:对应输出:10553122133435251121312421解题步骤:①对
Jaihk662
·
2016-08-17 16:17
技巧
HDU5692 线段树+
dfs序
SnacksTimeLimit:10000/5000MS(Java/Others)MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):1517AcceptedSubmission(s):368ProblemDescription百度科技园内有n个零食机,零食机之间通过n−1条路相互连通。每个零食机都有一个值v,表示为小度熊提供零食的价值。
Sherlock_n
·
2016-08-11 22:45
ACM-线段树
[BZOJ4539][Hnoi2016]树(
dfs序
+主席树+lca)
题目描述传送门题解可以看出在原树上的每一次复制都是一棵完整的子树,用
dfs序
表示出来就是一段连续的区间。
Clove_unique
·
2016-08-05 18:11
题解
lca
省选
可持久化
dfs序
BZOJ 4034 T2 (树链剖分解决子树问题)
树链剖分有这样一个性质,即在剖完之后每个结点下面子树的编号一定是连续的,那么基于这一点,我们记录每个结点的区间就能解决子树更新问题
dfs序
也可以解决子树问题,但是这里需要计算一个贡献值,结点的层数不好处理
wJs9528-1
·
2016-08-01 08:44
===数据结构===
树链剖分
bzoj 3244: Noi2013树的计数
题目大意就是给出
dfs序
和bfs序,求树的期望高度首先感谢Mektpoy的blog:树的计数——MektpoyMektpoy的做法是O(nlogn)的,已经讲得比较清楚了,但还是看了好久才想清楚,所以多说两句
Cabinfever
·
2016-07-29 16:47
bzoj
POJ 3321
DFS序
+树状数组
树形转线性,然后用树状数组维护就行,单点更新,区间查询,但是辣鸡POJ卡vector窝日,所以用链式前向星存就行#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;#definelllonglong#definemaxn100005#definemaxm2
sky-edge
·
2016-07-15 18:46
数据结构
POJ
【bzoj4551】【Tjoi2016】【Heoi2016】【树】【线段树】
题解我的做法是先搞出
dfs序
,打标记只会影响子树,线段树区间修改就行了,查询就是单点查询。注意空点不下传标记,不然空间不够。更好的做法是离线用并查集维护。
inklutcuah
·
2016-07-12 11:24
bzoj
数据结构
WUST暑假集训第一周简单小结
目录一.
dfs序
在树状图中的经典应用二.初探双向广度优先搜索三.整体二分思想完美解决kthnumber问题四.实战模拟退火思想(变步长贪心算法)五.凸包问题经典例题六.树的重心问题经典例题七.矩阵快速幂例题
Forever_wjs
·
2016-07-09 14:00
HDU 5692 Snacks(
dfs序
+ 线段树处理区间求和)
SnacksTimeLimit:10000/5000MS(Java/Others) MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):1241 AcceptedSubmission(s):280ProblemDescription百度科技园内有n个零食机,零食机之间通过n−1条路相互连通。每个零食机都有一个值v,表示为小度熊
Forever_wjs
·
2016-07-08 15:00
【JZOJ4587】Snow的追寻
思路有对子树限制的就想一想
dfs序
。然后在
dfs序
上建一个线段树每个点存储它表示的点集的最长距离和对应的两个点,合并的时候有六种情况,两个子树的两个点两两配对,然后再与这两个点的值比较,一共六种。
Facico
·
2016-07-08 08:09
线段树
【JZOJ4587】Snow的追寻
思路有对子树限制的就想一想
dfs序
。然后在
dfs序
上建一个线段树每个点存储它表示的点集的最长距离和对应的两个点,合并的时候有六种情况,两个子树的两个点两两配对,然后再与这两个点的值比较,一共六种。
doyouseeman
·
2016-07-08 08:00
线段树
树的直径
dfs序
Snow的追寻
dfs序上线段树
BZOJ4551——[Tjoi2016&Heoi2016]树
2、分析:本来想直接上
dfs序
+线段树的,后来一看==|||,woc..这个离线就是并查集啊,==|||,离线,倒着做,然后遇到标记删没了
qzh_1430586275
·
2016-07-06 11:00
树
并查集
bzoj
4551
dfs序
的常见用法整理
dfs序
就是一棵树在dfs遍历时组成的节点序列.它有这样一个特点:一棵子树的
dfs序
是一个区间.下面是
dfs序
的基本代码:voiddfs(intx,intpre,intd){//L,R表示一个子树的范围
LIN452
·
2016-06-27 21:06
图论
-----dfs序
BZOJ4034 [HAOI2015]T2 题解&代码
个操作,分为三种:操作1把节点x的点权增加a操作2把以节点x为根的树中所有点的点权都增加a操作3求节点x到根的路径中所有点的点权和分析:操作1和操作2本质上是没有区别的,区间修改和单点修改显然可以合并,求
dfs
Rainbow6174
·
2016-06-01 21:05
BZOJ
线段树
树链剖分
BZOJ学习记录
BZOJ4034 [HAOI2015]T2 题解&代码
个操作,分为三种:操作1把节点x的点权增加a操作2把以节点x为根的树中所有点的点权都增加a操作3求节点x到根的路径中所有点的点权和分析:操作1和操作2本质上是没有区别的,区间修改和单点修改显然可以合并,求
dfs
Rainbow6174
·
2016-06-01 21:00
BZOJ4034 [HAOI2015]T2 题解&代码
个操作,分为三种:操作1把节点x的点权增加a操作2把以节点x为根的树中所有点的点权都增加a操作3求节点x到根的路径中所有点的点权和分析:操作1和操作2本质上是没有区别的,区间修改和单点修改显然可以合并,求
dfs
Rainbow6174
·
2016-06-01 21:00
bzoj 2658: [Zjoi2012]小蓝的好友(mrx) Treap
注意到如果把向左能拓展到的看成是在dfs一颗树时入栈的序号,向右能拓展到的看成是在dfs时出栈的序号,那么显然这可以看成一棵树的
dfs序
;由于特殊性
lych_cys
·
2016-05-30 14:00
treap
【Codevs1228】苹果树(
dfs序
+树状数组)
#include#include#include#includeusingnamespacestd;constintmaxn=100010;intn,m,a1,a2,in[maxn],out[maxn],head[maxn],ncnt,cnt,c[maxn],vis[maxn];structedge{intto,ne;}e[maxn];inlineintlowbit(intx){returnx&(
dengcchh
·
2016-05-30 11:52
题解
Codeforces Round #200 (Div. 1) D - Water Tree 很经典而且很有趣的树 上dfs问题
3.询问某个节点里面是否有水.一开始很年轻感觉上先跑出
dfs序
,然后线段树维护一下节点flag值就行了好像感觉并不对,仔细想了想,如果我要把一个区间为:2-4这个节点
qq_24664053
·
2016-05-28 21:00
CodeForces 29 DAnt on the Tree, 超经典 裸dfs(序)
然后
dfs序
,感觉自己现在毛皮都没有掌握,只会套用现成的固定的东西算什么会啊,思维也被算法的框架给限制住了,这真的是一个很可怕的事情,希望我能够明白,算法毕竟是算法,思维才是最重要的东西。
qq_24664053
·
2016-05-25 16:00
DFS
codeforces
CodeForces 343D Water Tree
dfs序
+ 线段树
题目:http://codeforces.com/problemset/problem/343/D题意:给定一个树,树上有n个点,每个点是一个蓄水池,初始全为空。首先输入一个n,然后输入n-1行,每行两个点,代表两点之间有边,然后输入一个m,接下来m行操作,操作有3种:1a,把a及a的所有子孙注水。2a,把a及a的所有祖先放水。3a,询问a点有没有水,有输出1,否则0思路:首先dfs扫一遍,记录每
霜刃未曾试
·
2016-05-24 12:58
线段树
CodeForces 384E Propagating tree (
dfs序
)
题解:修改一个节点,子树上的其他节点都被修改,很像
dfs序
诶,实际
Miracle_ma
·
2016-05-24 09:00
HDU 5692 Snacks (
DFS序
+ 线段树区间更新 好题)
SnacksTimeLimit:10000/5000MS(Java/Others)MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):705AcceptedSubmission(s):151ProblemDescription百度科技园内有n个零食机,零食机之间通过n−1条路相互连通。每个零食机都有一个值v,表示为小度熊提供零食的价值。由
_TCgogogo_
·
2016-05-23 23:50
ACM
数据结构
HDU 5692 Snacks (
DFS序
+ 线段树区间更新 好题)
SnacksTimeLimit:10000/5000MS(Java/Others) MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):705 AcceptedSubmission(s):151ProblemDescription百度科技园内有n个零食机,零食机之间通过n−1条路相互连通。每个零食机都有一个值v,表示为小度熊提
Tc_To_Top
·
2016-05-23 23:00
线段树
HDU
dfs序
dfs序
专题学习
dfs序
是处理树上问题很重要的一个武器,主要能够解决对于一个点,它的子树上的一些信息的维护。
Miracle_ma
·
2016-05-23 21:00
dfs 序 + 树状数组 poj 3321
dfs序
:很简单很实用很几把屌的一个东西,然而自己一直不会.对树进行dfs前序遍历,那么对于节点i,F1[i]表示第一次出现的位置,F2[i]表示第二次出现的位置。
qq_24664053
·
2016-05-23 00:00
HDU 5692 Snacks bfs版本
dfs序
线段树
Snacks题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5692Description百度科技园内有n个零食机,零食机之间通过n−1条路相互连通。每个零食机都有一个值v,表示为小度熊提供零食的价值。由于零食被频繁的消耗和补充,零食机的价值v会时常发生变化。小度熊只能从编号为0的零食机出发,并且每个零食机至多经过一次。另外,小度熊会对某个零食机的零食
qscqesze
·
2016-05-22 08:00
BZOJ2780——[Spoj]8093 Sevenk Love Oimaster
询问可以离线后,我们对这个树形结构求一下
dfs序
,然后我们就可以把树上的询问变成一个序列
qzh_1430586275
·
2016-05-21 19:00
树状数组
sam
bzoj
SPOJ8093
2780
BZOJ3653——谈笑风生(
dfs序
&& 树状数组)
现在有一颗以1为根的有根树,有m个询问,每次给定a,k,求满足条件的三元组(a,b,c)(a就是已经给定的那个),条件:1、a,b距离不超过k,2、a,b都是c的祖先。首先比较显然的是需要分类:a).b在a的上面所构成的三元组,显然这样的可以直接统计出来,即min(dep[a],k)*(size[a]-1),每一个上面的和a的子树中每个点都构成了一个三元组。b).b在a的子树中。因为我们直接限定了
ALXPCUN
·
2016-05-19 15:05
CF570D——Tree Requests
的那层的所有字符,可否组成一个回文串2、分析:首先来考虑一下回文串的性质,有什么性质呢,就是里面出现次数为奇数次的点一定不会超过1个,否则我们一定可以弄出回文串,对吧那么我们离线处理这个东西,我们首先建立
dfs
qzh_1430586275
·
2016-05-18 09:00
tree
线段树
CF
requests
dfs序
570D
BZOJ4196——noi2015软件包管理器
1、题目大意:讲道理,就是让你有两个修改一个是把一个点到根的路径上的点权值全部变成1,另一个是把一个子树全部变成0然后让你输出每次修改,改变的哪些节点的值2、分析:就是一个树剖,树剖是满足
dfs序
的,然后我们就相当于建了一个既符合树剖
qzh_1430586275
·
2016-05-18 08:00
树链剖分
软件包管理器
bzoj
NOI2015
4196
BZOJ3083——遥远的国度
1、题目大意:三个操作,换根,修改树上的某条路径,查询一个子树的最小值2、分析:这个其实还是挺好做的,修改树上的某条路径,裸树剖,查询子树的最小值,这个是树剖满足
dfs序
那么就是换根了,对吧,其实换根是
qzh_1430586275
·
2016-05-18 08:00
树链剖分
3083
bzoj
遥远的国度
poj 3321 Apple Tree 树状数组
分析:先进行一次dfs,把每个节点的
dfs序
记录下来,那么就把树转换成了一个序列。很容易得知一个节点的子树一定是该序列的一个子序列,那么剩下的就是裸的树状数组了。代码:co
qq_33229466
·
2016-05-14 11:00
[BZOJ2809][Apio2012]dispatching(枚举&
dfs序
+主席树||可并堆||splay+启发式合并)
题目描述传送门题解1°主席树枚举每一个忍者当管理者,由于选忍者的顺序满足薪水单调不减,可以用
dfs序
+主席树维护出子树中权值之和小于等于k最多有多少个。
Clove_unique
·
2016-05-13 20:00
枚举
bzoj
apio
dfs序
主席树
cf#221-div1-D - Tree and Queries-
dfs序
+莫队算法
对于查询v的子树,先转为
dfs序
。
viphong
·
2016-05-13 19:00
BZOJ4551 [Tjoi2016&Heoi2016]树
TJOI居然考这么傻逼的题……根JLOI一比真是天壤之别-_-转成
dfs序
,然后相当于区间以deep为关键字去max,直接线段树维护就好#include #include #include #include
neither_nor
·
2016-05-12 19:00
[BZOJ2836]魔法树(链剖+
dfs序
)
题目描述传送门题解链剖+
dfs序
裸题。强转又搞错了?
Clove_unique
·
2016-05-11 18:24
题解
树链剖分
dfs序
[BZOJ2836]魔法树(链剖+
dfs序
)
题目描述传送门题解链剖+
dfs序
裸题。强转又搞错了?
Clove_unique
·
2016-05-11 18:00
bzoj
dfs序
链剖
上一页
9
10
11
12
13
14
15
16
下一页
按字母分类:
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
其他