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序
HDU 5390 :tree(线段树离线分治 + 01字典树)
既然修改一个点会影响到它的子树的答案,考虑按
dfs序
来维护一棵线段树,每次将修改更新到它的
dfs序
区间。要使得异或上某个值最大,需要用到01字典树,可以线段树的每一个结点维护一棵01字典树,每
猝死在学ACM的路上
·
2020-08-15 11:12
01字典树
HDU5390 Tree(线段树 + Trie)
[x]^val[v]},v是x到根节点上路径上的点0xy:将节点x的权值改为y,即val[x]=y思路:查询x到根节点的路径上的点的影响,可以转换为每次修改一个点给这个点的子树中每个点都影响,这样跑出
dfs
hnust_W_unc_h
·
2020-08-15 10:13
数据结构
CodeForces770C【强连通分量+
DFS序
】
然后就是对每个main课程DFS搜,然后就好啦,然后智障的窝第一次发现这个拓扑排序的逆序竟然是
DFS序
。。
keyboarder_zsq
·
2020-08-15 10:37
codeforces
DFS
codeforces
dfs
HDU5390 tree
dfs序
+线段树分层离线+字典树求异或最大值
treeTimeLimit:16000/8000MS(Java/Others)MemoryLimit:262144/262144K(Java/Others)ProblemDescriptionGivenarootedtree(node1istheroot)withnnodes.Theithnodehasapositivevalueviatbeginning.Wedefinetheuniversal
上决FX
·
2020-08-15 10:52
数据结构
JZOJ 3338. 【NOI2013模拟】法法塔的奖励
nlognnlognnlognSolutionSolutionSolutionmd要不是最后那句话我这道题绝对是最快最优解,艹首先这就是一道二维偏序嘛(一维是权值,另一维是dfndfndfn),所以我们按dfsdfs
dfs
ssl_xxy
·
2020-08-14 22:15
线段树
平衡树
单调队列
CDQ分治
JZOJ
3338
NOI2013模拟
法法塔的奖励
法法塔的奖励
水你可以搞
dfs序
你可以搞Treap的启发式合并你可以搞线段树合并#include#include#definefo(i,a,b)for(i=a;imid)returnquery(right[x],mid
WerKeyTom_FTD
·
2020-08-14 15:08
线段树
treap
dfs序
【CF917E】Upside Down(哈希二分)(后缀数组)(AC自动机)
在链上的可以直接建立正反AC自动机,然后树上DFS的同时AC自动机中
DFS序
+差分算一下出现次数即可。考虑横跨LCA的情况,找出u->LCA的后缀能匹配的最长前缀和LCA->v的前缀能匹配的最长后缀。
zxyoi_dreamer
·
2020-08-14 08:39
后缀数组SA
AC自动机
[POJ 3694]Network(Tarjan+并查集+LCA 动态加边求图中桥的个数)
1≤|V|≤100000,1≤|E|≤200000,1≤q≤1000思路对于初始的图,用tarjan算法生成一棵DFS树以及其
DFS序
,并同时求出最开始时整张图中的桥的个数,将除了
我是傻叉
·
2020-08-14 07:11
ACM-ICPC
图论
传统题
动态图问题(Link-Cut
Tree等)
POJ
LOJ147
dfs序
4 题解(
dfs序
+树状数组+树上差分)
题目:LOJ147.题目大意:给定一棵nnn个点的树,要求支持以下操作:1.格式1 a x1\,a\,x1ax,表示将点aaa的点权增加xxx.2.格式2 a x2\,a\,x2ax,表示将点aaa的子树增加xxx.3.格式3 a b3\,a\,b3ab,表示查询链(a,b)(a
hezlik
·
2020-08-14 06:56
codeforces-375D-树上莫队
题目大意:给定一棵有根树,每次询问一个节点的子树中颜色数大于等于k的颜色总数;题目解析:搞出
dfs序
,其实就变成序列了,莫队也很好写,开个cnt数组记录颜色种数,再开个least数组记录至少i个的颜色个数
zyz_3_14159
·
2020-08-14 00:19
莫队
树形依赖背包dp的最优解问题
fij表示在
dfs序
序列上做了前i个点,已经选择了j个人的最大权值和。
weixin_30954265
·
2020-08-13 21:38
(树状数组差分维护
DFS序
+LCA+细节处理)
4999:ThisProblemIsTooSimple!TimeLimit:10SecMemoryLimit:256MBDescription给您一颗树,每个节点有个初始值。现在支持以下两种操作:1.Cix(0usingnamespacestd;#definelowbit(x)x&(-x)inlineintread(){intx=0,f=1;charch=getchar();while(ch'9'
weixin_30517001
·
2020-08-13 20:48
Codeforces Round #442 (Div. 2)A,B,C,D,E(STL,dp,贪心,bfs,
dfs序
+线段树)
A.Alexandbrokencontesttimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputOnedayAlexwascreatingacontestabouthisfriends,butaccidentallydeletedit.Fortunately,allt
weixin_30415113
·
2020-08-13 20:31
[CSU - 1811 (湖南省赛16)] Tree Intersection (
dfs序
维护子树+离线询问+树状数组)
CSU-1811(湖南省赛16)给定一棵树,每个节点都有一个颜色问割掉任意一条边,生成的两个子树中颜色集合的交集大小这个是
dfs序
处理子树+离线询问+bit维护的解法首先问题转化为求解一个子树中有多少种颜色以及独有颜色的数量用总的颜色数量减去独有颜色数量即为这棵子树的答案先做一遍
mis_deer
·
2020-08-13 19:09
技巧
树状数组
NOI模拟(5.23) TJOID2T2 xor (bzoj5338)
一个子树查询一个链查询,妥妥的树链剖分,对于异或最大的数,显然是trie上高低位贪心就可以了,然后因为区间查询,那么可持久化就好了,复杂度O(nlog2n),其实还可以把两种询问分开来建可持久化trie,对于第一种按照
dfs
scarlyw
·
2020-08-13 18:16
NOIP解题报告
树链剖分
trie
【点分治】【点分治序】BZOJ3784 树上的路径
分析:首先,定义点分治序为:每次找到重心后,以重心为根,当前子树的
DFS序
。每一个重心的DFN序次连接,就组成了点分治序。显然,点分治序的长度是NlogNNlogNNlogN级的。
616156
·
2020-08-13 17:36
点分治
图论
dfs序
题集
dfs序
可以维护一个子树内的信息需要记录dfs进的时间以及所有子树都遍历完的时间voiddfs(intu,intfa){L[u]=++id;for(inti=head[u];~i;i=e[i].next
Sugewud
·
2020-08-13 17:33
题型总结
一类有依赖的树形DP
Text这类问题通常形式是给定一棵树,父亲选了儿子才能选,求最优解或者方案数进行DP考虑到如果直接枚举每一个儿子与父亲的转移,状态非常大,一般是难以跑过的
DFS序
对于树上的问题,可以考虑用
DFS序
来做。
BAJim_H
·
2020-08-13 14:40
学习小记
————树形dp
dp
树形DP
动态规划
【TJOI2018】 异或(可持久化01Trie+树链剖分)
有了这个东西我们就可以直接根据
dfs序
建立可持久
Michael_GLF
·
2020-08-13 14:21
————数据结构————
树链剖分
Trie
【CF768G】The Winds of Winter 可持久化线段树
DFS序
n≤100000题解首先用
DFS序
+可持久化线段树求出删掉这个点后剩下的联通块的大小的最大值max、次大值sec、最小值min。
ez_yww
·
2020-08-13 14:33
数据结构
数据结构--线段树
数据结构--可持久化数据结构
dfs序
[CF1110F] Nearest Leaf
Portal一棵n个点的有根树,规定一种
dfs序
,\(m\)次询问一个点\(u\)和一个区间\([l,r]\),求
dfs序
在这个区间内的叶子中,到\(u\)最小的距离。
dayfs2560
·
2020-08-13 13:16
牛客练习赛1 树 dp +
dfs序
可以按照
dfs序
对树上的点一个个进行染色。这样对一个节点x进行染色的时候,它的父亲节点已经被染色了。
黑丝太白
·
2020-08-13 10:09
牛客竞赛
动态规划
思维
OI知识点总结(提高/省选-)
),差分约束最小生成树(kruskal、prim)矩阵树定理(生成树计数)拓扑排序二分图染色,二分图匹配tarjan找scc、桥、割点,缩点01分数规划树LCA(倍增,tarjan)树的直径、树的重心
dfs
stone41123
·
2020-08-11 18:01
随便写两句心情
ACM算法学习路线、清单
DFS、IDDFS、IDA*、A*、双向BFS、记忆化最短路SPFA、bellman-fort(队列优化)、Dijkstra(堆优化)、Johnson、Floyd、差分约束、第k短路树树的重心和直径、
dfs
849175932
·
2020-08-11 13:53
算法
图论
程序人生
2020牛客暑期多校训练营(第二场)
如果有什么讲的不清楚的欢迎留言私信交流~文章目录D.Duration(签到)F.FakeMaxpooling(单调队列)C.CovertheTree(
dfs序
+思维)B.Boundary(计算几何)J.JustShuffle
我不会DP
·
2020-08-11 11:23
acm
牛客小白月赛12 H-华华和月月种树(
dfs序
+差分树状数组)
submissionId=40398427题解官方题解先离线把所有操作都读进来,把树形建好,处理
dfs序
注意到一棵子树的树根root
Code92007
·
2020-08-11 11:51
#
线段树/树状数组
#
#
差分
NOI2013 树的计数
NOI2013树的计数给定一个
dfs序
和bfs序,求解符合这两个条件的所有树的平均树高。
ylsoi
·
2020-08-11 05:10
思维题
小H和游戏——
dfs序
+树状数组 | 思维
题解:解法一:树状数组(线段树)+
dfs序
这个题先讲相对而言时间复杂度比较高的解法,但是比较好想,容易理解。首先我们可以求出每个点的儿子编号的区间(类似于
dfs序
的操作)
木每立兄豪
·
2020-08-11 03:43
树状数组
杂记
树状数组
dfs序
思维
每日一题 4月7日 树
dfs序
+DP
题目链接:https://ac.nowcoder.com/acm/problem/13611#include#defineLLlonglongusingnamespacestd;constintmod=1e9+7;LLf[305][305];intmain(){intn,m;scanf("%d%d",&n,&m);f[0][0]=1;for(inti=1;i<=n;i++){for(intj=1;
H_ang
·
2020-08-11 03:45
树形dp
树dfs序
链式向前星(数组模拟邻接表)
昨天遇见
dfs序
时不太会模拟,因为对出栈的点的顺序理解的不是很通透,全套板子。一步一步稳着来,zkw冲呀含义:链式向前星是一种特殊的边集数组,我们把边集数
在路上Ven
·
2020-08-10 12:31
图的存储
省选模拟赛20200417 B、树 (点分治+ST表 || 线段树分治+虚树)
题解一看就不会写了个60分的暴力就走人最后两分钟想到一个假的正解:换根维护线段树20200418:从早上9:00写到10:30,发现是有问题的因为换根时的修改区间在
dfs序
上,是连续的但是查询的区间只是编号连续
cqbzcsq
·
2020-08-09 18:32
数据结构
分治
c++
算法
分治
数据结构
2020牛客多校第四场A题 Ancient Distance
dfs序
+线段树+k级祖先
AncientDistance题意NNN个点以点111为根的树,在树上确定KKK个关键点,每个点的权值valvalval为点与点到根节点上碰到的第一个关键点的距离(若路径上没有关键点,那么权值为inf\infinf),答案为所有点中最大权值的最小值。现在求K=1,2,...,NK=1,2,...,NK=1,2,...,N的答案之和题解题意比较难理解,看看样例应该能懂如果确定KKK值,那么我们单次
linbinwu123
·
2020-08-09 15:23
树和森林
#
线段树
数据结构
cf29d 深搜,
dfs序
#includeusingnamespacestd;#definemaxn500structEdge{intto,nxt;}edge[maxnv;voidinit(){memset(head,-1,sizeofhead);k=tot=0;}voidaddedge(intu,intv){edge[tot].to=v;edge[tot].nxt=head[u];head[u]=tot++;}boold
weixin_30765475
·
2020-08-09 13:33
Query on a graph HDU - 5957
pid=5957好想但是难写先求个生成树并把多余边记下来跑个bfs序并用线段树维护bfs序和
dfs序
略有不同对一个节点遍历一遍其所有子节点并取最小最大值会得到其一级子节点在bfs序中的区间再跑一遍就会得到二级子节点在
sunyutian1998
·
2020-08-09 12:21
线段树/树状数组/RMQ
dfs序
基本类型 详细
参考
dfs序
七个经典问题——weeping本博文又名:手把手教你写树状数组1.单点修改,子树和查询单点修改,区间查询树状数组维护每个点的权值:1.修改x(增加w):单点修改——add(x,w);2.查询
kkkkahlua
·
2020-08-09 09:29
dfs
树状数组
zzulioj 1916 (
DFS序
树状数组)
TimeLimit:1SecMemoryLimit:128MBSubmit:228Solved:20SubmitStatusWebBoardDescription给一颗树,有n个结点,编号为1到n,1为根节点,有两种操作,1xy把x结点权值加y,2x查询x到根节点所有结点的权值和.每个结点权值初始化为0。Input第一行输入一个整数t,代表有t组测试数据。每组数据第一行为两个整数n,m代表结点个数
风吼迷林
·
2020-08-09 08:42
算法
2019牛客暑期多校训练营(第八场) I Inner World(
dfs序
+线段树)
链接:https://ac.nowcoder.com/acm/contest/888/I来源:牛客网题目描述GromahandLZRaretransferedtoaforest,maybeitistheinnerworldofthegreattomb.Initially,therearenn_{}nrootedtreesnumberedfrom11_{}1tonn_{}nwithsize11_{}
hehedad
·
2020-08-09 07:32
数据结构
CF #326 (Div. 2) E Duff in the Army
////解题思路://函数式线段树,初始建立一颗1-P的线段树,然后将每个//节点上的信息,按照
dfs序
列,维护到以该节点为根的函数式//线段树.同样的我们的答案,只与rt[u],rt[v],rt[LCA
TIMELIMITE
·
2020-08-09 06:25
Codeforces
线段树
Data
structure
Codeforces-877E:Danil and a Part-time Job(
DFS序
列+线段树)
E.DanilandaPart-timeJobtimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputDanildecidedtoearnsomemoney,sohehadfoundapart-timejob.Theinterviewhavewentwell,sonowh
Mitsuha_
·
2020-08-09 06:49
数据结构-线段树//树状数组
ACM
数据结构
SWERC 2016 F题(
dfs序
+主席树)
思路:先求出这棵树的
dfs序
,再对
dfs序
建立主席树,然后对每个节点查询#include#include#include#includeusingnamespacestd;typedeflonglongll
ME495
·
2020-08-09 06:03
题解
「LOJ2462」「2018 集训队互测 Day 1」完美的集合
一次树上背包直接做是O(nm2)O(nm^2)O(nm2)的,但是在dfsdfs
dfs序
上倒序DPDPDP可以做到O(nm)O(nm)O(nm),具体实现可以看代码。考虑如何计算那个组合数。
DSL_HN_2002
·
2020-08-09 05:53
文章类型——题解
Codeforces 29D Ant on the Tree 树的遍历
dfs序
题目链接:点击打开链接题意:给定n个节点的树1为根则此时叶子节点已经确定最后一行给出叶子节点的顺序目标:遍历树并输出路径,要求遍历叶子节点时按照给定叶子节点的先后顺序访问。思路:给每个节点加一个优先级。把最后一个叶子节点到父节点的路径上的点优先级改为1把倒数第二个叶子节点到父节点的路径上的点优先级改为2如此每个点就有一个优先级,每个访问儿子节点时先访问优先级大的即可对于无解的判断:得到的欧拉序列不
九野的博客
·
2020-08-09 05:25
codeforce
DFS
2020HDU多校第六场--A Very Easy Graph Problem(最小生成树+
DFS序
建立线段树 or 树状数组)
大体思路是求一个最小生成树用到了那些边,同时任意选取一个点进行DFSDFS
DFS序
,记录下每个点的ininin数组和outoutout数组,最后遍历用到的每条边,求出他左右0点和1点的个数,对每条边的贡献进行累加求和
十点就睡
·
2020-08-09 05:51
多校
[bzoj3306]树
dfs序
+线段树
3306:树TimeLimit:10SecMemoryLimit:256MB[Submit][Status][Discuss]Description给定一棵大小为n的有根点权树,支持以下操作:•换根•修改点权•查询子树最小值Input第一行两个整数n,Q,分别表示树的大小和操作数。接下来n行,每行两个整数f,v,第i+1行的两个数表示点i的父亲和点i的权。保证fusingnamespacestd;
Leokery
·
2020-08-09 03:00
dfs序
线段树
bzoj
牛客多校4 A Ancient Distance 线段树+
dfs序
思路源于某巨佬:巨佬博客对于1usingnamespacestd;constintN=2e5+100;vectorg[N],st;inttot,in[N],out[N],n,ans[N],rnk[N];intfa[N][22],dep[N];typedeflonglongll;voidinit(){tot=0;for(inti=1;i>=1;bit++;}returnu;}structsegTre
xtuls
·
2020-08-09 01:10
牛客多校
BZOJ 1103
DFS序
+线段树
思路:先搞出来
DFS序
进入这个点+1出这个点-1线段树维护前缀和(因为还要修改)搞定修改的时候只修改底下节点就OK了(边权–>点权不多说)//BySiriusRen#include#include#includeusingnamespacestd
weixin_34211761
·
2020-08-09 00:53
bzoj2819
DFS序
+ LCA + 线段树
https://www.lydsy.com/JudgeOnline/problem.php?id=2819题意:树上单点修改及区间异或和查询。思维难度不高,但是题比较硬核。整体思路是维护每一个结点到根节点的距离。查询u,v树链上的异或和就是query(v)^query(u)^a[lca(u,v)],所以就要想办法维护树上的结点到根节点的异或和。网上的题解大多是选择直接维护答案,修改的时候修改整颗子
weixin_30882895
·
2020-08-09 00:05
php
数据结构与算法
【LOJ】#2182. 「SDOI2015」寻宝游戏
题解终于了解怎么动态维护虚树了就是把点按照
dfs序
排个序啊这道题显然是求虚树上所有边长的两倍我们把
dfs序
排完序,相邻两个点加上路径长(包括首尾),删除的时候删一个点减去它到两边再加上新近相邻的两个点即可增加同理代码
weixin_30399155
·
2020-08-08 23:15
【bzoj4530】[Bjoi2014]大融合 并查集+线段树合并
nlog^2n)做法先把原树建出来,每次查询就等价于计算子节点的size*(父亲节点所在联通块的大小-子节点的size)用并查集找到节点的祖先,维护子树size这个东西可以用线段树合并来做,查询就是查询
dfs
qingdaobaibai
·
2020-08-08 22:16
数据结构
【bzoj4530】【BJOI2014】【大融合】【
dfs序
+线段树合并+并查集】
Description小强要在N个孤立的星球上建立起一套通信系统。这套通信系统就是连接N个点的一个树。这个树的边是一条一条添加上去的。在某个时刻,一条边的负载就是它所在的当前能够联通的树上路过它的简单路径的数量。例如,在上图中,现在一共有了5条边。其中,(3,8)这条边的负载是6,因为有六条简单路径2-3-8,2-3-8-7,3-8,3-8-7,4-3-8,4-3-8-7路过了(3,8)。现在,你
sunshinezff
·
2020-08-08 21:29
线段树
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他