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序&树链剖分
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
数据结构
论在LCT上下放标记
其实看起来最快的方法是先用O(n)的时间建成一棵平衡树,然后用类似
树链剖分
中轻重链剖分的办法,把这棵树剖成实链和虚
t14t41t
·
2020-08-08 21:32
动态树LCT
OI党坚毅的步伐
【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
线段树
BZOJ 3235 攻略 贪心+线段树+
dfs序
列
题目描述题目简述:树版[k取方格数]众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏。今天他得到了一款新游戏《XX半岛》,这款游戏有n个场景(scene),某些场景可以通过不同的选择支到达其他场景。所有场景和选择支构成树状结构:开始游戏时在根节点(共通线),叶子节点为结局。每个场景有一个价值,现在桂马开启攻略之神模式,同时攻略k次该游戏,问他观赏到的场景的价值和最大是多少(
shiyongyang
·
2020-08-08 21:55
线段树
最近公共祖先问题(ST算法)
推荐几篇讲解该问题比较详细的博客点击打开链接点击打开链接点击打开链接本篇主要讲解如何采用解决RMQ问题的ST算法来解决LCA问题步骤如下:1DFS遍历
DFS序
用ver[maxn]保存(包含回溯时经过的点
我是鶸
·
2020-08-08 19:12
C语言-ACM-算法-题解
bzoj 4034 (
dfs序
+线段树
题目链接///.-~~~~~~~~~-.__.-~~~~~~~~~-.///__.'~..~`.__///.'//\./\\`.///.'//|\\`.///.'//.-~"""""""~~~~-._|_,-~~~~"""""""~-.\\`.///.'//.-"`-.|.-'"-.\\`.///.'//______.============-..\|/..-============.______
twh233
·
2020-08-08 19:17
dfs序
bzoj4530[Bjoi2014]大融合 线段树合并+
dfs序
+并查集
题意比较明显就不说了。这题我思考了一会儿,由于题解并不说清楚为什么这样处理的原因,我想了很久才想通==。建议看完理解题解以后不要看标,自己独立打出来,这题的思路很妙~。。首先很容易知道先把原树建出来以后,答案就是(size(fa)-size(x))*size(x)那么问题是怎么样处理询问呢,当然你可以树剖暴力搞,因为我一开始也是这么想的,这里提供一种更优美的解法==我们把树建出来以后,在图上建一颗
Transcendence_magia
·
2020-08-08 19:21
bzoj
线段树合并
并查集
dfs序
树链剖分
完全模板(子树查改+树链查改)
题目链接以洛谷题为原题。看代码。下面是模板代码(横线之外的为模板代码):/*--------------------1.mchange(x,y,v)树链更改(x,y)2.mask(x,y)树链查询(x,y)3.achange(x,v)子树更改x4.aask(x)子树查询x--------------------*/#include#include#include#include#include#i
KalznAsawind
·
2020-08-08 19:20
数据结构
Bzoj2819:Nim:
树链剖分
题目链接:Nim线段树维护异或值的沙茶题然而dfs会爆栈所以得开手工栈(见代码)#include#include#include#includeusingnamespacestd;constintmaxn=500010;inttot=0,h[maxn],ind=0,s[maxn],fa[maxn];structedge{intto,next;}G[maxns[k]&&dep[G[i].to]>de
TheWolfWhistlingSong
·
2020-08-08 19:32
OI
树链剖分
bzoj 3306: 树
dfs序
+线段树
题意给定一棵大小为n的有根点权树,支持以下操作:换根修改点权查询子树最小值n,q#include#include#include#includeusingnamespacestd;constintN=100005;intn,m,dep[N],dfn[N],b[N],tim,a[N],fa[N][20],last[N],cnt,mn[N],mx[N];structedge{intto,next;}e
SFN1036
·
2020-08-08 19:11
线段树
LCT 讲解 动态树的基本使用
Link-Cut-tree动态树解决树上问题的一种数据结构,没学过
树链剖分
的建议先学一下
树链剖分
。你们先假装会了
树链剖分
QwQ。
magic_sheep
·
2020-08-08 18:09
动态树
BZOJ 4551 树
dfs序
+线段树 / 并查集
法一:
dfs序
+线段树分析类似于区间修改,单点查询,因为给某个结点打上标记会对它的整棵子树产生影响。修改的注意点是只有当前修改的情况优于当前标记的情
kkkkahlua
·
2020-08-08 17:11
dfs
并查集
BZOJ
线段树
树
Codeforces860E Arkady and a Nobody-men -- 单调栈 + 倍增
对于同一深度的点,将它们按
dfs序
从小到大排序,然后分别计算每个点左边、右边所有点对它的贡献。考虑如何计算第i个点左边所有点对它的贡献。由于这些点与第i个点的lca
gjghfd
·
2020-08-08 15:20
倍增
单调栈
BZOJ 4043 [HAOI2015]树上操作
dfs序
线段树
$\Rightarrow$戳我进BZOJ原题$\Rightarrow$戳我进洛谷原题[HAOI2015]树上操作TimeLimit:10SecMemoryLimit:256MBDescription有一棵点数为$N$的树,以点$1$为根,且树点有边权。然后有$M$个操作,分为三种:操作$1$:把某个节点$x$的点权增加$a$。操作$2$:把某个节点$x$为根的子树中所有点的点权都增加$a$。操作$
ayf1988
·
2020-08-08 14:08
bzoj 3637: Query on a tree VI
树链剖分
&& AC600
3637:QueryonatreeVITimeLimit:8SecMemoryLimit:1024MBSubmit:206Solved:38[Submit][Status][Discuss]DescriptionYouaregivenatree(anacyclicundirectedconnectedgraph)withnnodes.Thetreenodesarenumberedfrom1ton.
alex151194310
·
2020-08-08 14:50
LCT动态树【史上最精简易懂的LCT讲解】
LinkCutTree(动态树,LCT)介绍首先简单介绍一下LinkCutTree,将一棵树分成轻边和重链,类似于
树链剖分
,但是树剖是静态的。LCT可以用于动态的加点和删点,甚至还可以换根。
aiweiluan5095
·
2020-08-08 14:14
【LCT】BZOJ2049[Sdoi2008]Cave 洞穴勘测
与
树链剖分
类似,LCT把最后一个访问的儿子做为重边(暂且将PerferredPath叫做重边吧QAQ)。对于一个由重边组成的链用序列之神Splay来维护。
RZXZ
·
2020-08-08 13:56
bzoj
LCT
BZOJ 3637: Query on a tree VI (
树链剖分
+树状数组)
BZOJ3637:QueryonatreeVI题意概述:给一棵n个结点的树,结点有黑白两色,一开始全为黑色.对于q个操作,每个操作由两个整数op,u给出.当op=0,将u点颜色反转.当op=1,求与u点相连的点的个数(若两点及两点间路径上均为同色点,则两点相连,否则不相连),即求从u点往四周扩散的同色块大小.题目分析:(初学链剖,戳开了这个题,然后……d了一天的bug)在网上找到了一篇题解,感觉思
The_useless
·
2020-08-08 13:07
数据结构-树链剖分
BZOJ
NOI2015总结
树链剖分
搞搞就好了T3……等我先A前两题半小时码掉T1,大样例都没测然后去切T2先写暴力诶呀加是加一条链,删是删一颗子树啊…看错题了一开始(
Tgop_Knight
·
2020-08-08 13:06
各类比赛
BZOJ 4034 HAOI2015 T2
DFS序
+线段树
题目大意:给定一棵树,每个点有点权,支持下列操作:1.某个点的点权+a2.某棵子树所有点权+a3.查询某个点到根路径上的点权和这个用入栈出栈序就可以了入栈为正,出栈为负,那么一个点到根路径上的权值和就是入栈出栈序中[1,入栈位置]的和而子树在入栈出栈序中是连续的,因此用线段树维护一下就可以了(似乎只要无脑链剖就可以了?#include#include#include#include#defineM
PoPoQQQ
·
2020-08-08 13:18
线段树
DFS序
BZOJ
BZOJ 3252攻略
dfs序
+线段树
BZOJ3252攻略
dfs序
+线段树题目链接:右转进入题目题目大意:给定一棵以1为根的n个点的树,树有点权且点权为正整数,可以选择k条以根作为起点的路径,每条路径的价值即这条路径上所有点的点权之和。
Mys_C_K
·
2020-08-08 13:19
线段树
BZOJ
【LuoguP4719】动态DP模板-
树链剖分
+线段树+矩阵乘法
测试地址:动态DP做法:本题需要用到
树链剖分
+线段树+矩阵乘法维护动态DP。动态DP这个东西以前听过,但当时没有看懂,现在想来觉得是卡在矩阵乘法这个地方。这里用的不是传统的矩阵乘法。
Maxwei_wzj
·
2020-08-08 12:55
数据结构-线段树
算法-树链剖分
数学-线性代数
bzoj 4034: [HAOI2015]树上操作(线段树+
dfs序
)
用
dfs序
进栈+1出栈-1+线段树区间修改,查询维护PS:线段树又写挂了,调试了很久啊~~#include#include#include#include#include#definefo(i,a,b)
Lifel
·
2020-08-08 12:30
线段树
dfs序
bzoj
bzoj4551 [Tjoi2016&Heoi2016]树(
dfs序
+线段树)
我们发现标记一个点只会影响他的子树的答案,用
dfs序
转化为区间覆盖即可,深度越深越接近。还可以lct。
Icefox_zhx
·
2020-08-08 12:39
bzoj
线段树
-----树-------
【bzoj2002】 [Hnoi2010]Bounce 弹飞绵羊
非常裸的裸题……很明显每个点跳到的点的编号一定大于当前点,那么整个跳的图就形成了一个树结构,每个点的父亲节点定义为min(i+k,n)这样搞之后,操作1就是查询某个点的深度,操作2就是换父亲大概可以用
dfs
GEOTCBRL
·
2020-08-08 12:06
树
LCT
水题
BZOJ 2819
DFS序
+线段树
非递归的DFS写炸了…交了一个递归版的过了………..//BySiriusRen#include#include#includeusingnamespacestd;constintN=1000050;intn,nn,q,xx,yy,stk[N],in[N],out[N],top,cnt,tree[N*4];intfirst[N],next[N],v[N],tot,num[N],vis[N],fa[N
weixin_33766168
·
2020-08-08 11:17
[国家集训队]Tree II【LCT动态树lazy标记】
P1501[国家集训队]TreeII因为本题树形结构会改变,所以这里需要使用LCT来代替
树链剖分
来解决问题,所以就要涉及到关于LCT的一条链上的lazy标记的下放了。
Andres_Lionel
·
2020-08-08 11:08
LCT动态树
LCT
LuoguP5327 [ZJOI2019]语言 线段树合并+树链求并
考虑一个求解树链的并的经典做法就是$\sum_{i=1}^{n}dep[i]-\sum_{i=2}^{n}dep[LCA(i,i-1)]$.这里要求所有点都要按照$dfs$序排好.那么这道题中我们就基于
DFS
EM-LGH
·
2020-08-08 11:53
【SDOI2015】寻宝游戏
具体实现需要开一个
DFS序
的set,增删点类比建虚树过程即可。代码#include#include#include#include#include#include#includeu
StrideTG
·
2020-08-08 10:20
--------STL
DFS序
--------虚树
Codeforces Round #556 (Div. 2) E. Tree Generator™(线段树教做人系列)
解题心得:假设将树用
树链剖分
标号,那么两个被标号的节点aaa、bbb,
GoldenFingers
·
2020-08-08 02:26
数据结构-线段树
codeforces 1149c
给出了()的字符串,这里的()字符串可以看成是
dfs序
列,再求lca时的那张表。所以这一个序列就可以看成是在
dfs序
上面,求树的直径。取某一段[l,r],可以知道lca一定在[l,r]之间。
weixin_44019404
·
2020-08-08 02:27
线段树
树的直径
GDSOI2017第三轮模拟4.21 总结
发现了ban的区间是
dfs序
上的一段后,就开始yy套路,结果居然想着线段树合并。而且还把决策单调性推错了。事实证明,都不知道当时在干什么???3第三题看着就觉得很数据结构,于是打了暴力
weixin_30877493
·
2020-08-08 02:54
一类树上问题的解决办法
目录转化成序列问题
dfs序
树链剖分
的运用括号序列求解树上距离问题树上莫队转化成普通莫队SP10707COT2-CountonatreeII欧拉序列差分思想单点、链、子树的转化点、边例题题意题解提取关键点
weixin_30563917
·
2020-08-08 02:52
JZOJ 5786 观察
一开始每个节点都是一颗棋子,一面白一面黑,白色的面朝上接下来就q次操作,操作分两种0操作将一个颗棋子翻转1操作询问一颗棋子与所有面朝上为黑色的棋子lca最深的那个的编号解题思路:LCA(最近公共祖先)+
DFS
SSL_HJQ
·
2020-08-08 02:05
dfs序
LCA
Codeforces 1149C Tree Generator™ 线段树 (看题解)
TreeGenerator™两点间的距离为depth[u]+depth[v]-2*depth[lca]给的字符串可以看成
dfs序
,对于x,y下标,x#defineLLlonglong#defineLDlongdouble
afd5154
·
2020-08-08 01:11
“科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 G:血压游戏(虚树+单调栈建树)
但是分层后他们可能会在某个点汇聚,就是它们的lca,所以我们得把他们所有的lca给求出来,然后建另外一棵树(虚树),对这个树dfs一遍求一下答案,求他们的lca,只要依次从左到右,两两的lca就是了,顺序可通过
dfs
nofuck~
·
2020-08-08 00:40
牛客
LCA
虚树
BZOJ 10628 Luogu 2633
由于有lastans所以强制在线,这道题就相当于树上的主席树,
树链剖分
+主席树,主席树相比普通主席树有一丢丢的改变,root[i]不再是指向root[i-1],而是指向它在树上的父亲,维护的序列是它到根节点的这条路径
weixin_30239339
·
2020-08-07 19:06
Trie——BZOJ4567/Luogu3294 [Scoi2016]背单词
pid=3294比较有趣的Trie题目之一(而且还挺新的)我们可以按照各串的后缀建一棵Trie树,然后
dfs序
遍历出需要的点并标记(指那些位于各串结尾的节点,这些是有用的)接着我们来考虑题目中的三种情况
jzq233jzq
·
2020-08-07 14:09
贪心
Trie/AC自动机
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
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
其他