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
BZOJ2588
【
BZOJ2588
】【Spoj 10628.】 Count on a tree 可持久化线段树+lca
链接:#includeintmain(){puts("转载请注明出处[vmurder]谢谢");puts("网址:blog.csdn.net/vmurder/article/details/45048639");}题解:对于每个树上节点存一个版本的可持久化线段树,为它到根节点上所有权值的权值线段树(需要离散化)。然后对于每次询问,这条链(a,b)的线段树就是:线段树a+线段
空灰冰魂
·
2023-10-11 21:10
可持久化线段树
lca
BZOJ2588
Spoj-10628
Count-tree
可持久化线段树
lca
【SPOJ-COT】Count on a tree【主席树】【LCA】
【题目链接】同【
BZOJ2588
题解】除过不强制在线,都是一样的。
BraketBN
·
2020-08-18 07:17
可持久化数据结构
最近公共祖先
bzoj2588
Count on a tree(树上建主席树求路径第k大)
主席上树(划去。每个点建一棵权值线段树,记录从这个点到根的路径上的点权信息。x可以和fa[x]的线段树共用很多信息,所以上主席树!那么x到y路径上的点权信息,就是tree[x]+tree[y]-tree[t]-tree[fa[t]],t表示lca(x,y)。#include#include#includeusingnamespacestd;#defineN100010intn,m,nn,a[N],
Icefox_zhx
·
2020-08-04 12:57
bzoj
主席树
-----树-------
BZOJ2588
: Count on a tree 树上主席树
给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u和v这两个节点间第K小的点权,强制在线。N,M#defineLLlonglong#defineclr(x,i)memset(x,i,sizeof(x))usingnamespacestd;constintN=100005;inlineintread(){intx=0,f=1;charch=getchar();while
Wolf_Reiser
·
2020-07-31 15:59
BZOJ
主席树
dfs
洛谷 P2633 Count on a tree(
BZOJ2588
)(主席树+树上差分+LCA)
题目链接题目大意给出一棵nnn个点的树(点带权),有mmm组询问每次询问给出x,y,kx,y,kx,y,k,求xxx到yyy的路径上第kkk小的点权解题思路主席树中一个核心的思想,就是前缀和。在处理区间kthkthkth时,我们利用的是朴素的序列前缀和;如果我们把这个问题放到树上,我们可以用树上差分(前缀和)设以root[x]root[x]root[x]为根的主席树维护的是根到xxx路径上的点。那
_Wolverine
·
2020-07-04 04:50
题解
#洛谷
权值线段树/主席树学习笔记+例题
文章目录介绍前言定义例题模板权值线段树例题以区间第k小为例洛谷p3834给一个数列,每次询问一个区间内有没有一个数出现次数超过一半树上路径以
bzoj2588
洛谷p2633.countonatree为例[
急流勇进
·
2020-06-29 13:44
ACM
[
bzoj2588
][ Count on a tree]
题目链接思路查询区间第k小,考虑主席树。因为是从u到v的简单路径上,考虑将路径分为从u到lca和从lca到v两部分。所以对于每个点都维护出从根节点到当前节点中的点。查询的时候只要用ans[u]+ans[v]-ans[lca]-ans[fa[lca]]就行了。也就是在主席树的查询代码上略加修改。代码/**@Author:wxyww*@Date:2018-12-1117:19:03*@LastModi
wxyww
·
2018-12-11 19:00
BZOJ2588
Count on a tree
Countonatree给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答uxorlastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。Input第一行两个整数N,M。第二行有N个整数,其中第i个整数表示点i的权值。后面N-1行每行两个整数(x,y),表示点x到点y有一条边。最后M行每行两个整数(u,v,k)
AZRAEL_DEATH
·
2017-08-11 17:42
主席树
bzoj2588
:Count on a tree(可持久化线段树+Lca)
2588:Spoj10628.CountonatreeTimeLimit:12SecMemoryLimit:128MBSubmit:5524Solved:1306Description给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答uxorlastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。Input第一
KsCla
·
2017-01-23 20:56
Lca
可持久化数据结构
[
BZOJ2588
]Spoj 10628. Count on a tree 可持久化线段树
离散化对每个节点,用线段树表示该节点到根的路径上的值域然后可持久化询问的时候查询u,v,LCA(u,v),fa[LCA(u,v)]结点上的四棵线段树做一做减法就好notice:1、初始的权值已经超过了int,需要longlong2、最后一组询问的换行符不要输出!(我已经邮件了一发管理员希望他改题面)写起来很好写#include#include#include#include#definemid((
HbFS-
·
2017-01-21 18:41
线段树
雅礼集训
[
BZOJ2588
]Count on a tree(可持久化权值线段树|主席树)
题目描述传送门题解在树上建维护当前节点到根的路径的权值线段树,然后查询的时候为sum[a]+sum[b]-sum[lca(a,b)]-sum[father[lca(a,b)]]。代码#include#include#include#includeusingnamespacestd;constintmax_n=1e5+5;constintsz=17;constintmax_e=max_n*2;con
Clove_unique
·
2016-05-13 20:41
题解
可持久化
[
BZOJ2588
]Count on a tree(可持久化权值线段树|主席树)
题目描述传送门题解在树上建维护当前节点到根的路径的权值线段树,然后查询的时候为sum[a]+sum[b]-sum[lca(a,b)]-sum[father[lca(a,b)]]。代码#include #include #include #include usingnamespacestd; constintmax_n=1e5+5; constintsz=17; constintmax_e=max
Clove_unique
·
2016-05-13 20:00
bzoj
主席树
【
BZOJ2588
】Count on a tree,主席树维护链+ST表求LCA
传送门写在前面:一天下来就写了两道主席树的题……(codevs上的一道智障天梯不算)思路:才知道原来主席树不仅可以通过dfs序维护子树区间,还可以直接维护一条到根的链……我们建好主席树后,每次查询u->v路径上的第k大,无非有两种情况1.u,v在同一条链上2.u,v不在同一条链上其实这两种情况处理起来是一样的,我们利用主席树中的前缀和思路,root[u]并上root[v]再减去root[lca(u
xym_CSDN
·
2016-05-06 21:00
bzoj2588
: Spoj 10628. Count on a tree
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2588题意:中文题。分析:树上建可持久化线段树,从父亲那继承。查询的时候减去lca和lca的父亲两个前缀即可。详见代码。O(nlogn+mlogn)PS:注意输出格式!代码:#include #include #include #include #include #include #includ
Fsss_7
·
2016-04-11 22:00
可持久化线段树
【
BZOJ2588
】Spoj 10628. Count on a tree【主席树】【LCA】
【题目链接】同【SPOJ-COT题解】就是强制在线了。RE了快半年,终于AC了。读入优化那里要开LL,但是返回int。(我也不知道为什么)/*Pigonometry*/ #include #include usingnamespacestd; typedeflonglongLL; constintmaxn=100005,maxnode=2000005; intn,m,tot,num[max
BraketBN
·
2016-04-07 17:00
LCA
主席树
可持久化线段树
【SPOJ-COT】Count on a tree【主席树】【LCA】
【题目链接】同【
BZOJ2588
题解】除过不强制在线,都是一样的。
BraketBN
·
2016-04-07 16:00
【
bzoj2588
】Spoj 10628. Count on a tree LCA+主席树
Description给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答uxorlastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。Input第一行两个整数N,M。第二行有N个整数,其中第i个整数表示点i的权值。后面N-1行每行两个整数(x,y),表示点x到点y有一条边。最后M行每行两个整数(u,v,k),
LOI_DQS
·
2016-03-19 00:00
BZOJ2588
Spoj 10628. Count on a tree
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2588Description给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答uxorlastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。Input第一行两个整数N,M。第二行有N个整数,其中第i个整
ACMICPC
·
2016-03-02 17:00
bzoj2588
Count on a tree dfs&主席树
这道题目本来应该1A的。。结果中间调试输出忘了删WA了一发,又PE了一发。。/(ㄒoㄒ)/~~提示里面怎么没有不能有文尾回车!!。。。 首先跑dfs,一般情况下主席树的第i颗线段树应该是根据第i-1颗建立的;但是在树中,第i颗线段树应该在第fa[i]颗的基础上建立。其余一模一样。 查询也略有区别,首先根据dfs可以logN求lca。在查询[x,y]的第k大的数时,令u=lca(
lych_cys
·
2016-02-12 15:00
DFS
主席树
[
BZOJ2588
] Spoj 10628. Count on a tree
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=2588题目大意给定一棵树,询问两点间点权第k小的值,强制在线题解clj的论文上貌似有这个例题主席树数组开小了RE了好几次QAQAQ空间复杂度应该是O(NlogN){$m10000000} const maxn=101000;//0.1 var y,z,dep,fa,root:array[0..m
slongle_amazing
·
2016-02-09 15:00
[
BZOJ2588
][Spoj 10628]COT
Spoj10628.CountonatreeDescription给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答uxorlastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。Input第一行两个整数N,M。第二行有N个整数,其中第i个整数表示点i的权值。后面N-1行每行两个整数(x,y),表示点x到点y有
hbhcy98
·
2016-02-01 10:00
可持久化线段树
bzoj1146
这道题和
bzoj2588
很像,是动态区间第K大的变形。 先求DFS序,一棵子树的DFS是连续的,不妨记为[l,r],我们维护前缀和,在l处+1,在r+1处-1。
·
2015-11-01 09:12
ZOJ
bzoj2588
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2588 就是静态区间第K大的变形。 每个节点为一棵线段树,表示到根的路径中,以权值为下标的线段树。 每个节点建树的时候,以父亲为历史版本。 对于询问点x和点y的时候,就是求ask(x)+ask(y)-ask(lca)-ask(fa[lca]),然后用类似于静态区间第K的方法决定是去
·
2015-11-01 09:09
ZOJ
bzoj2588
: Spoj 10628. Count on a tree 主席树+dfs序
hzhwcmhf讲过,这个题是主席树,然后我当时说按树链剖分那样弄,被否掉了,后来才发现,是dfs序,虽然没有很大差别,但仔细想想,树剖那样搞完全是多余。。。。以前的我太弱了。#include#include#include#include#include#defineinf0x7fffffff#definelllonglong#defineN100005#defineM2000005usingn
IED98
·
2015-07-13 12:29
数据结构
【
BZOJ2588
】【Spoj 10628.】 Count on a tree 可持久化线段树+lca
链接:#include intmain() { puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/45048639"); }题解:对于每个树上节点存一个版本的可持久化线段树,为它到根节点上所有权值的权值线段树(需要离散化)。然后对于每次询问,这条链(a,b)的线段树就是:线段树a+线段树b−线段树l
Vmurder
·
2015-04-14 22:00
LCA
可持久化线段树
BZOJ2588
Spoj-10628
Count-tree
上一页
1
下一页
按字母分类:
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
其他