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 5029 Relief grain (
树链剖分
+线段树)
思路:先用
树链剖分
将问题转化到线性结构上,然后来考虑如何在线性来解决这个问题。相当于区间染色,最后问每个点被染次数最多的那个颜色。做法:对于每个操作a,b,k,我们
i-o07
·
2020-08-18 09:07
树链剖分
Hdu
Solutions
线段树
poj 3237
树链剖分
(区间更新,区间查询)
http://poj.org/problem?id=3237DescriptionYouaregivenatreewithNnodes.Thetree’snodesarenumbered1throughNanditsedgesarenumbered1throughN−1.Eachedgeisassociatedwithaweight.Thenyouaretoexecuteaseriesofinst
life4711
·
2020-08-18 09:06
数据结构
树链剖分
HDU5029
树链剖分
2个经典的模型放在一块就成为一道难题。constintmaxn=100018;intn;intsiz[maxn],top[maxn],son[maxn];intdep[maxn],tid[maxn],fa[maxn],rank[maxn];inthead[maxn],to[maxn*2],next[maxn*2],edge;inttim;voidinit(){memset(head,-1,size
贫嘴小李子的幸福生活
·
2020-08-18 09:34
C++足迹
poj 3237(
树链剖分
)
题意:有一棵树,n个点,n-1条边每条边有一个权值,有三种操作,queryab,询问a到b所有路径的最大权值,negateab,把a到b所有路径权值设置为对应权值的相反数,changeab,把第a条边权值设为b。题解:线段树维护最大值和最小值,negateab的时候把对应区间最大最小值交换并取反,注意要用一个标记每个区间取反的次数,因为偶数次取反相当于不变。#include#include#inc
路小白_zZ
·
2020-08-18 09:03
ACM-树链剖分
【HDU】5044 Tree
树链剖分
这就是一个很裸的
树链剖分
。。然后就可以用线段树维护。但是!这样对于本题是一定会超时的!因为出题人特意想卡。。。于是我换成树状数组+输入优化卡过。。。但这题还有更好的方法!
poursoul
·
2020-08-18 09:01
树链剖分
【HDU】5029 Relief grain
树链剖分
+离线标记法
首先看到这是一颗树,那么很容易想到
树链剖分
。然后想到可以将查询排个序,然后每一种查询执行完以后更新每个点的最优值。但是这样进行的复杂度太高!尤其是当z给的没有一样的时候尤其如此。
poursoul
·
2020-08-18 09:01
树链剖分
hdu5052 Yaoge’s maximum profit
树链剖分
一棵树上,从u走到v,在某点买入,咋之后的某点卖出,求最大利润。维护正着走和反着走的最大利润。#include#include#include#include#include#include#include#include#include#include#definefifirst#definesesecond#definepiipair#definelllonglong#defineinf100
tzb592825420
·
2020-08-18 09:27
树链剖分
hdu5029 Relief grain 点权
树链剖分
,线段树
点权
树链剖分
,求出所有更改区间,用一个类似差分前缀和的东西扫一遍。点权与边权的剖分在查询上有一点小区别。
tzb592825420
·
2020-08-18 09:27
树链剖分
POJ 3237 Tree (
树链剖分
)
题目地址:POJ3237这题用了一下午。。本来一直认为max和min两个数组是不用改的,只需要改lazy数组,然后在查询的时候利用lazy标记来返回max或-min,后来发现错的很严重。。这题要在pushdown中修改max和min数组,从而实现最大值取反。代码如下:#include#include#include#include#include#include#include#include#i
Aerolite坠落
·
2020-08-18 09:56
树链剖分
HDU 5029
树链剖分
ReliefgrainTimeLimit:10000/5000MS(Java/Others)MemoryLimit:100000/100000K(Java/Others)TotalSubmission(s):861AcceptedSubmission(s):219ProblemDescriptionThesoiliscrackingupbecauseofthedroughtandtherabbit
_rabbit
·
2020-08-18 09:50
数据结构
POJ 3237
树链剖分
TreeTimeLimit:5000MSMemoryLimit:131072KTotalSubmissions:3189Accepted:897DescriptionYouaregivenatreewithNnodes.Thetree’snodesarenumbered1throughNanditsedgesarenumbered1throughN−1.Eachedgeisassociatedwi
_rabbit
·
2020-08-18 09:50
基础图论
poj 3237 Tree(
树链剖分
)
解题思路:
树链剖分
,然后用线段树维护节点权值,成端更新查询。#include#include#includeusingnamespacestd;constintmaxn=10005;constint
JeraKrs
·
2020-08-18 09:11
数据结构-树链剖分
POJ
GRADE:D
hdu 5029 Relief grain(
树链剖分
+线段树)
解题思路:因为是在树的路径上做操作,所以基本就是
树链剖分
了。只不过以前是用一个数组即可维护值,这题要用一个vector数组记录。过程中用线段树维护最大值。
JeraKrs
·
2020-08-18 09:11
数据结构-线段树
HDU
数据结构-树链剖分
GRADE:C
Hdu 5052 Yaoge’s maximum profit(
树链剖分
)
思路分析:很容易想到
树链剖分
,可是关键在于如何维护这样一个变量,使得每次都要让买的再卖的前面。维护变量ltr和rtl,表示从左去右和从右去左。剖分熟练的时候,判断x和y的深度,一步一步
Jinx_jinx_again
·
2020-08-18 09:34
树链剖分
hdu 5029 Relief grain
树链剖分
//详见测试用例
树链剖分
后,线段树为粮食的种类,在用标记数组标记下段的加值,搞搞……#pragmacomment(linker,"/STACK:200000000")#include#include#include
xiaoyu1_1
·
2020-08-18 09:01
树链剖分
HDU5052 Yaoge’s maximum profit(
树链剖分
)点权更新,经典题
Yaoge’smaximumprofitTimeLimit:10000/5000MS(Java/Others)MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):662AcceptedSubmission(s):182ProblemDescriptionYaogelikestoeatchickenchopslateatnight.Yaog
青山绿水之辈
·
2020-08-18 09:00
ACM
树链剖分
HDU 4718(
树链剖分
)
解法:
树链剖分
点操作,是带方向的,并且必须是a到b,不能是b到a。//#pragmacomment(linker,"/STACK:1024000000,1024000000")#inclu
r_clover
·
2020-08-18 09:38
树链剖分
HDU 5405(
树链剖分
)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106364#problem/D)题意:一棵树,点权值,两种操作,1.修改u的权值成w,2.查询u,v,求w[i]*w[j],i,j满足i,j的路径与u,v相交。解法:先求不相交的。对于每个节点u,记录两个值1.sum[u]u子树w之和。2.sim(sum[v]^2)v是u的轻儿子。每次修
r_clover
·
2020-08-18 09:38
树链剖分
虚树笔记
(其实就是把一些不需考虑的点忽略).构造先把关键点按照dfsdfs
dfs序
进行排序,用一个栈维护一个极右链,只需精细地维护这个极右链即可.对于一个根为1的有根树,初始sta[top=1]=1sta[top
zsyzlzy
·
2020-08-18 09:23
Count on a tree 【SPOJ - COT】【树上第K小、可持久化线段树(主席树)】
题目链接想了好久,一开始想去写
树链剖分
,但是怎样写第K小只在可持久化线段树中写过,然后就是得去想怎样做到状态的得到了,我们可以考虑从根节点出发,关系不断的递推下去,就可以变成一棵自上而下的可持久化线段树了
Andres_Lionel
·
2020-08-18 09:45
线段树
数据结构
LCA算法
LCA
可持久化线段树
[
树链剖分
]Query On Tree IV
题意理解给出一颗含有n个结点(全为白点)的含有边权(可为负)的树,询问q次,有两种操作类型:Cx:将结点x反色(白->黑or黑->白)A:询问图中路径边权和最大的两个白点的路径边权和(此后用“距离”代替)本题难点注意不要把线段树和原树和在一起理解Cx操作使问题动态,需要维护,增加复杂度。A操作没有固定询问关于某一个结点的距离,可能要维护整张图的最大距离才可以一次出解。题目思路树剖+压缩重链到点上+
IDnumber4
·
2020-08-18 09:26
图论:树
树链剖分
HDU 5029 Relief grain (
树链剖分
+区间更新)
ReliefgrainTimeLimit:10000/5000MS(Java/Others)MemoryLimit:100000/100000K(Java/Others)TotalSubmission(s):3028AcceptedSubmission(s):883ProblemDescriptionThesoiliscrackingupbecauseofthedroughtandtherabbi
Just_JK
·
2020-08-18 09:52
树链剖分
线段树
Count on a tree SPOJ - COT (LCA+主席树)
题意:在树上找到u->v的第K大思路:root[a]+root[b]-root[lca(a,b)]-root[fa[lca(a,b)]]上的第k大,具体说下代码,先找LCA(这里是用
树链剖分
的思想求的LCA
YYyyCCCcccBb
·
2020-08-18 09:38
acm
[POJ3237]树的维护
冲着
树链剖分
来的,结果发现自己太弱了操作二的标记不会打,YY了2个多小时才写完QAQ注意全部操作均为
那年的曙光
·
2020-08-18 09:21
OI
题解
树链剖分
模板
线段树
hdu 5029
树链剖分
+链表
因为是涂色问题,可以采用标记l处+1和r+1处-1,把树状结构通过
树链剖分
转换成线性,利用线段树维护颜色中出现的最多的,利用二分查询能够找到出现次数最多且序号最小的颜色#include#include#
黎辰
·
2020-08-18 09:49
树链剖分
之长链剖分 详解 题目整理
树链剖分
题目中出现的
树链剖分
一般分为两种,重链剖分和长链剖分重链剖分:选择子树最大的儿子,将其归入当前点所在的同一条重链长链剖分:选择向下能达到的深度最深的儿子,将其归入当前点所在的同一条长链重剖主要用于维护子树信息和链信息
qcwlmqy
·
2020-08-18 08:34
数据结构
HDU 6031 Innumerable Ancestors(LCA,
树链剖分
)
题意:对于给定的一棵树,树上点的数目为n,有q次询问,每次给定两个点集A,B,求MAX(LCA(u,v)),u∈A,v∈B.其中k=∑qi=0(size(A)+size(B)),q≤1e6,k≤1e6,n≤1e6。思路:先对树进行剖分,然后将所有path(u,root),u∈A上的树链进行标记,并且记录该树链的最大深度。然后对于每个点v∈B,向root找到第一个被标记的树链,并返回res=MIN(
poptree hengli
·
2020-08-18 08:03
HDOJ
HDU - 5029 Relief grain
树链剖分
+ 线段树好题
思路:显然要先
树链剖分
将树上操作变成线性序列的操作,emmm,然后我就不会了。。正解:
树链剖分
后考虑如何维护更新操作,对于一个操作a,b,k,我们可以在pos[a]位置打上一个k标记,在p
WA是一笔财富
·
2020-08-18 08:31
hdu
线段树&&BIT&&平方分割
树链剖分
各种思维题
HDU-5242 Game (贪心&&
树链剖分
&&线段树)
思路:典型的
树链剖分
题,只要找到所有重链的权值然后贪心找前m个的和就行了。具体解法就是先dfs找到所有叶子节点从
kopyh
·
2020-08-18 08:27
数据结构
HDU 5052 Yaoge’s maximum profit(
树链剖分
+线段树,2014上海网络赛1011)
这么裸的
树链剖分
,我特么T到比赛结束有木有啊!!!!结束了再看看代码发现有个地方木有赋值,赋了
hongrock
·
2020-08-18 08:17
线段树
树链剖分
poj 3237 Tree
树链剖分
动态树 LCT
TreeTimeLimit:5000MSMemoryLimit:131072KTotalSubmissions:6171Accepted:1687DescriptionYouaregivenatreewithNnodes.Thetree’snodesarenumbered1throughNanditsedgesarenumbered1throughN−1.Eachedgeisassociatedw
GDRetop
·
2020-08-18 08:19
##ACM-ICPC编程题
##数据结构
SPOJ - COT:Count on a tree (树型结构套主席树)
解题思路:刚看这个问题的时候以为是
树链剖分
+主席树,但是后来想了好久
树链剖分
剖出来的线性结构由于不连续导致貌似没办法使用主席树进行维护从而求第k小,然后纠结了好久,还是去看了别人的题解,发现思路跟线性结构的主席树几乎一样
呜喵汪
·
2020-08-18 08:14
数据结构---主席树
【spoj】【COT2 - Count on a tree II】【莫队算法】
求出
dfs序
,将左端点按sqrt(n)一块分块为第一关键字,将右端点为第二关键字排序。
inklutcuah
·
2020-08-18 08:49
spoj
其他重要思想
hdu_5029_relief grain(
树链剖分
)
pid=5029题意:给你一个树,然后给你两点,将这两点之间的点涂上颜色,问涂色最多的那个颜色是什么,如果数量相同,就输出编号小的颜色题解:
树链剖分
,这个题很巧妙,线段树维护的是一个颜色线段树,然后如果要涂
bin_gege
·
2020-08-18 08:35
hdu
数据结构
spojCOT2 Count on a tree II
分块的方法就是按照
dfs序
来分。然后将查询里的x,y,按照x
bestFy
·
2020-08-18 08:34
树上莫队
poj 3237(
树链剖分
+线段树)
思路:明显的
树链剖分
,加上线段树的操作。因为有取反的操作所以每个区间要记录最大值和最小值。查询两点间的路径时,用求公共祖先的方式去求。
菜鸟起航
·
2020-08-18 08:15
字典树-线段树-划分树
数据结构
树链剖分
理解&&poj 3237
树链剖分
用一句话概括就是:把一棵树剖分为若干条链,然后利用数据结构(树状数组,SBT,Splay,线段树等等)去维护每一条链,复杂度为O(logn)假如一个树就是一条链的话(极限的想想),我们可以用数据结构
兔衰
·
2020-08-18 08:40
acm_数据结构
poj 3237 分类: poj 2015-0...
维护边上信息的
树链剖分
,我是将父边的信息储存在结点上,然后按与维护点值类似方法处理的。注意本题有多组数据,对于每组数据,树上信息和线段树一定要重新赋值!!!本蒟蒻因此WA了好多次。。。。。。
aa288288
·
2020-08-18 08:09
HDU5029--Relief grain(
树链剖分
)
ProblemDescriptionThesoiliscrackingupbecauseofthedroughtandtherabbitkingdomisfacingaseriousfamine.TheRRC(RabbitRedCross)organizesthedistributionofreliefgraininthedisasterarea.Wecanregardthekingdomasat
SCUT_Pein
·
2020-08-18 08:06
数据结构_树链剖分
spoj-cot2(树上莫队)
我们可以在树上做下分块然后莫队,至于怎么分看你的技巧,我是先去学了一下联盟王国的树上分块据说那个操作的分块查询一块是sq~3sq的时间复杂度而且还是比较正统,所以我选择用那个分块,然后接着r我怎么操作呢,我们按
dfs
最菜的acmer
·
2020-08-18 08:04
莫队
POJ-3237(
树链剖分
+线段树)
题解:更改把路径上的边值都变为负值一看就是
树链剖分
,接着我们用点连着深度比较深的边的值设为边的值那么我们查询的时候当到达最近公共祖先的时候最近公共祖先的点的编号注意加一,接着就是线段树的更新用1和0表示区间变为负数或者不变为负数即可
最菜的acmer
·
2020-08-18 08:04
树链剖分
线段树
hdu 6430 - DSU on tree(树上启发式合并)
题目链接:点击这里解题思路:根据
树链剖分
将子树分为重儿子和轻儿子。那么我们的DSU实际是就是这个基础上的暴力了。对于一个子树。因为dfs肯定是先处理完儿子之后再处理父亲。
a1214034447
·
2020-08-18 08:03
树链剖分
DSU
HDU 5029
树链剖分
+权值线段树
题目链接题意:给定一颗n个结点的树,进行m次染色操作,对于每一次染色操作是选择树上的一条路径,将路径上所有节点都染上第zzz种颜色。输出m次操作以后,每一个节点上染色次数最多的颜色。1<=n,m,z<=1e51<=n,m,z<=1e51vec[n+1];forxinAll_Segment:vec[x.L].push_back(x.k);vec[x.R].push_back(
新熊君
·
2020-08-18 08:25
ACM算法题目和总结
【noip模拟题】[dp][二分][
树链剖分
][hdu5029][线段树]
T1描述给定3个字符串,求它们的最长公共子序列。输入第一行一个整数n,表示三个字符串的长度接下来三行,每行是一个长度为n只包含小写字母的字符串。输出输出最长公共子序列的长度。输入样例4abacabbccbca输出样例2提示30%n#include#includeusingnamespacestd;constintN=125;intf[N][N][N],n;chara[N],b[N],c[N];in
梳子很怕冷x
·
2020-08-18 08:09
考试考试
线段树
树链剖分
dp
【poj3237】 Tree
id=3237](题目链接)
树链剖分
模板题,然而这150+行的程序我调了一天,历经艰辛,终于ac。。
MashiroSky
·
2020-08-18 08:53
poj
树链剖分
线段树
Query on a tree【
树链剖分
】
树链剖分
。
发奋屠强
·
2020-08-18 07:05
树状数组
HDU 5029 Relief grain(恶心的
树链剖分
+ 线段树)
题意:n个村庄分配粮食,m次分配,每一次分配树上的l~r区间村庄内某种粮食*1,询问每个村庄最多粮食数量的种类是什么分析:首先注意到题目要求在树上的路径分配粮食,很容易想到用
树链剖分
和线段树去处理区间查找过程如果此时强行将每个区间内的粮食数量及种类全部存下来
wJs9528-1
·
2020-08-18 07:00
===数据结构===
树链剖分
HDU 5029
树链剖分
点击打开链接题意:给一个树,然后操作是将颜色z涂在u到v路径上的所有点,最后问你每一个点上哪个颜色涂的最多,若有多组解,输出颜色较小的那个思路:因为是在树上的更新操作,所以需要用
树链剖分
来将树形的结构简化成线性的结构
Dan__ge
·
2020-08-18 07:54
数据结构
线段树&树状数组
树链剖分
HDU5029 Relief grain
树链剖分
+差分统计答案
大致题意:给出一棵n个节点有根树,现在给m个x、y,使得x到y路径上所有点加上标记z,现需要统计每个节点中数量最多的标记种类先考虑线性序列,在x-y添加标记z,利用差分思想,在x处添加z,在y+1减去z,然后用一个维护标记数的线段树顺序维护,每个节点询问数量最多的节点即可。然后树型结构转线性,利用树剖即可。#include#include#include#include#include#inclu
Cabinfever
·
2020-08-18 07:51
HDU
数据结构——树链剖分
HDU 5029 Relief grain
树链剖分
+线段树离线维护
【思路】拿到这种题,想到
树链剖分
是不难的。如果直接维护的话,因为食物的种类太多,复杂度显然过高。但是注意到,
树链剖分
,剖分后,实际上是类似
ACMmaxx
·
2020-08-18 07:12
数据结构
树链剖分
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
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
其他