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
点分树
2020寒假集训Day2 分治与分块 总结
记录一下当前点分治中心到子树中任意节点的简化括号序列的剩余左右括号数目(要记录两种一种是从上向下、另一种是从下向上),然后在点分治中心合并答案即可至于怎么记录从下向上的简化括号序列,可以考虑从序列左边插入括号来维护栈2、
点分树
一棵树
cqbzcsq
·
2024-01-19 21:16
分治
数据结构
总结
树分治
分块
C++
codeforces 342E Xenia and Tree
点分树
点分树
教程:参考博客题意:给定一棵nnn个节点的树,初始时111号节点为红色,其余为蓝色。要求支持如下操作:将一个节点变为红色。询问节点uuu到最近红色节点的距离。共qqq次操作。
Yjmstr
·
2023-11-07 22:15
点分树
树分治
codeforces
算法
洛谷·【模板】
点分树
| 震波【including
点分树
初见安~这里是传送门:洛谷P6329【模板】
点分树
|震波一、
点分树
其实你会点分治的话,
点分树
就是把点分治时的重心提出来重新连城一棵树。比如当前点是u,求出子树v的重心root后将root与u连边。
樱狸❀
·
2023-11-06 14:17
树型结构
点分树
2022.03.11
点分树
2022.03.11
点分树
2.1前置知识2.1.1点分治点分治是每次选择子树中的重心不断更新答案的东西。
eleveni
·
2022-04-15 20:00
学习笔记第六十节:动态点分治
(分治树最大高度log像这题:【模板】
点分树
|震波
Deep_Kevin
·
2020-09-16 17:39
动态点分治
学习笔记
bzoj5129: [Lydsy1712月赛]树上传送
首先每个点可以更新的点的最短路都是dis[i]+cos[i]dis[i]+cos[i]dis[i]+cos[i],所以维护一个堆,按排序,这样每个节点只会被修改一次那么如何快速找出所有没有更新的点呢,我们考虑
点分树
从每个重心开始
spzb
·
2020-08-24 09:55
点分树
Luogu P4115Qtree4 P2056[ZJOI2007]捉迷藏 题解
题目链接[ZJOI2007]捉迷藏P4115Qtree4题解动态点分治+堆
点分树
:我们把分治过程中遍历过的重心都连起来上一层的重心连接下一层的重心可以得到一棵新的树然后在这颗树上乱搞先对于每个点弄两个大根堆
Joe_2005
·
2020-08-20 17:38
洛谷
堆
算法
点分治
JZOJ 5898. 【NOIP2018模拟10.6】距离统计
DescriptionInputOutputSampleInput53123131244252123351SampleOutput362DataConstraintSolution这题用到
点分树
,即点分治时重心
Felix-Lee
·
2020-08-19 10:57
图论
点分树
点分治
bzoj1095
动态点分治先建出
点分树
,每个点上维护两个堆,s1,s2,分别表示子树中到
点分树
中父亲的所有长度,每个儿子s1的最大值,那么对于每个点答案就是s2的最大+次大,再维护一个s3保存这个。
weixin_30919429
·
2020-08-18 04:46
bzoj1095动态点分治
可以用一次点分治回答一次询问这时候我们可以把
点分树
建出来。。。
点分树
有一些性质:1.树高不超过log层。(显然吧orz。。。)2.在进行点分治时,套路就是从当前点出发向外扩展,直到碰到已经访问过的点为
_shivering_
·
2020-08-18 02:09
数据结构
bzoj1095:Hide 捉迷藏(动态树分治)
根据点分治的划分过程,每个重心向它的次级重心连边,形成了一棵
点分树
。显然
点分树
KKiseki
·
2020-08-18 00:12
树分治
bzoj1095【ZJOI2007】捉迷藏 (动态点分治总结)
动态点分治,就是在普通点分治的基础上,把每一层重心与上一层的重心连起来,形成一颗
点分树
,然后在每个点维护该点作重心时管辖的子树的信息。
hhz6830975
·
2020-08-17 22:28
图论——点分治
bzoj1095 (
点分树
)
若无修改,可直接树形dp或点分求即可,加上修改的话就要用到
点分树
了(orz括号序列的做法)。。。
Max_1_
·
2020-08-17 22:42
点分树
bzoj1095
点分树
【BZOJ2566】xmastree(
点分树
)
传送门题解:可能手残到了一定程度才会像我一样在算子树siz的时候将siz[u]+=siz[v]打成siz[v]+=siz[u],然后莫名其妙挂一堆点思路挺简单,码起来没什么细节就是有点长~建立
点分树
,每个分治中心维护两个东西
zxyoi_dreamer
·
2020-08-14 00:09
树分治
3924: [Zjoi2015]幻想乡战略游戏(
点分树
)
题目链接分析
点分树
裸题!!!其实是不想写题解大概就是要新建立
点分树
,基本上是一个新树了。要维护以每个结点为根的子树信息来辅助查询。查询的时候就是找子树中比当前结点优的点然后。
星辰大少主
·
2020-08-13 23:18
BZOJ
点分治
BZOJ3730震波——动态点分治+线段树(
点分树
套线段树)
题目描述在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i]。不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发生变动。接下来你需要在线处理M次操作:0xk表示发生了一次地震,震中城市为x,影响范围为k,所有与x距离不超过k的城市都将受到影响,该次地震造成的经济损失为所有受影响城市的价值和。1xy
weixin_34336292
·
2020-08-13 21:56
[WC2018]即时战略——动态点分治(替罪羊式
点分树
)
题目链接:[WC2018]即时战略题目大意:给一棵结构未知的树,初始时除1号点其他点都是黑色,1号点是白色,每次你可以询问一条起点为白色终点任意的路径,交互库会自动返回给你这条路径上与起点相邻的节点并且如果这个点为黑色则将它变为白色,要求在不多于给定次数的询问内使所有点变为白色。大致思路为按一定顺序分别将n-1个点变为白点,为了防止被卡,需要对2~n的序列随机打乱再按打乱后的顺序逐个变白。数据范围
weixin_34090562
·
2020-08-13 21:32
【
点分树
】codechef Yet Another Tree Problem
题目分析做法一:
点分树
上$\log^3$首先暴力做法:对于每个节点维护其他点距离的值域线段树。这个做法的瓶颈在于关于边$(u,v)$线段树的转移。
weixin_30855099
·
2020-08-13 21:22
BZOJ1095 动态点分治(
点分树
)
题意:操作1.修改一个点的颜色(黑白互换)操作2.询问所有黑色点之间最远距离
点分树
:当我们可以形如点分治一样的统计答案,即每次确定一个重心,然后计算他们子树之间的贡献和得出答案的时候我们可以将每个区域的重心作为其所有子树的重心的父亲
weixin_30486037
·
2020-08-13 20:12
[
点分树
] BZOJ 3924 [Zjoi2015]幻想乡战略游戏
%%%CLJ首先动态维护每个点的答案?动态树分治就好了怎么找重心对于分治结构的每一个点,我们枚举它的出边如果某条出边连向的点的距离之和小于当前点,那么答案一定在那条出边指向的子树中,分治做下去就行了这样是两个log再乘20的实际上最优可以一个log跑的竟然还没有当年不懂事打的暴力快#include#include#includeusingnamespacestd;typedeflonglongll
里阿奴摩西
·
2020-08-13 20:09
点分治
[
点分树
树状数组] BZOJ 3730 震波
线段树T成翔只能用vector写BIT痛苦的回忆啊思路不难想先建出
点分树
然后每个点对于他掌管的点的距离与权值建成BIT然后每次查询就是爬
点分树
这里有点注意往树上爬的时候不能中途break,不会因为有一个祖先爬不上去就终止
里阿奴摩西
·
2020-08-13 20:09
点分治
树状数组
[
点分树
二分答案] BZOJ 2117 [2010国家集训队]Crash的旅游计划
二分答案后就转化为有多少个数到某点距离小于多少这就是个裸的
点分树
啊复杂度O(nlog3n)#include#include#include#includeusingnamespacestd;inlinecharnc
里阿奴摩西
·
2020-08-13 20:09
点分治
动态点分治 /
点分树
学习笔记 ---- BZOJ3730 震波 / [ZJOI2017] 幻想乡的战略游戏 / [HNOI2015]开店
点分树
就是将每一次的重心连起来,形成一个深度不超过log的树相当于将点分治的过程静态到一颗树上实现如下,fa记录
点分树
上的父亲voidDivide(intu,intf){fa[u]=f;vis[u]=1
FSYo
·
2020-08-13 18:40
动态点分治
jzoj5898 【NOIP2018模拟10.6】距离统计 (
点分树
统计去重)
询问数,点数1e5.要点先建
点分树
。在
点分树
上统计。每个分治中心开数组记录其范围内所有到他的距离,排序之后就可以快速统计了。
jokerwyt
·
2020-08-13 15:12
题解
新内容
半小时写完替罪羊重构
点分树
做动态动态点分治之紫荆花之恋的wyy贴心指导
刷题训练初学者有一定语言基础,但是不了解算法竞赛,水平在联赛一等奖以下的。参考书:《算法竞赛入门经典——刘汝佳》,《算法竞赛入门经典训练指南——刘汝佳》题库:洛谷(历年题目),USACOtraining(有一定基础的可以考虑跳过前面几个Chapter),USACO月赛进阶学习联赛一等奖水平想要进步到安徽A队水平的。参考书:《算法艺术与信息学竞赛——刘汝佳》,《算法导论》,《具体数学》题库:bzoj
baben4194
·
2020-08-13 13:42
维护
点分树
总的来说,维护
点分树
需要记录以下这些东西:该点在
点分树
上的每一级父亲。它在每一级父亲那里的深度。它和它父亲之间的cut点。
Timsei
·
2020-08-13 12:14
最近点 - 可持久化
点分树
- 主席树
题目大意:给一棵树,点有黑白,每次形如翻转一个点颜色,询问到某个点的最近黑色点距离,以及返回之前某个版本。n,q#definerep(i,a,b)for(inti=a;ipii;typedefset::iteratorsit;namespaceINPUT_SPACE{constintBS=(1'9');x=ch^'0';while((ch=gc())>='0'&&chg[N];inlineinta
Mys_C_K
·
2020-08-13 12:06
主席树
点分治
【可持久化
点分树
??】CF757G Can Bash Save the Day?
【题目】CF一棵nnn个点的树和一个排列pip_ipi,边有边权,支持两种操作:lrxl\r\xlrx,询问∑i=lrdis(pi,x)\sum\limits_{i=l}^{r}dis(p_i,x)i=l∑rdis(pi,x)xxx,交换px,px+1p_x,p_{x+1}px,px+1n,q≤2×105n,q\leq2\times10^5n,q≤2×105,强制在线【解题思路】首先考虑没有修改怎
Dream_Lolita
·
2020-08-13 11:58
分而治之-树分治
[联合集训6-19] 山洞
点分树
一句话题意就是求
点分树
最小深度。
DOFYPXY
·
2020-08-13 11:11
dp
状态压缩
树分治
[
点分树
][二分] [BZOJ4317]Atm的树 && [BZOJ2117][2010国家集训队]Crash的旅游计划 &&[BZOJ2051]A Problem For Fun
题意求一棵树上,以每个点为起点的第k短路径双倍经验三倍经验啊对于每一个点,二分答案,那么只要判断与当前点距离小于等于二分出来的答案的点的个数是否等于k就行了复杂度nlog^3n,数据点应该不多……表示树上倍增常数太大了……#include#include#include#include#include#include#defineN100010usingnamespacestd;intn,k,u,
LowestJN
·
2020-08-13 11:34
二分
&
三分
点分树
BZOJ 3924: [Zjoi2015]幻想乡战略游戏 【
点分树
】
先考虑如何计算:每次找重心,构造出
点分树
,对于树中的每个节点维护三个信息:sv[i]sv[i]sv[i]:以iii为根的子树的点权和sd[i]sd[i]sd[i]:以iii为根的子树中每个点到iii的带权距离和
Master.Yi
·
2020-08-13 11:17
树上问题
分治(二分)
点分治
cdqz2017-test8-Tree(
点分树
)
)/2个点对,定义这棵树的价值为任意两点对的(a[x]^a[y])*dis(x,y)有m次修改一个点的点权的操作输出每次修改完点权后这颗树的价值第i次的修改会影响到第i次之后的修改第一眼:我靠怎么又是
点分树
然后因为没有处理好选的点对和自己处于根的同一子树
weixin_33817333
·
2020-08-13 11:11
[WC2014] 紫荆花之恋 (
点分树
)(替罪羊树)(
点分树
定期重构)
关于求答案:对于每一个分治中心ggg,求经过它的点对(u,v)(u,v)(u,v)的贡献需要dis(u,g)+dis(v,g)≤ru+rvdis(u,g)+dis(v,g)\ler_u+r_vdis(u,g)+dis(v,g)≤ru+rv也就是dis(u,g)−ru≤rv−dis(v,g)dis(u,g)-r_u\ler_v-dis(v,g)dis(u,g)−ru≤rv−dis(v,g)可以用平衡
FSYo
·
2020-08-13 10:08
动态点分治
平衡树
点分治和
点分树
文章目录吐槽题目[IOI2011]Racecf716E.DigitTreecf293E.CloseVerticesbzoj3730:震波cf757G.CanBashSavetheDay?吐槽去年送我退役的好东西。写了一道题就觉得自己已经会动态点分治的我真是tooyoungtoosimple,sometimesnaive.现在至少不像去年抓破脑壳写个模板了。然鹅这并不影响我小bug一堆。这里数组越界
啊宸
·
2020-08-13 10:50
数据结构
点分治与
点分树
学习
关于树链分治的一些东西《分治算法在树的路径问题中的应用》例题给出一棵n个结点的有根树,每个结点有颜色。有若干询问,询问有多少种颜色,在v为根的子树中至少有k个结点属于该颜色。算法1莫队(好像都是这么叫的)离线方法。时间复杂度O(nn)O(n\sqrtn)O(nn)。算法2这个算法基于一个简单的结论:每个询问的答案不会超过n/kn/kn/k。这样,我们确定一个阀值x=n\sqrtnn,当k≤x时的答
_Tham
·
2020-08-13 10:14
数据结构
一篇自己都看不懂的点分治&
点分树
学习笔记
淀粉质点分治可真是个好东西PartA.点分治众所周知,树上分治算法有$3$种:点分治、边分治、链分治(最后一个似乎就是树链剖分),它们名字的不同是由于分治方式的不同的。点分治,顾名思义,每一次选择一个点进行分治,对于树上路径统计类型的问题有奇效,思路很好理解,只是码量有些烦人先来看一道模板题:CF161D至于为什么我没有放Luogu模板题是因为那道题只会写$O(n^2logn)$的算法(然而跑得过
weixin_30263073
·
2020-08-10 22:42
2020牛客多校七 C. A National Pandemic (树链剖分)
你要看
点分树
做法?不会操作2很简单,维护一个delta,取min相当于减去当前自身的值,用delta记录进行当前操作时自身的值即可,操作3查询的时候直接减去就ok了。接下来考虑操作1。
gongyuandaye
·
2020-08-10 20:25
#
树链剖分
树链剖分
「LOJ2474」「2018 集训队互测」北校门外的未来-笛卡尔树及其扩展+LCT
感性理解的话,C(T)C(T)C(T)是把选重心改为选最大编号的点,构建出来的
点分树
。先不考虑修改。对于TTT构造出C(T)C(T)C(T)可以发现:性质111G(T)G(T)G(T)中
DSL_HN_2002
·
2020-08-09 05:53
数据结构——动态树/LCT
文章类型——题解
BZOJ4372烁烁的游戏——动态点分治+线段树(
点分树
套线段树)
题目描述背景:烁烁很喜欢爬树,这吓坏了树上的皮皮鼠。题意:给定一颗n个节点的树,边权均为1,初始树上没有皮皮鼠。烁烁他每次会跳到一个节点u,把周围与他距离不超过d的节点各吸引出w只皮皮鼠。皮皮鼠会被烁烁吸引,所以会一直待在节点上不动。烁烁很好奇,在当前时刻,节点u有多少个他的好朋友---皮皮鼠。大意:给一颗n个节点的树,边权均为1,初始点权均为0,m次操作:Qx:询问x的点权。Mxdw:将树上与节
weixin_34355559
·
2020-08-08 02:06
bzoj 3730: 震波 (
点分树
+线段树)
3730:震波TimeLimit:15SecMemoryLimit:256MBSubmit:501Solved:108[Submit][Status][Discuss]Description在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i]。不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发生变
lethalboy
·
2020-08-08 01:50
线段树
训练期间
高级数据结构
树分治
bzoj3730震波(
点分树
,树状数组)
对
点分树
的每个节点X用个线段树维或树状数组维护其子树中每个点到X的距离权值,再用另一个维护到fa[x]的距离权值(用于查询时容斥)。修改询问时沿着父节点往上跑logn层更新或查询。
Max_1_
·
2020-08-08 01:39
点分树
[BZOJ3730][震波][动态树分治+线段树+LCA]
线段树+LCA]题目大意:给定一棵树,要求支持两种操作:操作描述(0,x,k)求所有和节点x距离不超过K的节点权值和(1,x,y)将节点x的权值修改为y思路:树分治题,首先求出每个重心,对重心连边形成
点分树
g1n0st
·
2020-08-08 01:37
Bzoj
点分治
LCA
线段树
CQOI2020 退役记
学校的机房终于升级了上午疯狂复习写了道期望+
点分树
的题下午去军体拳比赛,感觉还行(20块钱的盗版鞋剧毒啊,呼吸了一天的毒气)晚上突然嗓子痛,鼻子不舒服还是把支配树、带花树、KM、最小割树、后缀数组、非旋
cqbzcsq
·
2020-08-07 11:04
总结
CSAcademy Round 10 Yury's Tree(有根树
点分树
或kruskal重构树)
https://csacademy.com/contest/archive/task/yurys-treehttps://csacademy.com/submission/2761667/题解:kruskal重构树的\(log^2\)做法非常显然,这里就不讲了。这里讲讲有根树的点分治做法。依旧是分治,对一个分治子树,考虑所有经过分治重心的路径。设这个分治子树中在原树上深度最小的点为它的根\(roo
Cold_Chair
·
2020-08-02 22:00
题解 洛谷 P3920 【[WC2014]紫荆花之恋】
将题目中给的式子变形得:\[\begin{aligned}val_x+val_y\geqslantdis_{x,y}\\val_y\geqslantdis_{x,y}-val_x\end{aligned}\]对于
点分树
上的每个节点
lhm_liu
·
2020-07-25 08:00
题解 洛谷 P5311 【[Ynoi2011]成都七中】
每次询问是关于\(x\)所在的连通块,所以考虑用
点分树
来解决本题。
点分树
上每个节点所对应的子树,都是原树中的一个连通块。
lhm_liu
·
2020-07-22 08:00
题解 洛谷 P4695 【[PA2017]Banany】
首先对原树进行点分治,建出
点分树
,在
点分树
每个节点上用动态开点线段树来维护以该节点为起点,到其
点分树
子树中每个节点的利润。
lhm_liu
·
2020-07-20 19:00
一些抄来的冷知识...
1.点分治向下递归的时候两种写法(是否判断当前子节点为上层
点分树
中的父节点)都不会锅:2.枚举子集方法有三,暴力不说,高维前缀和网上挺多,至于另一种玄学算法总感觉很像FWT:for(rinti=1;i1
weixin_30872157
·
2020-07-08 14:42
BZOJ1095 & 动态点分治(好像应该叫
点分树
?)学习笔记
首先要说的是,QTREE4是从这题加强来的,这题可以用括号序列(现在还不会以后学)。啊既然是学习笔记我来口胡一发。觉得有这么一句话说的很好(好像是fjzzq说的),树上的动态点分治就相当于序列上的线段树,仔细一想还真有点这意思。那首先得有个像线段树一样的结构对吧,这个结构就是用每次分治的重心串起来的,得到一颗分治树,分治树的深度大概在log级别.然后像线段树一样,某个节点变化,只会导致它分治树上的
QWsin
·
2020-07-04 07:52
#
总结
#
点分治
洛谷 P2056 [ZJOI2007]捉迷藏(动态点分治)
题目链接冒着滥用此题将封号的风险测了七发RP才过……每个点建两个双堆,堆a表示这个点所在的子树里所有点到他
点分树
中父亲的距离,堆b表示所有
点分树
子树中到他距离最大的个点的距离,堆c用来存全局答案,显然全局答案就是每个堆
Philosophiofantasia
·
2020-07-02 16:16
洛谷
点分治/动态点分治
上一页
1
2
下一页
按字母分类:
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
其他