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
ACM-树链剖分
湖南集训Day4
第二题想了下应该是
树链剖分
,然后发现搞不出来,回去水第一题,然后水完回来继续搞,发现改一下维护的量就好了,果然数据结构题一般都很水。第三完全搞不懂,好像是暴搜,但是根本想不出
nlj1999
·
2015-12-29 18:00
树链剖分
(二)
上午刚打了一个
树链剖分
的模版题……HDU:3966Aragorn’sStory题意:(多组数据)给定一棵带权值树(节点数n #include #include #include #defineN50005
zxn0803
·
2015-12-28 14:00
数据结构
bzoj1036 (
树链剖分
)
1036:[ZJOI2008]树的统计CountTimeLimit: 10Sec MemoryLimit: 162MBSubmit: 9901 Solved: 4003[Submit][Status][Discuss]Description一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作:I.CHANGEut:把结点u的权值改为tII
M_AXSSI
·
2015-12-24 18:00
【Educational Codeforces Round 3 E】【
树链剖分
】Minimum spanning tree for each edge 图构最小生成树,生成树必须包含第i条边
E.Minimumspanningtreeforeachedgetimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputConnectedundirectedweightedgraphwithoutself-loopsandmultipleedgesisgiven.Gra
snowy_smile
·
2015-12-23 20:00
codeforces
图论-最小生成树
数据结构-树链剖分
题库-CF
USACO 2015 December Contest, Platinum Problem Max Flow【
树链剖分
】
比较裸的
树链剖分
了,感谢Haild的讲解。首先第一遍dfs预处理出size,son(重儿子)。第二遍dfs重编号。然后线段树就可以了。 感觉就是把一棵树弄成一条一条的链,新奇的hash方法。
y7070
·
2015-12-22 12:00
151221 HAoi2015 总结
T1树形dpdp[i][j]表示以i为子树,j个黑点每次向上枚举更新即可复杂度O(n^2)考场上sb了被卡常,50滚粗T2
树链剖分
,不说了T3博弈论首先搜索打表找规律发现n/i一定时,sg一定然后分块大法好
lcrtest
·
2015-12-21 19:00
基础
XOR
前缀和
LCA+最小生成树 Codeforces609E Minimum spanning tree for each edge
可以用LCA来做,也可以用
树链剖分
来维护。LCA维护#incl
qwb492859377
·
2015-12-20 20:00
[
树链剖分
+MST] CF609E. Minimum spanning tree for each edge
题目链接:Minimumspanningtreeforeachedge题意:给一个无向图,n个点,m条边,对任意边edge[i],求出包含有边edge[i]的最小生成树。做法:考虑MST的性质,对任意两点u,v一定有且只有一条路径,当边[u,v]不是MST边的时候,加入边[u,v]便会形成环,于是在u到v的路径上找一条权值最大的边删去再加入边[u,v],之前环上的任意两点仍然连通。u到v路径的最大
kg20006
·
2015-12-20 19:00
数据结构
算法
codeforces
OI总结
甚至
树链剖分
,树上分治,树上莫队,平衡树!!!!!想到我连最基础的线段树都没学会,实在有些着急。所以先从DaD3zZ推荐的岩之痕线段树看起(连字符
abclzr
·
2015-12-19 15:00
OI总结
甚至
树链剖分
,树上分治,树上莫队,平衡树!!!!!想到我连最基础的线段树都没学会,实在有些着急。所以先从DaD3zZ推荐的岩之痕线段树看起(连字符
abclzr
·
2015-12-19 15:00
Query on a tree II
终于用
树链剖分
水掉了这题,LCA这种东西,树剖能做到O(N)预处理,O(logN)查询,所以果断不用倍增(每次都写错TAT)。
nlj1999
·
2015-12-19 09:00
树链剖分
理解&&poj 3237
树链剖分
用一句话概括就是:把一棵树剖分为若干条链,然后利用数据结构(树状数组,SBT,Splay,线段树等等)去维护每一条链,复杂度为O(logn)假如一个树就是一条链的话(极限的想想),我们可以用数据结构
a915800048
·
2015-12-16 22:00
树链剖分
poj3237
151216总结
TJOI2015D2T1给一颗树,每次给出A、B,求A->B的路径上max{aj-ai}(i先于j经过),然后将A->B的路径上的点全部加上v裸的
树链剖分
,主要是线段树最大最小值的合并操作,线段树维护区间最大值
beginendzrq
·
2015-12-16 20:00
总结
【Codevs3306】水果姐逛水果街Ⅲ
树链剖分
改!了!好!多!天!线段树尝试了下zkw,也算有所收获注释有空再加#include #include #include #include #include usingnamespacestd; #definepbpush_back constintinf=1047483647; intn,m,fa[200010],top[200010],v[200010],w[200010],siz[200010
Banlk
·
2015-12-16 14:30
水题
模版
省选
数据结构
线段树
树链剖分
SPOJ QTREE Query on a tree
思路:
树链剖分
的一种,将边权赋值给这条边的儿子节点,(u,v)也就是v节点,u->v,然后线段树维护节点之间的关系。
KIJamesQi
·
2015-12-13 20:00
树链剖分
HYSBZ - 1036 树的统计
思路:这是经典的
树链剖分
,有三个操作。
KIJamesQi
·
2015-12-12 16:00
数据结构
树链剖分
NOI 2015 软件包管理器 题解&代码
简单的
树链剖分
==不过第一次写真正意义上的树剖坑了我整整五个小时…写出来的代码也不算模板级别的思路,模板还得再找几道题习惯习惯再整理**对了==才没有抄过模板呢…在下的模板都是自己根据写法和记忆的难易自己整理出来的
Rainbow6174
·
2015-12-11 17:00
题解
C++
NOI
树链剖分
POJ3237
树链剖分
对于静态树的点权或边权的修改查询问题,都可以用轻重链剖分解决有关树上询问的问题可以参考Orz杨哲神犇模板题:POJ3237个人代码:#include #include #include #definelcosiz
nlj1999
·
2015-12-09 08:00
POJ 2763 Housewife Wind(
树链剖分
+BIT)
Description给你一棵树2种操作0x求当前点s到x的最短路然后当前的位置为x;1ix将第i条边的权值置为xInput第一行三个整数n,q和s表示点数,操作数和当前位置,之后n-1行每行三个整数abc表示a,b之间有一条权值为c的边,最后q行每行一个操作Output对于每个查询,输出查询结果SampleInput3311212320212303SampleOutput13Solution两个
V5ZSQ
·
2015-12-06 13:00
POJ 3237 Tree(
树链剖分
+线段树)
Description一棵树有n个节点,n-1条边,每条边有一个权值,三种操作CHANGEiv:将第i条边的权值改成vNEGATEab:将a到b路径上所有边的权值取反(x->-x)QUERYab:查询a到b路径上所有边权值的最大值Input第一行一个整数t表示用例组数,每组用例第一行一个整数n表示点数,之后n-1行每行三个整数abc表示a点和b点之间有一条权值为c的边,之后数行每行一次操作,以DO
V5ZSQ
·
2015-12-06 13:00
HDU 3966 Aragorn's Story(
树链剖分
+线段树)
Description给一棵树,并给定各个点权的值,然后有3种操作IC1C2K:把C1与C2的路径上的所有点权值加上KDC1C2K:把C1与C2的路径上的所有点权值减去KQC:查询节点编号为C的权值Input第一行为三个整数n,m和q分别表示点数,边数以及操作数,第二行n个整数表示n个节点的权值,之后m行每行两个整数a和b表示a和b之间有一条无向边,最后q行每行一种操作Output对于每次查询,输
V5ZSQ
·
2015-12-06 13:00
FZU 2082 过路费(
树链剖分
+BIT)
Description有n座城市,由n-1条路相连通,使得任意两座城市之间可达。每条路有过路费,要交过路费才能通过。每条路的过路费经常会更新,现问你,当前情况下,从城市a到城市b最少要花多少过路费。Input有多组样例,每组样例第一行输入两个正整数n,m(2 #include #include #include usingnamespacestd; #definemaxn55555 structE
V5ZSQ
·
2015-12-06 12:00
LightOJ 1348 Aladdin and the Return Journey(
树链剖分
+线段树)
Description一棵树,有n个点,每个点都有一个权值,有两种操作0ab,问从节点a到节点b路径上所有点权值和1ab,把节点a权值改为bInput第一行一个整数T表示用例组数,每组用例第一行为一个整数n表示树节点个数,第二行n个整数表示n个节点的权值1,之后n-1行每行两个整数a和b表示a和b有一条无向边,然后是一个整数m表示操作数,最后m行每行三个整数opuv,op=0表示查询节点a到节点b
V5ZSQ
·
2015-12-06 12:00
BZOJ 1036 树的统计Count(
树链剖分
+线段树)
Description一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作:I.CHANGEut:把结点u的权值改为tII.QMAXuv:询问从点u到点v的路径上的节点的最大权值III.QSUMuv:询问从点u到点v的路径上的节点的权值和注意:从点u到点v的路径上的节点包括u和v本身Input输入的第一行为一个整数n,表示节点的个数。接下来n
V5ZSQ
·
2015-12-06 12:00
BZOJ 2243 染色(
树链剖分
+线段树)
Description给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。请你写一个程序依次完成这m个操作。Input第一行包含2个整数n和m,分别表示节点数和操作数;第二行包含n个正整数表示n个节点的初始颜色下面行每行包含
V5ZSQ
·
2015-12-06 10:00
NOIP 2015 BZOJ 4326 运输计划 (
树链剖分
+二分)
Description 公元2044年,人类进入了宇宙纪元。 L国有n个星球,还有n−1条双向航道,每条航道建立在两个星球之间,这n−1条航道连通了L国的所有星球。 小P掌管一家物流公司,该公司有很多个运输计划,每个运输计划形如:有一艘物流飞船需要从ui号星球沿最快的宇航路径飞行到vi号星球去。显然,飞船驶过一条航道是需要时间的,对于航道j,任意飞船驶过它所花费的时间为tj,并且任意
wkingG
·
2015-12-05 11:00
【
树链剖分
】bzoj2819 nim
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2819题目大意:有一棵树,每个节点上有一堆石子,有两种操作:1.改变某个节点的nim值2.问在u到v的路径上玩nim游戏是否有先手必胜策略直接链剖即可,懂点博弈论的都知道:nim游戏中异或和为0的无先手必胜策略,否则均有先手必胜策略这里注意几点:1.由于点的数目巨大所以请直接上lowbit或
FAreStorm
·
2015-12-04 20:53
题解
树链剖分
+线段树 poj2763 Housewife Wind
思路:
树链剖分
+线段树合并。这道题目主要就是难在用
树链剖分
上套线段树合并后,因为整条链被分成了很多条短的,把这些短的也要按照顺序合并。
qwb492859377
·
2015-12-03 14:00
树链剖分
+线段树 poj3237 Tree
传送门:点击打开链接题意:3种操作,1单点更新,2路径正负反转,3路径查询最大值思路:线段树维护最大值和最小值和一个懒惰标记,然后在线段树的基础上用
树链剖分
维护#include #include #include
qwb492859377
·
2015-12-02 23:00
树链剖分
+线段树 hdu3966 Aragorn's Story
传送门:点击打开链接题意:路径更新,单点查询思路:线段树+
树链剖分
,这里其实不需要懒惰标记也是可以做的#include #include #include #include #include #include
qwb492859377
·
2015-12-02 23:00
树链剖分
+线段树 bzoj1036 树的统计Count
思路:
树链剖分
,要注意单点更新和边更新的区别。然后就是在建线段树的时候,应该是用重新编号的新编号去建立的,刚开始一直没注意这个地方,然后调bug也调不出来,后来看了好久才看出来,以后还真要注意一下。
qwb492859377
·
2015-12-02 19:00
树链剖分
+线段树 spoj375 Query on a tree
传送门:点击打开链接题意:边更新,路径查询边权最大值思路:第一道
树链剖分
题,其实
树链剖分
就相当于把树的边给分类了一样,分成了重边和轻边。
qwb492859377
·
2015-12-02 16:00
【高级数据结构】[SPOJ QTREE]
树链剖分
/动态树各一模板
题目:
树链剖分
:#include #include #include usingnamespacestd; #defineMAXN10024 #defineMAXLOG14 #defineINF0x7fffffff
outer_form
·
2015-12-01 13:00
数据结构
C++
【
树链剖分
+线段树】[noi2015]软件包管理器
题目先
树链剖分
,再根据dfn建立线段树(在同一根树链中的点dfn是连续的),然后,就很好做了。
outer_form
·
2015-11-28 23:00
C++
线段树
树链剖分
NOI
bzoj 4012 [HNOI2015]开店 【
树链剖分
】
这道题好像各位神犇都是用动态树分治写的,我这么弱只能用树剖水一水了。dis(x,y)=dis(1,x)+dis(1,y)-dis(1,lca(x,y))前两个都是定值,求第三项就行了。每个点x维护不在重链上的子节点的个数*dis(1,x),查询显然,再yy一些别的东西就可以了。#include #include #include #include #include #define
heheda_is_an_OIer
·
2015-11-28 22:00
线段树
树链剖分
[
树链剖分
] CF593D. Happy Tree Party
题目链接:D.HappyTreeParty
树链剖分
是从下面两篇博客学的。
kg20006
·
2015-11-28 17:00
数据结构
ACM
codeforces
树链剖分
树链剖分
笔记
树链剖分
是维护树上路径的一种有力工具。支持以下操作:修改:单点改权,单边改权,从u到v的简单路径上的点或边改权等等修改权值的方式可以是加/减/乘/除一个值。
Quack_quack
·
2015-11-23 23:00
数据结构
树
图论
树链剖分
BZOJ1036: [ZJOI2008]树的统计Count (
树链剖分
)
传送门这是一道
树链剖分
的基础题目,只需要用线段树来维护重链上的节点信息,轻链一条一条爬就行了,在查询的时候可以先求出LCA然后查询两个点到LCA的信息然后合并就行了。
geng4512
·
2015-11-22 16:00
Codeforces Gym 100814C Connecting Graph (并查集,
树链剖分
)
题目大意:就是现在初始的时候有一个只有n个点的图(n #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include usingnamesp
u013738743
·
2015-11-21 20:00
并查集
codeforces
树链剖分
Gym
100814C
heheda练数据结构
最近看了以下知识点:线段树套线段树线段树套平衡树准备学习:替罪羊树块状链表复习:
树链剖分
树状数组套线段树一些高级的线段树可持久化tire可并堆bzoj2957楼房重建给定第一象限的n个楼房,询问从原点能看到多少个楼房
heheda_is_an_OIer
·
2015-11-20 22:00
数据结构
HYSBZ 1036 树的统计Count
树链剖分
看了半个星期,感觉自己可以上题了轻重链划分倒是一下就看懂了,两遍dfs的剖分应该都卡不住(刚开始以为是子树中最深的那个为重链的我也是图样)(其实是子树结点更多的那个)但是卡在了树上的查询上,怎么也理解不了怎么做到不重不漏
a1s4z5
·
2015-11-19 15:00
SPOJ 375
树链剖分
模板#include #include #include #include #include usingnamespacestd; #definelson(posg[maxn]; structedge { intto,next; }e[maxn]; inlinevoidadd_edge(inta,intb,intc) { g[a].push_back(Vector_edge(b,c)); }
baidu_23081367
·
2015-11-17 01:00
【
树链剖分
】[ZJOI2008]树的统计Count
题目
树链剖分
,再存代码。
outer_form
·
2015-11-15 22:00
C++
图论
【
树链剖分
】[SPOJ-QTREE]Query on a tree
题目模板题,存代码。#include #include #include usingnamespacestd; #defineMAXN10024 #defineMAXLOG14 #defineINF0x7fffffff intn,T,size[MAXN+10],dep[MAXN+10],fa[MAXN+10][MAXLOG+1],wt[MAXN+10]={0,-INF},bl[MAXN+10],l
outer_form
·
2015-11-15 20:00
C++
图论
ACM-
超级楼梯
ProblemDescription有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? Input输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1>n; intM; ans[1]=1; ans[2]=1; for(inti=3;i>M; cout<
gzj_1101
·
2015-11-15 09:00
算法
递归
bzoj 2243
树链剖分
id=2243
树链剖分
,用线段树记录该区间的颜色段数,左右端点颜色数,然后就OK了 1 //By BLADEVIL 2 type 3 rec
·
2015-11-13 21:48
ZOJ
bzoj 3083
树链剖分
首先我们先将树提出一个根变成有根树,那么我们可以通过
树链剖分
来实现对于子树的最小值求解,那么按照当前的根和询问的点的相对位置关系我们可以将询问变成某个子树和或者除去某颗子树之后其余的和,前者直接询问区间
·
2015-11-13 20:04
ZOJ
动态树之LCT(link-cut tree)讲解
LCT的大体思想类似于
树链剖分
中的轻重链剖分(轻重链剖分请移步http://www.cnblogs.com/BLADEVIL/p/3479713.html),
·
2015-11-13 20:52
tree
树链剖分
之点剖分(点分治)讲解
当一个问题可以分解成小问题时,我们一般可以采用分治算法,比如最简单的快速排序,就是分治算法的一个典型的应用。 那么处理树的问题时,假设求解满足条件的点对儿个数,对于一个树来说,两个点对儿的存在只能有两种情况,就是点对之间的路径过根和不过根,那么对于不过根的情况递归做,对于一棵树只考虑过根的情况,计算就行了。 以一个基础题为例子bzoj 2152 http://61.187.1
·
2015-11-13 20:50
树
树链剖分
之轻重链讲解
首先我们有一颗树每个点(或者边)有权值,我们要做的就是询问两个点之间路径上各点(边)权值的最大、最小,权值和(就是线段树能干的),然后我们还要支持在线更改任意节点(边)的权值。 我们要做的是轻重链剖分,首先我们看几个定义 size:和SBT里的一样,size[i]为以该点为根节点的子树一共有几个节点。 重儿子:一个节点当不为叶子节点的时候有且只有一个重儿子,重儿子为该点的儿子
·
2015-11-13 20:48
树
上一页
20
21
22
23
24
25
26
27
下一页
按字母分类:
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
其他