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
------树上差分
AtCoder Beginner Contest 138 D - Ki(
树上差分
)
题目链接————题意大致是给你一棵树,然后每个节点都有一个计算器,有m个操作,每次在x节点处增加val的值,x相应的子树上的节点计算器都会增加val的值。思路:昨天晚上没想出好的做法,然后进行了m次dfs,当然理所当然的TLE。今天看discuss有人说先用数组记录,再用一次dfs进行前缀统计,我有点恍然大悟,然后就试了下,结果Wa了三组数据,我对一次dfs的做法有些质疑,如果两个点有公共子节点的
学着长大.
·
2020-09-12 07:54
—
—
—
—
图论—
—
—
—
树上差分
bzoj3631: [JLOI2014]松鼠的新家(
树上差分
)
bzoj3631题目描述:松鼠的新家是一颗树,新家有n个房间,由n-1条边连接。小熊维尼要来参观,按一定的顺序参观n个房间,每到一个房间都要在那个房间拿走一个糖果(最后一个房间除外)。问松鼠需要在每个房间各放几个糖果。输入格式:第一行一个整数,表示房间的数量。第二行n个整数,表示参观的顺序。接下来n-1行,每行两个整数表示树上相连的两个房间。输入样例:51453212242345输出样例:1212
diqiao4431
·
2020-09-12 02:19
【NIOIP2016提高】天天爱跑步(LCA+
树上差分
)
近几年复赛最难的树上问题了。几个月前做是参照题解的方法,用了可持久化线段树在树上无脑维护和统计。当时的做法早已忘记,于是回过来自己做了做,其实远没有那么难做,只要发现一些奇妙的性质。对于一个玩家s->t,如图。对于图中a点的观察员存在这样一个式子:w(a)=dep(a)-dep(lca)+dep(s)-dep(lca)。对于图中b点的观察员存在这样一个式子:w(b)=(dep(s)-dep(lca
WWWengine
·
2020-09-12 00:36
树-最近公共祖先
数据结构
差分约束系统
中石油训练赛 - One-Way Conveyors(边双缩点+
树上差分
)
题目链接:点击查看题目大意:给出一张n个点m条边的无向图,现在需要将这张图转换为有向图,并且使得k个可达条件成立,输出一种构造方案题目分析:如果在无向图中出现环的话,那么在转换为有向图后,环上的点一定是可以使得互相可达的,所以我们考虑tarjan边双缩点,将整个图缩成一棵树,在缩边的时候,只需要在dfs树上一直加边就可以构造环了现在只需要考虑缩边后的树边方向即可,对于一个可达条件的限制(x,y),
Frozen_Guardian
·
2020-09-11 16:13
图论
树上差分
天天爱跑步 洛谷1600 NOIP2016
树上差分
LCA
题目链接题意好像不是很容易说明白,自己看题目吧。题解:如今再做往年NOIP题目还是不怎么会啊。这题想了想没想出来,然后看了好多题解,又对着y_immortal大神的代码研究了好久,才有些明白,水平还是不行啊。首先我们把无根树转化为以1为根的有根树,dfs一边求出每个点的深度和他的倍增父节点数组。我们把一条路径看成两部分,一部分是向起点与终点的LCA走的,一部分是向下走的。我们发现,对于向上走的那一
forever_shi
·
2020-08-25 03:22
树上差分
LCA
【USACO】 Max Flow
【题目链接】点击打开链接【算法】LCA+
树上差分
【代码】#includeusingnamespacestd;inti,x,y,N,K,l,maxn;intanc[50010][50],d[50010],
even_bao
·
2020-08-25 03:40
树上差分
最近公共祖先
倍增
CodeForces 1076E Vasya and a Tree(
树上差分
+树状数组)
原题地址:https://codeforces.com/contest/1076/problem/E题意:给出一棵树,有mmm次操作,每次操作有一个v,d,x,v,d,x,v,d,x,表示将以vvv为根节点,距离vvv的长度小于等于ddd的所有节点权值加上xxx,最后求所有节点的权值。思路:如果是对节点v的子树进行修改,那么问题可以用dfs序转化为序列上的问题,但是这题是对距离为d的进行修改,那么
yiqzq
·
2020-08-24 11:33
ACM_数据结构
【洛谷 P5357】 【模板】AC自动机(二次加强版)(AC自动机,差分)
每次匹配都不停跳fail显然太慢了,于是在每个节点和fail指向的点连一条边,构成一棵树,在这棵
树上差分
一下就好了。AC自动机就这个算法而言其实没用想象中那么难。
weixin_33894640
·
2020-08-23 03:33
[CF191](Fools and Roads)
题意:给你一棵树,然后给你m对点,将每对点之间的最短路径上每条边权值+1,求操作完成后每条边的权值solution:
树上差分
(其实如果你是数据结构大师的话也可以用树链剖分做)
树上差分
的板子是这样的:设差分数组
weixin_30776273
·
2020-08-22 23:48
Tree 【HDU - 4757】【可持久化字典树】
利用
树上差分
,求链信息。#include#include#include#include#include#include#include#include#include#include#inc
Andres_Lionel
·
2020-08-21 01:45
可持久化字典树
LOJ146 dfs序3 题解(dfs序+树状数组+
树上差分
)
题目:LOJ146.题目大意:给定一棵nnn个点的树,要求支持以下操作:1.格式1 a b c1\,a\,b\,c1abc,表示把链(a,b)(a,b)(a,b)上的点点权加上ccc.2.格式2 a2\,a2a,表示查询点aaa的点权.3.格式3 a3\,a3a,表示查询点aaa的子树点权和.设操作
hezlik
·
2020-08-19 10:50
Alyona and a tree(二分
树上差分
)
题目描述:Alyonaandatreetimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputAlyonahasatreewithnvertices.Therootofthetreeisthevertex1.IneachvertexAlyonawroteanpositiv
b10221001
·
2020-08-19 08:36
NOIP历年好题
NOIP2015运输计划如果实在不懂:https://blog.csdn.net/enjoy_pascal/article/details/86556714二分答案,(链长+lca)
树上差分
为什么想到
树上差分
aiwo8113
·
2020-08-19 08:02
TREE(dfs序+
树上差分
)
题目一棵N个节点的树,每个节点有整数值的点权。树上节点标号为1∼N。Q个询问,形式如下:(1)0xy:把编号x的节点的点权修改为y。(2)1xy:对于编号x∼y路径上的每一种点权,是否都出现偶数次?数据保证每次询问的路径上最多只有一种点权的出现次数是奇数次。输入格式:第一行两个数N、Q表示树的节点数和询问个数。(5#include#include#include#include#includeus
BIT_jzx
·
2020-08-19 07:47
dfs序
线段树
总结
Count on a tree SPOJ - COT(
树上差分
+lca+主席树)
YouaregivenatreewithNnodes.Thetreenodesarenumberedfrom1toN.Eachnodehasanintegerweight.Wewillaskyoutoperformthefollowingoperation:uvk:askforthekthminimumweightonthepathfromnodeutonodevInputInthefirstli
starlet_kiss
·
2020-08-18 09:08
洛谷P4556 雨天的尾巴
树上差分
+权值线段树
题目链接https://www.luogu.org/problem/P4556分析对于树上链的操作,可以用
树上差分
来做;由于粮食有种类,树上每个节点建一棵权值线段树来记录答案;
树上差分
后要合并,用线段树合并来实现
Brute Force Kevin
·
2020-08-18 06:40
数据结构
《算法竞赛进阶指南》
区间子集最大/最小异或和问题(线性基,
树上差分
)
闲话有这样一个问题——一个长度为\(n\)的序列\(a_1-a_n\),\(q\)个询问,每次询问\(l,r\),选出\(\{a_l,a_{l+1}...a_{r}\}\)中一个子集使得子集内元素异或和最大/小。第一次出现在HNOI模拟赛,当时的\(n,q\)只有大概\(3*10^4\)还是\(10^5\)的样子。然后毫不犹豫的写了个\(n\log^3n+q\log^2n\)的线性基ST表过了。。
a83229442
·
2020-08-17 21:35
P3128 [USACO15DEC]最大流Max Flow (
树上差分
)
传送门倍增求LCA+
树上差分
典型的
树上差分
题,根据书上差分的思想,w[u]和w[v]分别加1,它们的最近公共祖先(LCA)和LCA的父亲各减1,最后dfs求和。
Kuguotao
·
2020-08-17 20:14
【最近公共祖先LCA】
树上差分
[CF575B]Bribes
思路:维护
树上差分
即可。源代码:#include#include#includeinlineintgetint(){registe
weixin_33693070
·
2020-08-15 11:10
LOJ147 dfs序4 题解(dfs序+树状数组+
树上差分
)
题目:LOJ147.题目大意:给定一棵nnn个点的树,要求支持以下操作:1.格式1 a x1\,a\,x1ax,表示将点aaa的点权增加xxx.2.格式2 a x2\,a\,x2ax,表示将点aaa的子树增加xxx.3.格式3 a b3\,a\,b3ab,表示查询链(a,b)(a
hezlik
·
2020-08-14 06:56
【NOIP2015】运输计划 {二分答案+倍增+
树上差分
}
【题目描述】公元2044年,人类进入了宇宙纪元。L国有n个星球,还有n−1条双向航道,每条航道建立在两个星球之间,这n−1条航道连通了L国的所有星球。小P掌管一家物流公司,该公司有很多个运输计划,每个运输计划形如:有一艘物流飞船需要从ui号星球沿最快的宇航路径飞行到vi号星球去。显然,飞船驶过一条航道是需要时间的,对于航道j,任意飞船驶过它所花费的时间为tj,并且任意两艘飞船之间不会产生任何干扰。
yellowdesk
·
2020-08-13 23:24
倍增
二分答案
简单复习一下
树上差分
的两种操作(边差分与点差分)
边差分即快速统计出每条边在我们执行的操作中出现的次数。sum[i]sum[i]sum[i]表示iii号点到它的父亲的那条边出现的次数。假设接下来我们对x−>yx->yx−>y这条路径执行了某个操作,需要修改这条路径上的每条边出现的次数。我们只需要维护这条路径的两端与lcalcalca即可:sum[x]++,sum[y]++,sum[lca(x,y)]-=2;最后我们只需要从根节点开始遍
Yucoh
·
2020-08-13 23:41
其他-差分
备战NOIP2018
【
树上差分
】【离线操作】TTL与村庄
【题目描述】有一个村庄在闹饥荒,善良而土豪的TTL决定给他们发放救济粮,该村庄有n户人家,每两户人家之间只有一条路可以互相到达,即这些人家之间形成一棵树。现在TTL会以这样的形式给他们发放粮食,选择两户人家,然后对这两个户人家路径上的所有人家都发放一袋种类为w的救济粮。在完成一系列发放任务后,TTL想知道每一户人家收到的粮食中数量最多的是哪一种。【输入】第一行两个数n,q,其中n表示村庄共有几户人
weixin_44111457
·
2020-08-13 22:24
P3128 [USACO15DEC]Max Flow P【
树上差分
_点差分(LCA)】
思路
树上差分
之点差分模板无根树转有根树对路径操作时,++sum[u],++sum[v],--sum[lca(u,v)],--sum[fa[lca(u,v)]]【即差分操作】dfs整棵树,某个结点的点权等于
Eve_Miracle*
·
2020-08-13 22:19
#
LCA
数据结构
差分+
树上差分
(详细说明+模板)
问题引入差分的题目,常见的操作为:有一连续区间[1,n],包含n个点,对任意的1lca(u,v)->v,此时我们也有一个差分数组val[],值初始化为0,此时执行操作:val[u]+=x,val[v]+=x,val[lca[u,v)]-=x,val[father[lca[u,v)]]-=x,执行完所有这样的操作之后,我们用sum[]记录每个结点的权值,sum[i]的值为i和i的子树的val[]之后
winer_bamboo
·
2020-08-13 22:14
差分+树上差分
前缀和、差分与
树上差分
1.3
树上差分
:同样的,如果我们有若干次操作与若干次询问,每次操作对从u到v路径上所有节点加一个值,那么我们用树
迷亭1213
·
2020-08-13 22:11
Algorithm
数据结构
2017 SEERC Divide and Conquer
树上差分
题目题目大意:给出两颗树的复合图(即这张图是由两颗树拼起来的),询问最小割掉多少条边,可以使得图不联通,并输出方案数。分析我觉得这是一道很难的题目,因为比较难想,前提结论比较多。首先我们需要得到一个结论:就是割掉的边数不可能超过3。证明:如果割掉的边数超过3,那么意味着每个点的度数都要≥4≥4,这也就是说,图中至少需要2n2n条边,而图是由两个树拼成的,边数只有2n−22n−2条边,显然不可能。既
phython96
·
2020-08-13 21:30
ACM-ICPC训练题解
树上差分
——点差分裸题 P3128 [USACO15DEC]最大流Max Flow
讲解:https://rpdreamer.blog.luogu.org/ci-fen-and-shu-shang-ci-fen1#include2#definereadread()3#defineup(i,l,r)for(registerinti=(l);i=(r);i--)5#definetraversal_vedge(i)for(registerinti=head[u];i;i=e[i].nx
weixin_33913332
·
2020-08-13 21:34
树上差分
树上差分
建立在差分数组的基础上,所以还不会差分数组的大佬可以先预习一下这篇博客,期望阅读时间5分钟:差分数组。
weixin_33802505
·
2020-08-13 21:39
【学术篇】
树上差分
--洛谷3128最大流Max Flow
懒得贴题目,直接放不稳定的传送门(雾):点击前往暴风城(雾)据说这题是BZOJ3490,但本蒟蒻没有权限╮(╯_╰)╭这题似乎就是裸
树上差分
。。。
weixin_30687051
·
2020-08-13 20:23
P3128 [USACO15DEC]最大流 [
树上差分
]
传送门点权差分,点加点加,lca减,fa[lca]减#include#defineN50050usingnamespacestd;intfirst[N],next[N*2],to[N*2],tot;intn,m,fa[N][20],dep[N],val[N],ans;voidadd(intx,inty){next[++tot]=first[x],first[x]=tot,to[tot]=y;}vo
FSYo
·
2020-08-13 18:40
「USACO2015」 最大流 -
树上差分
分析算得上是
树上差分
的模板题了。说一下普通的差分。现在有这么一个问题,给定一个序列A,有K个修改,每个修改将[L,R]中的数加1,最后问其中的最大数。
TbYangZ
·
2020-08-13 18:03
图论---最近公共祖先LCA
图论---树上差分
树上差分
差分差分是前缀和的逆运算。d1...nd_{1...n}d1...n是差分数组,a1...na_{1...n}a1...n是原数组。关系如下式。di=ai−ai−1d_i=a_i-a_{i-1}di=ai−ai−1则通过d1...nd_{1...n}d1...n数组求aia_iai,为求d1...nd_{1...n}d1...n数组的前缀和。ai=∑j=1idja_i=\sum_{j=1}^id_
mr.chen116
·
2020-08-13 18:25
ACM训练
acm竞赛
树上差分
(点差分与边差分)
树上差分
,顾名思义就是在树上搞差分。有两种典型题型,一种是边差分,一种是点差分。边差分给你一棵树,有n次修改操作,每次把u..v的路径权
SPI_DER
·
2020-08-13 18:59
树上差分
(点差分和边差分)
因为准备学树剖于是又学了树差分。点差分:u至v路径上所有点点权+1,那么c[u]++,c[v]++,c[lca]--,c[fa[lca]]--,可以在多次更新树链的点之后,得到某点权值边差分:边差分的话要把边的权值存在他连着的儿子节点上,然后儿子节点的权值就是这条边的边权了,u至v路径上所有边的边权+1,那么c[u]++,c[v]++,c[lca]-=2,可以在多次更新树链之后,得到某边权值。点我
MARS
·
2020-08-13 17:11
POJ 3417 Network(进阶指南,
树上差分
)
算法竞赛进阶指南,380页,
树上差分
本题要点:1、附加边(x,y)把x,y之间的路径上的每条边都"覆盖了一次",需要统计每条主要边被覆盖了几次;a)主要边被覆盖0次,那么将该主要边打断,然后随意打断一条附加边即可
qq_38232157
·
2020-08-13 17:24
算法竞赛进阶指南
图论
POJ
差分(1)——差分数组
写这个博客主要的原因是解释另一道题运输计划的
树上差分
,另外也是记录一下,不然每次都以为差分好难,其实是非常容易的。
Cass-ette
·
2020-08-13 16:46
差分
2017NOIP模拟赛 松鼠的新家(
树上差分
)
【題目描述】松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的。天哪,他居然真的住在“树”上。松鼠想邀请小熊维尼前来参观,并且还指定一份参观指南,他希望维尼能够按照他的指南顺序,先去A1,再去A2,……,最后到An,去参观新家。可是这样会导致维尼重复走很多房间,懒惰的维尼不听地推辞。可是松鼠告诉他,每走到一个房间
Maverick2019-.-
·
2020-08-13 16:21
【树剖】【
树上差分
】部落冲突
题目大意处理下面三件事,所有的事件都是按照时间顺序给出的。1.(Qpq)从第p个部落出发的建筑工人想知道能否到达第q个部落了,你要回答的便是(Yes/No),注意大小写2.(Cpq)第p个部落与第q个部落开战了,保证他们一定是相邻的部落,且目前处于停战(未开战)状态3.(Ux)第x次发生的战争结束了,它将永远的被载入史册,不复存在(保证这个消息不会告诉你多次)对于30%的数据1#include#i
mc_dl
·
2020-08-13 15:51
luogu
树链剖分
树上差分
树状数组
差分与
树上差分
【整理】
乱入的欧拉降幂单调队列线性基关于差分,
树上差分
的浅谈导引https://blog.csdn.net/lanpom/article/details/81672524https://blog.csdn.net
axuhongbo
·
2020-08-13 13:37
2018ACM训练题目+思考
树上差分
小结
这是一个把差分思想运用到树上的优秀技巧,他和差分数组很像,常数小,还好写,并且思想也很简单。点差分树上有两种东西,点和边,他们都可以带权,所以自然也就有两种不同的差分方式来维护他们。设val[x]val[x]val[x]表示点xxx的权值,b[x]b[x]b[x]表示xxx处差分数组的权值,他们的关系为val[x]=∑y∈xb[y]val[x]=\sum_{y\inx}b[y]val[x]=∑y∈
Hypoc_
·
2020-08-13 12:54
算法小结区
【瞎扯】
树上差分
的基本思路
数据结构题中解法千变万化,但分析最近几年的趋势来看,有一种比较重要的思想->
树上差分
。(会树剖的大神不要嘲笑,虽然很多时候树剖都能很好解决QwQ)。至少,
树上差分
熟练的话还是可以解决很多问题的。
Zhayan9QvQ
·
2020-08-13 12:52
差分思想
模板与总结
P5157 The Cow Gathering [拓扑排序/
树上差分
]
TheCowGatheringThe\Cow\GatheringTheCowGatheringDescription\mathcal{Description}Description给定NNN个节点的树,有MMM条限制条件:aia_iai比bib_ibi先删除.请输出所有节点能否最后被删除.Solution1\mathcal{Solution_1}Solution1步骤:\color{red}{步骤
Zbr162
·
2020-08-13 12:48
基础算法-树上差分
*
First
疑难问题
.
【例题】【
树上差分
】NKOJ3605 Max Flow
NKOJ3605MaxFlow时间限制:10000MS空间限制:65536KB问题描述FJ给他的牛棚的N(2≤N≤50,000)个隔间之间安装了N-1根管道,隔间编号从1到N。所有隔间都被管道连通了。FJ有K(1≤K≤100,000)条运输牛奶的路线,第i条路线从隔间si运输到隔间ti。一条运输路线会给它的两个端点处的隔间以及中间途径的所有隔间带来一个单位的运输压力,你需要计算压力最大的隔间的压力
Y__XV
·
2020-08-13 12:33
例题
差分
树状网络攻击(LCA和
树上差分
的应用)
树状网络攻击:题目描述SX公司很发愁,因为DX公司想要攻击SX公司的网络,SX公司的网络可以看作一个树,有n个节点和n-1条连接这些节点的边使得节点两两连通,节点标号1-n。树状网络很脆弱,为了抵御攻击,SX公司又修建了m条边。所有边都是双向的。你作为DX的攻击者,可以恰好毁坏两条边:一条在原树状网络上,一条在新修建的边中。请计算你有多少种方式可以将SX的网络分成至少两个不连通的部分。输入说明第一
Stockholm_Sun
·
2020-08-13 12:47
#
差分
#
树
#
LCA
【详解】前缀和与差分、
树上差分
【例】给定一个n个数的序列为:a1,a2,a3,...,ana_1,a_2,a_3,...,a_na1,a2,a3,...,an,现在询问m次ai,ai+1,...,aja_i,a_{i+1},...,a_jai,ai+1,...,aj的和。(1≤n,m≤100001\leqn,m\leq100001≤n,m≤10000)解决方法:最直接的方法就是暴力枚举,对于每次询问,使用for(k=i~j)即
_BOSS_
·
2020-08-13 12:27
C/C++
[bzoj3331][强联通][
树上差分
]压力
Description如今,路由器和交换机构建起了互联网的骨架。处在互联网的骨干位置的核心路由器典型的要处理100Gbit/s的网络流量。他们每天都生活在巨大的压力之下。小强建立了一个模型。这世界上有N个网络设备,他们之间有M个双向的链接。这个世界是连通的。在一段时间里,有Q个数据包要从一个网络设备发送到另一个网络设备。一个网络设备承受的压力有多大呢?很显然,这取决于Q个数据包各自走的路径。不过,
Rose_max
·
2020-08-13 12:19
bzoj
树上差分
强联通
树上差分
(LCA)
https://ac.nowcoder.com/acm/contest/1057/C#includeusingnamespacestd;#defineMAXN100005intT;//最大深度intn,m;intcnt,first[MAXNque;que.push(x);deep[x]=1;while(que.size()){intcur=que.front();que.pop();for(int
咆哮_
·
2020-08-13 12:17
GDFZOJ Alyona和一棵树(dfs + LCA + 树剖或
树上差分
)
题目链接题目大意给出一棵nnn个点的有根树,点和边都带权,该树以111号节点为跟设dist(x,y)dist(x,y)dist(x,y)为xxx到yyy的路径上的边权和如果uuu在vvv的子树中,且dist(u,v)≤audist(u,v)\lea_udist(u,v)≤au(aaa为点权),那么我们称顶点vvv控制顶点uuu(v≠u)(v\nequ)(v=u)。对于每个节点1≤x≤n1\lex
_Wolverine
·
2020-08-13 11:12
题解
GDFZOJ
题解 CF191C 【Fools and Roads】
树上差分
半裸题常规思路是进行三次DFS,然后常规运算即可这里提供两次dfs的思路(wyztqlorz)我们以样例2为例我们考虑任意一条路径,令其起点为u终点为v,每走一次当前路径则v的访问次数必定+1,
weixin_34122548
·
2020-08-11 14:24
上一页
1
2
3
4
5
下一页
按字母分类:
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
其他