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
BZOJ3626
[
BZOJ3626
][LNOI2014]LCA(离线+链剖)
======这里放传送门======题解感觉这题思路还是比较神的。。对于一个点u,我们要查它跟某个给定点z的LCA的深度,那么如果我们把u这个点到根节点的路径全都打上+1的标记,那么z到根的路径上的标记数目就是u和z的LCA的深度。这个东西画一画就感觉比较科学了。。如果是对于两个点u和v要求跟z的LCA的深度,那就把u和v都打上到根的一串标记然后查z到根的标记个数就可以了。。。那我们可以离线询问,
FromATP
·
2023-10-31 22:57
BZOJ
不知道加什么形容词的树链剖分
BZOJ
LNOI
树链剖分
离线处理
LCA
cf915F(神思维)
和
bzoj3626
非常相似。。往这个方向想了一下发现可行性并不是很好。。因为要统计链上最小数而且如果有一样的最小数就麻烦了。。。然后看了下cyc的代码。。。只能深深的被其想法折服。。先找最大值。。
qkoqhh
·
2020-08-10 18:08
其他算法
BZOJ3626
LNOI2014LCA
ProblemBZOJSolution就是给定询问l,r,z求∑ri=ldeep(lca(i,z))∑i=lrdeep(lca(i,z))我们考虑把deep的含义转化一下,它就是表示某个点到根节点需要经过几个节点那么把路径上的deep差分之后就变成了一条1,然后我们做一个区间询问和即可得到deep那么我们就用这种思想,把[l,r]区间内所有点到rt的路径权值+1,再统计z到rt的权值和即为答案。可
Rayment_cc
·
2018-06-04 22:20
好题集
lct
BZOJ
bzoj3626
: [LNOI2014]LCA(离线处理+树链剖分)
题目传送门。解法:对于任意一个询问:lrz对于任意一个点来说。他对答案的贡献实际上是LCA(i,z)的深度。也就是lca到根的点数。那么我们可以每个点到根的路径都加1。然后询问下z到根的路径上的答案总和其实就是答案啊。显然可以分成两个区间,一个1到l-1,一个1到r。l到r的答案用两个答案相减,正确性显然。那么离线处理。把每个操作都分成两个区间。然后分别按照右端点排序。把每个点到路径的点都加1。然
Hanks_o
·
2018-03-20 16:38
树链剖分
BZOJ
【
BZOJ3626
】LCA(树链剖分)
传送门LCAIthink%%%:(清华爷题解)考虑这样的一种暴力,我们把z到根上的点全部打标记,对于l到r之间的点,向上搜索到第一个有标记的点求出它的深度统计答案。观察到,深度其实就是上面有几个已标记了的点(包括自身)。所以,我们不妨把z到根的路径上的点全部+1,对于l到r之间的点询问他们到根路径上的点权和。仔细观察上面的暴力不难发现,实际上这个操作具有叠加性,且可逆。也就是说我们可以对于l到r之
Etta19
·
2017-08-08 17:09
树链剖分
[
BZOJ3626
][LNOI2014]LCA 树链剖分
太神啦!http://blog.csdn.net/popoqqq/article/details/38823457/**************************************************************Problem:3626User:di4CoveRyLanguage:C++Result:AcceptedTime:3264msMemory:16944kb**
HbFS-
·
2017-02-03 16:38
树链剖分
[
bzoj3626
][LNOI2014]LCA
Description给出一棵树,q次询问,每次询问∑i=lrdeep(lca(i,z))n,q #include #include #definefo(i,a,b)for(inti=a;ik)k=size[t[i]],son[x]=t[i]; } } voidmake(intx,inty){ w[x]=++tot;top[x]=y; if(!son[x])return; make(son[x],
alan_cty
·
2016-06-12 21:00
LCA
离线
树链剖分
BZOJ3626
LNOI2014
[
BZOJ3626
][LNOI2014]LCA(离线+差分+树链剖分)
题目描述传送门题解首先把询问lr拆成两个询问。利用差分的思想,每次查询区间[1,i]与zlca的和,然后用r的值减去l-1的值就是答案。查询区间[1,i]与zlca的和,可以将1-i所有的点到根的路径上的点都+1,然后查询z到根的路径上所有点的权值和即为答案。其实这就是深度的表示。那么离线询问之后排序,时间复杂度为O(nlogn)代码#include#include#include#include
Clove_unique
·
2016-05-12 17:56
题解
省选
树链剖分
差分
[
BZOJ3626
][LNOI2014]LCA(离线+差分+树链剖分)
题目描述传送门题解首先把询问lr拆成两个询问。利用差分的思想,每次查询区间[1,i]与zlca的和,然后用r的值减去l-1的值就是答案。查询区间[1,i]与zlca的和,可以将1-i所有的点到根的路径上的点都+1,然后查询z到根的路径上所有点的权值和即为答案。其实这就是深度的表示。那么离线询问之后排序,时间复杂度为O(nlogn)代码#include#include#include#include
Clove_unique
·
2016-05-12 17:56
题解
省选
树链剖分
差分
[
BZOJ3626
][LNOI2014]LCA(离线+差分+树链剖分)
题目描述传送门题解首先把询问lr拆成两个询问。利用差分的思想,每次查询区间[1,i]与zlca的和,然后用r的值减去l-1的值就是答案。查询区间[1,i]与zlca的和,可以将1-i所有的点到根的路径上的点都+1,然后查询z到根的路径上所有点的权值和即为答案。其实这就是深度的表示。那么离线询问之后排序,时间复杂度为O(nlogn)代码#include #include #include #incl
Clove_unique
·
2016-05-12 17:00
离线
树链剖分
差分
bzoj
LNOI
BZOJ3626
: [LNOI2014]LCA
题目大意:给一棵树,q个询问,每次询问一个区间内的点与一个点的所有LCA的深度之和很神的一道题啊...首先对于每组询问,我们可以把这个区间内每个点到根的路径都+1,然后求被询问的点到根的路径和,就是这个询问的答案然后我们可以把每组询问拆成两个,变成ans[R]-ans[L-1]然后就可以离线,把0~n-1一个一个往里加,每次把它到根的路径+1,然后查询对应的那些询问就可以了#include #in
commonc
·
2016-05-11 07:00
树链剖分
bzoj
离线处理
省选
BZOJ3626
LNOI2014 LCA 树链剖分+线段树
gconeice的题解:显然,暴力求解的复杂度是无法承受的。考虑这样的一种暴力,我们把z到根上的点全部打标记,对于l到r之间的点,向上搜索到第一个有标记的点求出它的深度统计答案。观察到,深度其实就是上面有几个已标记了的点(包括自身)。所以,我们不妨把z到根的路径上的点全部+1,对于l到r之间的点询问他们到根路径上的点权和。仔细观察上面的暴力不难发现,实际上这个操作具有叠加性,且可逆。也就是说我们可
WDZRMPCBIT
·
2016-04-30 00:00
bzoj3626
: [LNOI2014]LCA (树链剖分+离线线段树)
Description给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。有q次询问,每次询问给出lrz,求sigma_{l#include#include#include#include#include#include#include#include#include#inclu
Herumw
·
2016-04-25 15:44
线段树
树链剖分
bzoj3626
: [LNOI2014]LCA (树链剖分+离线线段树)
Description给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。有q次询问,每次询问给出lrz,求sigma_{l #include #include #include #include #include #include #include #include #incl
Kirito_Acmer
·
2016-04-25 15:00
线段树
树链剖分
【
bzoj3626
】LCA 树链剖分
难得有一道从头到尾自己做的题了T_T(←这么弱还好意思说)。 首先考虑一个特定的询问(x,z)应该怎么做:将所有1...x的点到根的路径覆盖一遍,然后就是求z到根的每一条边的覆盖次数的和。(画个图就很明确了)。 于是可以将询问(l,r,z)拆成(r,z)和(l-1,z),然后按照第一维排序(注意特判0的情况)。 然后将x从1循环到n,每次将x到根的路径覆盖一遍(在原来的基
lych_cys
·
2016-02-29 20:00
DFS
树状数组
树链剖分
dfs序列
[
BZOJ3626
] [LNOI2014]LCA
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=3626题目大意给定一棵树,询问∑bi=adep[lca(i,c)]题解ORZ我们先考虑可以怎么求两个点的lca的深度,我们对其中一个到根上的所有点都+1,然后查询另一个点到根的所有点权和即可然后对于本题的所有询问[L,R]都可以拆成[1,L−1]和[1,R]这样我们离线把查询排序,依次把1~n到
slongle_amazing
·
2016-02-20 18:00
bzoj3626
【LNOI2014】LCA
3626:[LNOI2014]LCATimeLimit: 10Sec MemoryLimit: 128MBSubmit: 1266 Solved: 448[Submit][Status][Discuss]Description给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先
AaronGZK
·
2016-02-06 11:00
线段树
树链剖分
bzoj
【
BZOJ3626
】【LNOI2014】LCA (树剖+离线)
Description给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。有q次询问,每次询问给出lrz,求sigma_{l 2#include 3#include 4#include 5#definep201314 6#defineMaxN50010 7#defin
Lukaluka
·
2016-01-14 19:00
BZOJ3626
: [LNOI2014]LCA
想到离线之后就很裸了。。。我承认自己是SB 一开始还没想到。。。。还有。。今天每次提交都会忘了删文件。。。。。#include #include #include #include #include usingnamespacestd; charc; inlinevoidread(int&a) { a=0;doc=getchar();while(c'9'); while(c='0')a=(a>1
liutian429073576
·
2015-11-26 18:00
树链剖分
bzoj
BZOJ3626
: [LNOI2014]LCA
求[l,r]内所有点与z的lca的深度之和 = 求z所有祖先子树中在[l,r]内的点的个数之和 由于数据不是随机的,所以祖先个数可能很大。 按编号分成$\sqrt{n}$块 设ans[i][j]表示第i块内所有点与j的lca的深度之和 计算ans[i][]时,把在[l,r]内所有点的cnt设为1,其它的设为0, 然后从下往上,父亲的cnt+=孩子
·
2015-10-31 16:34
ZOJ
BZOJ3626
【LCT】
/*Iwillwaitforyou*/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #definem_pmake_pair #definep_bpush_back #definefifirs
Lethelody
·
2015-05-15 16:00
BZOJ3626
[LNOI2014]LCA(树链剖分)
【题解】首先考虑任意两点u,v的LCA的deep:若将0到u路径上所有点标记,则deep[LCA(u,v)]等于从v上溯到的第一个被标记点的deep,而再往上的话一直到根,经过的点都是被标记点 由前缀和的思想,将0到u路径上所有点权值设为1,其他点权值为0,那么deep[LCA(u,v)]等于SUM(0到v路径上的点权和)再进一步想,deep[LCA(u1,v)]+deep[LCA(u2,v)]怎
cjk_cjk
·
2015-02-17 22:00
图论
LCA
树链剖分
bzoj
上一页
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
其他