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序】
【AC自动机】 HDOJ 4117 GRE Words
先建立AC自动机,然后用fail指针建树,然后dfs出
dfs序
,倒着处理用线段树维护每个点的子树就可以了。。。
blankcqk
·
2014-10-30 15:00
HDU
【BZOJ】【P1146】【CTSC2008】【网络管理Network】【题解】【整体二分+
dfs序
+树状数组】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1146当年写的log^4n链剖树套树二分被log^2完虐http://blog.csdn.net/iamzky/article/details/24550247这就是差距Code:#include usingnamespacestd; constintmaxn=80005; vectorG[m
u012732945
·
2014-10-23 09:00
bzoj
BZOJ 3123 SDOI 2013 森林 可持久化线段树+启发式合并
然后就是用可持久化线段树维护一个树的信息,按照
dfs序
来建树,每个节点的可持久化链的参考版本就是它父亲的版本。之后利用权值线段树可区间加减的特性,用f[x]+f[y]-f[lca]-f[fat
jiangyuze831
·
2014-10-21 09:00
线段树
bzoj
可持久化线段树
启发式合并
SDOI2013
hdu 5039 线段树+
dfs序
http://acm.hdu.edu.cn/showproblem.php?pid=5039给定一棵树,边权为0/1。m个操作支持翻转一条边的权值或者询问树上有多少条路径的边权和为奇数。用树形dfs出每个点到根的路径上边权和是否为奇数;由于翻转一个边只会连带影响其下的子节点,所有线段树记录更新区间,odd记录到根的路径上边权和为奇数的个数,每次只需更新和查询odd,没有lazy会超时#includ
u012774187
·
2014-10-17 11:00
POJ 3321 Apple Tree
DFS序
+fenwick
题目大意:有一颗长满苹果的苹果树,有两个操作。1.询问以一个点为根的子树中有多少个苹果。2.看看一个点有没有苹果,如果没有苹果,那么那里就马上长出一个苹果(==!);否则就把那个苹果摘下来。思路:进行一次深搜,将每个节点最开始出现的时间和最后出现的时间记在一个数组里,那么这两点之间的点就是它以及它的子树的二倍,然后就用树状数组来维护区间和就行了。CODE:#include #include #in
jiangyuze831
·
2014-10-16 10:00
poj
树状数组
dfs序
fenwick
LCA + 树状数组 + 树上RMQ
id=2763 思路:首先求出树上
dfs序
列,并且标记树上每个节点开始遍历以及最后回溯遍历到的时间戳,由于需要修改树上的某两个节点之间的权值,如果parent[v] = u, 那么说明修改之后的v的子树到当前根的距离都会改变
·
2014-10-12 17:00
树状数组
【线段树】 HDOJ 5039 Hilarity
找出
dfs序
。。。成段更新维护线段树就好了。。。
blankcqk
·
2014-09-23 21:00
HDU
【POJ1236】Network of Schools 强联通分量缩点(本文kosaraju)
/*不要说这题多水之类的……我只是想记一下kosaraju这种屌炸天的
dfs序
延伸算法(说不定能加到我的ygylca里面)*/题意神马的都不说了,好吧,就是给你个图,n个点,然后n行每行都描述该点的出边
Vmurder
·
2014-09-23 07:00
详解
Kosaraju
poj1236
[HDU 5039 Hilarity]
DFS序
+线段树
pid=5039分析
DFS序
+线段树由于异或运算的特殊性,两点间的异或值等于两点到根的异或值的异或所以答案为到根的异或值为1的点数*到根的异或值为0的点数*2线段树维护
DFS序
维护区间和即可代码/***
ALPC_NeverFarewell
·
2014-09-22 23:00
POJ 2763 Housewife Wind 树链剖分
当然正解不是树链剖分,是
DFS序
+树状数组。没时间想太多就写了个链剖。
jiangyuze831
·
2014-09-20 09:00
线段树
poj
LCA
树链剖分
poj2763
Codeforces Round #266 (Div. 2) Problem E Solution
Solution:直接离线进行处理,首先构建出完整的树,处理出
dfs序
。对于每个询问,事实上是问一个点是否在一条路径上,究竟是哪条路径可以利用并查集维护。
wyfcyx_forever
·
2014-09-16 16:00
BZOJ 2819 Nim 树链剖分/
DFS序
+LCA+树状数组
题意:给定一棵树,每个节点是一堆石子,给定两种操作:1.改变x号节点的石子数量2.用从x到y的路径上的所有堆石子玩一次Nim游戏,询问是否有必胜策略Nim游戏有必胜策略的充要条件是所有堆的石子数异或起来不为零这题首先一看就是树链剖分然后题目很善良地告诉我们深搜会爆栈于是我们可以选择广搜版的树链剖分BFS序从左到右是深搜,从右到左是回溯,一遍BFS就够单点修改区间查询还可以套用ZKW线段树不过这题其
PoPoQQQ
·
2014-09-02 09:00
bfs
树链剖分
dfs序
bzoj
BZOJ2819
BZOJ 3083 遥远的国度 树链剖分
不过由于是查询子树的最小权值,所以我们选择
DFS序
剖分,而不是先前的轻重链剖分即每个节点第一个遍历到的儿子是亲儿子重标号就是
DFS序
↑请无视本沙茶的一本道……轻重链剖分本来就能修改子树,我一直以来写的都是沙茶版
PoPoQQQ
·
2014-09-01 19:00
树链剖分
bzoj
BZOJ3083
HDU 4117 GRE Words
可以看出fail[]的关系形成一棵树,于是问题转化成,不断在节点处插入,询问点到根路径上的最大值,可以利用
dfs序
列转化用线段树维护。
u011788531
·
2014-07-29 17:00
数据结构
算法
字符串
ACM
AC自动机
Codeforces 343D Water Tree
dfs序
+线段树
http://codeforces.com/contest/343/problem/D题意:给定一棵树(给定图一定是树)1、把v点及其子树灌上水2、把v点及v到根的路径去掉水3、询问v点是否有水思路:
dfs
qq574857122
·
2014-06-21 11:00
DFS序
——解决一类树上数据结构问题的方法
在《数据结构漫谈》中,最后有一个对八种树上查询问题用
DFS序
的解法,现对这些解法做以总结。
KuribohG
·
2014-06-07 20:00
BZOJ2819 Nim
DFS序
+BIT+博弈论
对于这样的单点修改链查询,有一个很好的做法,先搞出整个序列的
DFS序
,然后修改的时候,记修改的节点为x,它对应子树在
DFS序
中左边是l,右边是r,则可以这样做:把a[l]异或原来的w[x],a[r+1]
KuribohG
·
2014-06-07 20:00
Coder-Strike 2014
viewmode=contents by---cxloveQualificationRound略Round1D:想像一下
DFS序
,但是输出是反向的E:直接按@把串分成一段段的,然后以@为中心往两边找
acm_cxlove
·
2014-04-25 19:32
ACM_比赛题解
Coder-Strike 2014
viewmode=contents by---cxloveQualificationRound略Round1D:想像一下
DFS序
,但是输出是反向的E:直接按@把串分成一段段的,然后以@为中心往两边找
ACM_cxlove
·
2014-04-25 19:00
POJ 3321(
dfs序
+树状数组)
题意:一棵苹果树有n个结点,编号从1到n,根结点永远是1。该树有n-1条树枝,每条树枝连接两个结点。已知苹果只会结在树的结点处,而且每个结点最多只能结1个苹果。初始时每个结点处都有1个苹果。树的主人接下来会进行m个操作。操作共两种。CX表示将结点x上的苹果数量改变,原本是1,则现在为0,原本是0,现在是1。QX表示一次查询。要求输出结点X和其子树上的苹果总数。n和m最大可到100000。显然可以用
u012350533
·
2014-04-17 17:00
codeforces 396C On Changing Tree
dfs序
+BIT
一棵树,根节点为1,现有两种操作1vxk:对节点v的值+x,对节点v的后继中,距离为i的节点的值+x-i*k。2v:输出节点v现在的值。对子树进行操作的话,容易想到树状数组或者线段树,先对树做一遍dfs标上时间戳,这样节点v的子树的时间戳就是l[v]--r[v]这个区间,那么对子树的加减就可以转化成区间的加减。再来看操作,操作一v的操作可以看成+x-0*k,或者说是x+deep[v]*k-de
yanglei040
·
2014-03-01 22:00
poj2763 Housewife Wind 在线LCA+BIT
整体上思路还是dis[x]+dis[y]-2*dis[lca(x,y)],但是更新时如果一条一条的去更新,显然会超时..这里可以结合
dfs序
和树状数组来实现更新和查询。
yanglei040
·
2014-02-08 16:00
poj2796Feel Good(笛卡尔树)
笛卡尔树首先是一颗二分查找树,每一颗子树的
dfs序
列都是原序列的连续的子序列。再利用笛卡尔树堆的性质可以O(1)找出这个连续的子序列最小值,直接更新最大值即可。因为要求这个区间的左右端
ophunter
·
2013-12-30 13:00
数据结构
Hdu 3887 Counting Offspring \ Poj 3321 Apple Tree \BZOJ 1103 [POI2007]大都市meg
这几个题练习
DFS序
的一些应用。
niuox
·
2013-08-03 18:00
【dp】Grouping by Prefixes
求有多少符合要求的B,同时给出一种方案.第一种思路是建出字母树,那么问题转化为在树上选m个独立的子树覆盖所有的叶子,这个直接做是o(n*m*m)的,所以要转到
dfs序
上,压缩字母树的边后dp就可以了,这是一队的算法
huyuncong
·
2013-07-31 20:00
poj 3177 (双联通)
第一道双联通的题目,求加几条边让原图成一个双联通图,求出度数为1的双联通分量的个数+1/2、Low[u]为u或u的子树中能通过非父子边追溯到的最早的节点,即
DFS序
号最小的节点的序号#include #
aixiaoling1314
·
2013-07-29 20:00
编程
算法
百度
ACM
二分匹配
hdu 4612 Warm up - 双连通 + 树形DP
定义Low(u)为u或u的子树中能通过非父子边追溯到的最早的节点,即
DFS序
号
qq172108805
·
2013-07-28 10:21
DP
模版
连通
【图论】bfs树与dfs树的两个妙用
对于一张无权无向图,我们通过
dfs序
和bfs序两种不同方法的遍历便会得到两棵不同的遍历树,而且它们各具特点。bfs树:分层,回边只出现于同层或相邻两层,同时可以得到源点到各点的最短路。
huyuncong
·
2013-07-26 19:00
e-Government CF 163E
自动机(预处理surnames)或者后缀数据结构(处理Text)来解,但前一种方法不好处理插入和删除操作,而后一种方法由于surnames和询问次数过多会TLE,正确解法是处理AC自动机fail逆向树的
dfs
gyarenas
·
2013-07-12 21:00
CF 258E Little Elephant and Tree 【线段树,树上
DFS序
列】
题意:对一颗树进行m次操作,每次操作(a,b)都是在节点a和b的子树的所有节点后边加入操作的序号。最后询问每个节点分别与多少个其他节点拥有相同的操作编号。英文题解:http://codeforces.com/blog/entry/6213首先根据DFS顺序将树转化为一个线段树,剩下的问题就可以用线段树来解决了。如果节点x进行了第i种操作,那么x所有的儿子节点也都进行了相同的操作,只需要将每个节点的
yang_7_46
·
2013-07-09 11:00
poj-openjudge 1042:Moles 解题报告
2:输出mole所在点到其子孙的最大距离3uvw:将一棵树边(u,v)的权值改为w思路:一开始想的是树链剖分,但是不会处理2,就算了只好用挫一点的办法了,所以代码巨长......对于2,可以先求得树的
dfs
u010638776
·
2013-07-08 15:00
阿狸的打字机 NOI2011
AC自动机是肯定的了,但关键是如何完成快速匹配,如果像普通的自动机那样在每个状态都通过fail转移累加的话肯定会超时的,所以需要一种新的方法,那就是维护fail逆向指针树的
dfs序
列,听上去挺麻烦的,
gyarenas
·
2013-07-06 21:00
Housewife Wind poj2763
LCA+树状数组,用由于
dfs序
列中同一子树节点是连续的,所以可以用树状数组维护
dfs序
列到到根的距离。
gyarenas
·
2013-06-29 21:00
POJ 3659 Cell Phone Network(贪心)
求树的最小支配集的贪心解法是:选择一个点,求出
dfs序
列,按照得到的序列的反向序列进行贪心,对于一个既不属于支配集也不与支配集中点相
diary_yang
·
2013-05-16 16:00
poj
图论
BZOJ1103 POI2007 大都市
然后分析一下、、这题就是快速求一个链上的数字和、、比如我们现在考虑根、就是相当于把根的所有子孙权值和剪掉这个儿子之外的所有儿子的子孙权值和、、也就是说、每个点的权值只在它和它的子孙上有效、、于是、、想到了
DFS
·
2013-02-21 22:00
2007
AC自动机+数据结构 阿狸的打字机
第一步:先读入字符串,建好AC自动机,我在这里被坑了,,,根据题目的特殊性,可以O(n)插入到字典树里面第二步:建成fail树,预处理
dfs序
。第三步:离线回答询问。
haha593572013
·
2013-01-28 00:00
BOJ Season Autumn, 2012
from=0101010202&ref=hotnewsfeed&sfet=102&fin=0&ff_id=256603565#nogoA怎么乱搞都能过…标程是用树链剖分写的,然后通过的代码有
dfs序
列的
shahdza
·
2012-10-10 00:00
c
树形结构转换线性结构的方法(lca倍增)
这个讲的还不错的,整理的很全 http://blog.csdn.net/lyhypacm/article/details/6734748hdu3966
dfs序
是针对某条路径,利用根到路径#include
jxy859
·
2012-08-18 20:00
树形结构转线性结构的方法
现在动态更新一个点的权值,叫你查询一个点对路径上所有点权的和,这种问题和图论的Tree Problem非常类似,我们可以利用树形结构转线性结构的方法来处理,我们考虑随便取一个点,比如说1,作为根,这样我们就可以得到一个
DFS
Balloons2012
·
2012-08-12 22:00
一些动规题
但是如果其中一维是
dfs序
,即在树上呢。。。而且,还得缩环成树。。。先缩环,一维dfs,二维线段树or单调栈。
huyuncong
·
2011-10-27 16:00
树形结构转线性结构的方法(帖子汇总)
现在动态更新一个点的权值,叫你查询一个点对路径上所有点权的和,这种问题和图论的Tree Problem非常类似,我们可以利用树形结构转线性结构的方法来处理,我们考虑随便取一个点,比如说1,作为根,这样我们就可以得到一个
DFS
lyhypacm
·
2011-08-31 10:00
数据结构
apple
tree
HDU 3887 Counting Offspring [
DFS序
列+树状数组]
HDU3887CountingOffspring[
DFS序
列+树状数组]CountingOffspringTimeLimit:15000/5000MS(Java/Others) MemoryLimit
From A Start,As An Acmer
·
2011-07-28 00:00
URAL 1040. Airline company
DFS序
列,对边进行编号刚好可以构造出满足要求的解,并且无解的情况是不存在的。 1 #include 2 using namespace s
Standing on Shoulders of Giants
·
2008-11-06 16:00
上一页
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
其他