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
LNOI
[BZOJ3626][
LNOI
2014]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
TODO-List
自动机字符串哈希后缀数组树套树二维线段树(区间线段树套区间线段树)区间线段树套平衡树区间树套权值线段树权值线段树套区间线段树分块套主席树数据结构综合BZOJ3514CCMARCH14GERALD07加强版
LNOI
2014LCABZOJ3653
weixin_30596343
·
2023-02-23 12:06
数据结构与算法
树链剖分
Luogu3384模板树链剖分应用BZOJ1036ZJOI2008树的统计BZOJ4034HAOI2015树上操作BZOJ2243SDOI2011染色BZOJ3531SDOI2014旅行BZOJ3626
LNOI
2014LCA
zhangche0526
·
2020-08-26 16:19
笔记
-线性数据结构
-树
lnoi
2019游记
好诡异的省选......day0:莫名其妙的订了下午从sy到dl的火车,得五点多才能到,所以.......是不需要试机的吗......好吧...看着停课的jflr们,感觉他们好强啊,像我这种酱油选手聊尽人事,不要被高一的虐就好...考前期望:lnsyzx=3,lnsyzx(分校)=2+zwz,所以...乐观估计我们今年应该有6个省队?反正跟我没啥关系...然后就上火车了,这次和noip不一样,居然
lleozhang
·
2020-08-20 21:45
游记
[
LNOI
2014]LCA——树链剖分——多点LCA深度和问题
模板:题目链接进阶:题目链接题意:给定一棵nnn个点的树。qqq次询问,每次询问给出三个值l,r,zl,r,zl,r,z,要求出∑i=lrdep(LCA(i,z))\sum_{i=l}^{r}dep(LCA(i,z))∑i=lrdep(LCA(i,z))。(nusingnamespacestd;typedeflonglongll;constllmod=201314;typedefpairP;llt
Zimba_
·
2020-08-09 15:56
树链剖分
洛谷3241 [HNOI2015]开店(标记永久化+主席树+树剖)
这个题可以说是
LNOI
2014LCA这个题的加强版所以那个题的博客就咕咕咕啦hhhqwq直接介绍做法了考虑一个如何求两个点x,yx,yx,y的lcalcalca到根的路径和,我们发现,如果我们在确定一个根后
y_immortal
·
2020-08-09 03:32
主席树
树链剖分
标记永久化
c++
【
LNOI
/JLOI/SHOI2016】【BZOJ4561】圆的异或并
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4561还是头一次回头写自己参加过的比赛的题记得当时没开longlong还以为要爆零。。。虽然最后还是滚粗了言归正传这题的算法叫扫描法,就是说把所有可能导致圆的上下关系变化的关键x值找到,然后从小到大进行扫描,找到圆的关系这里的关键x是每个圆的水平直径的两个端点横坐标,也就是一个圆被扫到的起始和
Leo_h1104
·
2020-08-08 12:27
OI
BZOJ
算法
LNOI
2019 游记
来自高一菜鸡Day0到酒店,照例去试机。敲了一发fhq-treap结果敲跪了(就10分钟来不及检查啊),感觉不妙回酒店颓颓颓,晚上去必胜客恰饭(似乎每次去都是散伙饭?Day1状态还好。T1一看能水60,有点儿难以置信。T2不会做,想想可以暴力连边跑拓扑,加上哈希优化拿四十分。结果哈希不会写,算法复杂度就很玄学了,期望20分吧..结果因为memset多了T剩10分,真的惨..不大力memset就40
weixin_34072159
·
2020-07-06 00:16
[bzoj 3626]
LNOI
2014 LCA
神题!虽然想到离线,但是还是只会随机数据的做法。。。。有一个比较有意思的结论:把点i到根的所有点权值设为1,其他点为0,此时j到根的所有点权和即为dep[LCA(i,j)]不难发现,这个方法满足加法性质。把询问查分,从1到n处理每个点,将其到根的权值+1,询问只要看这个点到根的权值和就是LCA的深度和了!LCT维护即可#include#include#includeusingnamespacest
Zeyu_King
·
2020-07-04 09:36
BZOJ
日常
LCT
树上的好题
[
LNOI
2014]LCA给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。
神之右大臣
·
2019-11-05 19:00
BZOJ3626
LNOI
2014LCA
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: [
LNOI
2014]LCA(离线处理+树链剖分)
题目传送门。解法:对于任意一个询问:lrz对于任意一个点来说。他对答案的贡献实际上是LCA(i,z)的深度。也就是lca到根的点数。那么我们可以每个点到根的路径都加1。然后询问下z到根的路径上的答案总和其实就是答案啊。显然可以分成两个区间,一个1到l-1,一个1到r。l到r的答案用两个答案相减,正确性显然。那么离线处理。把每个操作都分成两个区间。然后分别按照右端点排序。把每个点到路径的点都加1。然
Hanks_o
·
2018-03-20 16:38
树链剖分
BZOJ
[
LNOI
] 相逢是问候 || 扩展欧拉函数+线段树
原题为2017六省联考的D1T3给出一个序列,m次操作,模数p和参数c操作分为两种:1、将[l,r]区间内的每个数x变为\(c^x\)2、求[l,r]区间内数的和%p首先,我们要了解一些数论姿势:1、扩展欧拉定理//我们熟知的费马小定理用于p是质数,欧拉定理用于a,p互质,而这道题都不满足这个限制当\((b>=\phi(p))\)时,\(a^b=a^{b\mod\phi(p)+\phi(p)}\)
Mrha
·
2018-01-19 21:00
[BZOJ3626][
LNOI
2014]LCA 树链剖分
太神啦!http://blog.csdn.net/popoqqq/article/details/38823457/**************************************************************Problem:3626User:di4CoveRyLanguage:C++Result:AcceptedTime:3264msMemory:16944kb**
HbFS-
·
2017-02-03 16:38
树链剖分
[bzoj3626][
LNOI
2014]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][
LNOI
2014]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][
LNOI
2014]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][
LNOI
2014]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
bzoj 3626: [
LNOI
2014]LCA(树链剖分+离线+差分)
3626:[
LNOI
2014]LCATimeLimit:10SecMemoryLimit:128MBSubmit:1512Solved:563[Submit][Status][Discuss]Description
clover_hxy
·
2016-05-12 14:34
树链剖分
差分
bzoj 3626: [
LNOI
2014]LCA(树链剖分+离线+差分)
3626:[
LNOI
2014]LCATimeLimit: 10Sec MemoryLimit: 128MBSubmit: 1512 Solved: 563[Submit][Status][Discuss
clover_hxy
·
2016-05-12 14:00
BZOJ3626: [
LNOI
2014]LCA
题目大意:给一棵树,q个询问,每次询问一个区间内的点与一个点的所有LCA的深度之和很神的一道题啊...首先对于每组询问,我们可以把这个区间内每个点到根的路径都+1,然后求被询问的点到根的路径和,就是这个询问的答案然后我们可以把每组询问拆成两个,变成ans[R]-ans[L-1]然后就可以离线,把0~n-1一个一个往里加,每次把它到根的路径+1,然后查询对应的那些询问就可以了#include #in
commonc
·
2016-05-11 07:00
树链剖分
bzoj
离线处理
省选
BZOJ3626
LNOI
2014 LCA 树链剖分+线段树
gconeice的题解:显然,暴力求解的复杂度是无法承受的。考虑这样的一种暴力,我们把z到根上的点全部打标记,对于l到r之间的点,向上搜索到第一个有标记的点求出它的深度统计答案。观察到,深度其实就是上面有几个已标记了的点(包括自身)。所以,我们不妨把z到根的路径上的点全部+1,对于l到r之间的点询问他们到根路径上的点权和。仔细观察上面的暴力不难发现,实际上这个操作具有叠加性,且可逆。也就是说我们可
WDZRMPCBIT
·
2016-04-30 00:00
bzoj3626: [
LNOI
2014]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: [
LNOI
2014]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
线段树
树链剖分
3626: [
LNOI
2014]LCA|动态树
这真是一道神题!!显然需要离线来解决,再就是用到了差分的思想以下是PoPoQQQ大爷复制gconeice的题解,说得非常详细,就不再赘述了显然,暴力求解的复杂度是无法承受的。考虑这样的一种暴力,我们把z到根上的点全部打标记,对于l到r之间的点,向上搜索到第一个有标记的点求出它的深度统计答案。观察到,深度其实就是上面有几个已标记了的点(包括自身)。所以,我们不妨把z到根的路径上的点全部+1,对于l到
ws_yzy
·
2016-03-08 08:00
动态树
[BZOJ3626] [
LNOI
2014]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
bzoj 3626 [
LNOI
2014]LCA(离线处理+树链剖分,线段树)
3626:[
LNOI
2014]LCATimeLimit:10Sec MemoryLimit:128MBSubmit:1272 Solved:451[Submit][Status][Discuss]
hahalidaxin
·
2016-02-10 14:00
bzoj3626【
LNOI
2014】LCA
3626:[
LNOI
2014]LCATimeLimit: 10Sec MemoryLimit: 128MBSubmit: 1266 Solved: 448[Submit][Status][Discuss
AaronGZK
·
2016-02-06 11:00
线段树
树链剖分
bzoj
【BZOJ3626】【
LNOI
2014】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: [
LNOI
2014]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
N.O.W,O.R,N.E.V.E.R--12days to
LNOI
2015
双向链表 单调队列,双端队列 单调栈 堆 带权并查集 hash 表 双hash 树状数组 线段树合并
·
2015-11-09 12:01
ln
BZOJ 3626: [
LNOI
2014]LCA( 树链剖分 + 离线 )
说多了都是泪啊...调了这么久.. 离线可以搞 , 树链剖分就OK了... ---------------------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<
·
2015-11-02 12:13
ZOJ
BZOJ3626 : [
LNOI
2014]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
[bzoj 3626]
LNOI
2014 LCA
神题!虽然想到离线,但是还是只会随机数据的做法。。。。有一个比较有意思的结论:把点i到根的所有点权值设为1,其他点为0,此时j到根的所有点权和即为dep[LCA(i,j)]不难发现,这个方法满足加法性质。把询问查分,从1到n处理每个点,将其到根的权值+1,询问只要看这个点到根的权值和就是LCA的深度和了!LCT维护即可#include #include #include usingnamespa
Zeyu_King
·
2015-06-13 21:00
LCT
【BZOJ 3626】 [
LNOI
2014]LCA
3626:[
LNOI
2014]LCATimeLimit:10SecMemoryLimit:128MBSubmit:735Solved:250[Submit][Status][Discuss]Description
Regina8023
·
2015-04-19 16:00
Bash下的实用小脚本(不定期更新)
1、
lnoi
.sh:列出当前系统下每个IP(IPv4)的连接数:#catlnoi.sh#!
yinkai0619
·
2015-02-26 18:40
linux
bash
script
Bash下的实用小脚本(不定期更新)
1、
lnoi
.sh:列出当前系统下每个IP(IPv4)的连接数:#catlnoi.sh#!
yinkai0619
·
2015-02-26 18:40
linux
bash
script
BZOJ3626 [
LNOI
2014]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
bzoj 3626: [
LNOI
2014]LCA
【题意】【题解】开始做这道题的时候抓住lca不放,想了一些不太优美的做法。优美的正解:考虑与z的lca是x的点:这时候z一定是x的一个后代,而这些点也都是x的一个后代且与z不属于一个x的子节点的枝上。x这个点对答案的贡献就是depth[x]*上述点的个数。显然“上述点”的个数应该是sum(fat[x])-sum(x),而这个数如果一直加到根的话是可以消掉的,,还是挺显然的,,然后……这不是煞笔题么
czysjr
·
2015-01-02 13:19
BZOJ 3626
LNOI
2014 LCA 树链剖分
题目大意:给出一棵树,有n个问题,询问在[l,r]区间内的每个节点i与z的最近公共祖先的深度之和。思路:不会,然后看了题解,之后发现自己智商严重不足。看到数据范围就知道一定要离线处理,就这个离线处理我估计以我的智商不看题解是肯定想不出来的。。考虑这样的一种暴力,我们把z到根上的点全部打标记,对于l到r之间的点,向上搜索到第一个有标记的点求出它的深度统计答案。观察到,深度其实就是上面有几个已标记了的
jiangyuze831
·
2014-11-28 16:00
LCA
树链剖分
2014
bzoj
LNOI
上一页
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
其他