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
————点分治
HDU 5977 树的
点分治
+ 状态压缩 + 枚举子集
题意:给一棵节点数为n,节点种类为k的无根树,问其中有多少种不同的简单路径,可以满足路径上经过所有k种类型的点?(a->b与b->a算作两条路径,起点与终点也可以相同)思路:现场赛的时候k的大小是7,当时看到这题也没多想就树形dp水过了。现在重现赛k改成了10,这时候用树形dp,无论是时间还是空间复杂度都很爆炸。后来听说这题的正解是树分治,于是就学习了一波,然后重新来做这道题,关于树分治的内容在我
Bahuia
·
2020-08-13 11:03
分治
POJ 1741 树的
点分治
通常对于树上的分治算法有两种,第一种是针对点进行的分治,另一种是针对边进行的分治,可以证明,大部分情况下
点分治
算法的性能更加稳定,而边分治在某些情况下,算法效率非常低。所以以下主要讨论
点分治
。
Bahuia
·
2020-08-13 11:02
分治
HDU - 5977 Garden of Eden 【高维前缀和 +
点分治
】
传送门//一棵树,上面都有一个点权,问有多少条路径满足进过的点的类型刚好有k种,//首先这个肯定是
点分治
,但是难点和POJ那题的不同处就是这个是状态,那么就不能像POJ那题进行排序选点了,所以我们应该要换一种比较高效的方法
Anxdada
·
2020-08-13 11:58
树的点分治
BZOJ 3784: 树上的路径(
点分治
+ST表+堆堆堆)
题目喵述权限门题目大意:给一棵树,有N个点,有边权。所有无向路径中,请你输出前M大的。N#definemaxn800010#defineLg20usingnamespacestd;intn,m,cur=-1;structList{List*next;intobj,len;}*head[maxn],Edg[maxnQ;voidGetRoot(intx,intff){siz[x]=1;son[x]=0
AbEver
·
2020-08-13 11:21
BZOJ
点分治
倍增
STL
[BJOI2017]树的难题:
点分治
+单调队列
题意luogu/loj给你一棵nnn个点的无根树。树上的每条边具有颜色。一共有mmm种颜色,编号为111到mmm。第iii种颜色的权值为cic_ici。对于一条树上的简单路径,路径上经过的所有边按顺序组成一个颜色序列,序列可以划分成若干个相同颜色段。定义路径权值为颜色序列上每个同颜色段的颜色权值之和。请你计算,经过边数在lll到rrr之间的所有简单路径中,路径权值的最大值。数据范围:1≤n,m≤2
wyy603
·
2020-08-13 11:13
BJOI2017 树的难题
点分治
+线段树
长度L-R肯定要用
点分治
,通过分析可以得出对于每一个子树,只要考虑当前分治中心到每颗子树的颜色是不是一样的就行了。即相同的要减去1个。我们考虑用两颗线段树维护。线段树的坐标表示长度。
Exception2017
·
2020-08-13 11:59
点分治
线段树
luoguP3714 [BJOI2017]树的难题
点分治
以后传数组绝对用指针...考虑
点分治
在点分的时候,把相同的颜色的在一起合并之后,把不同颜色依次合并我们可以用单调队列做到单次合并$O(n+m)$如果我们按照深度大小来合并,那么由于每次都是把大的往小的去合并因此
weixin_30698297
·
2020-08-13 11:30
BZOJ4860 Beijing2017树的难题(
点分治
+单调队列)
考虑
点分治
。对子树按照根部颜色排序,每次处理一种颜色的子树,对同色和不同色两种情况分别做一遍即可,单调队列优化。
Claire_ljy
·
2020-08-13 11:55
【BZOJ】【P2870】【最长道路tree】【题解】【点分……树?】
id=2870看完就想到
点分治
了可是用传统的
点分治
合并两条子树的链的时候很蛋疼……于是我们换个方式找到重心后把子树分成两堆,统计过根且起始结束位置在两个不同的堆里的答案递归两堆子树这种思想很早就有了http
iamzky
·
2020-08-13 10:34
OI
[BJOI2017]树的难题【
点分治
+线段树】
题目链接很容易想到的是,我们可以对首先对每个点连出去的边按照边颜色进行排序,这样就可以保证一段相同的是会在一起出现的,然后我们可以进行
点分治
,再利用线段树维护深度对应的最大权,我们需要两棵线段树,一棵维护不同值
Andres_Lionel
·
2020-08-13 10:09
点分治
线段树
点分治
和点分树
写了一道题就觉得自己已经会动态
点分治
的我真是tooyoungtoosimple,sometimesnaive.现在至少不像去年抓破脑壳写个模板了。然鹅这并不影响我小bug一堆。这里数组越界
啊宸
·
2020-08-13 10:50
数据结构
【算法学习】
点分治
的两种写法与常见套路总结
概述
点分治
是一种基于树的重心,统计树上路径的优秀算法。将树上的路径分为经过树的重心和不经过树的重心两种,同时利用树的重心性质,使得递归深度不超过lognlogn次。
pengwill97
·
2020-08-13 10:53
算法学习
【BJOI2017】树的难题【
点分治
】【线段树】
数据范围:暴力过不了显然是个
点分治
对于分治中心考虑过中心的路径贡献的答案(以下的“子树”指根直接与分治中心相连的子树)把分治中心作为根,定义一棵子树的颜色为与根(即分治中心)相连的边的颜色显然可以算出两边的贡献
Lstdo
·
2020-08-13 10:33
洛谷P3714/loj2179/bzoj4860 树的难题
点分治
+单调队列
题目分析点分是个好东西。现在在点分的过程中,我们找到了一个点作为根,然后它有若干子树。显然子树连着根的那条边的颜色影响答案统计,异色子树(即子树根节点与根节点之间的边异色)和同色子树需要分开处理。把所有子树按照该颜色中最深子树的深度为第一关键字,该子树深度为第二关键字,从小到大排序。然后按照这种顺序进行处理。维护两个值v0(x)和v1(x),分别表示同色和异色子树中的路径里,可以与一条长度为x的路
litble
·
2020-08-13 10:27
分治
bzoj 4860 [BeiJing2017]树的难题
id=4860题解
点分治
设当前重心为v假设已经把所有边按照出发点第一关键字,颜色第二关键字排序对于当前的v我们顺次考虑他的出边设当前出边(v,nw)颜色col我们枚举nw的出边对于一条nw的出边而言,分为两种情况
aozhuan8489
·
2020-08-13 10:53
[bzoj4860]树的难题
题目大意
点分治
点剖。每颗子树按最上面那条边的颜色排序。顺序扫,同颜色的用一颗线段树,其他也用一颗线段树。每扫过一个颜色合并一下两颗线段树。这个方法比单调队列不知道低到哪里去了。
WerKeyTom_FTD
·
2020-08-13 10:11
点分治
线段树
单调队列
BZOJ4860 BJOI2017 树的难题
点分治
、线段树合并
看到路径长度$\in[L,R]$考虑
点分治
。
weixin_30636089
·
2020-08-13 10:47
[BJOI2017]树的难题
点分治
线段树
题面[BJOI2017]树的难题题解考虑
点分治
。对于每个点,将所有边按照颜色排序。那么只需要考虑如何合并2条链。有2种情况。
weixin_30919571
·
2020-08-13 10:47
[BJOI2017]树的难题
点分治
,线段树合并
[BJOI2017]树的难题LG传送门
点分治
+线段树合并。我不会写单调队列,所以就写了好写的线段树。考虑对于每一个分治中心,把出边按颜色排序,这样就能把颜色相同的子树放在一起处理。
weixin_30344795
·
2020-08-13 10:15
点分治
与点分树学习
关于树链分治的一些东西《分治算法在树的路径问题中的应用》例题给出一棵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
数据结构
BZOJ 4860: [BeiJing2017]树的难题
点分治
+线段树
相同的话还需要减掉重复部分,这就比较难办.但是我们发现,当以$x$为分治中心时,$x$每一个儿子为根的子树的延伸颜色都是相同的.所以我们可以将每一个点的所有儿子按照延伸颜色排序,然后维护两颗线段树:相同与不同.当我们在
点分治
时处理到下一个儿子
EM-LGH
·
2020-08-13 09:55
[BJOI2017]树的难题
考虑
点分治
,然后问题转换成求过根节点的路径的最大值,这种东西一般性就是搞一个线段树然后每一次合并一下两个子树然后查最大值即可其实我自己也不是很懂,这题确实很神仙#include#include#include
araw94333
·
2020-08-13 09:48
[JZOJ5077]树的难题
1≤m≤n≤2×105,1≤l≤r≤n,|ci|≤104题目分析
点分治
,对于
a_crazy_czy
·
2020-08-13 09:16
点分治
单调队列
线段树
纪中OJ
BJOI2017 树的难题【树的
点分治
】【线段树(修改/查询/合并)】
(下面附有code)题目描述输入格式样例输入8434-7961121132141251562371383输出格式样例输出11数据范围题解精简版:这种树上乱七八糟的题显然是要用树的
点分治
的( ̄▽ ̄),找到当前的根
czj LUCK
·
2020-08-13 09:38
算法
数据结构
【蒟蒻的
点分治
专题训练】----5道题题解
附题:poj1741,hdu4812,codeforces161D,bzoj3697,bzoj2152先来一波总结:好好做了这几道题之后,发现树上的
点分治
几乎可以说是模板题,每道题改变的地方都只有处理过当前子树根节点的路径
deritt
·
2020-08-12 10:58
oi之路
GCD Counting(树上
点分治
)
D.GCDCountingtimelimitpertest4.5secondsmemorylimitpertest256megabytesProblemDescriptionYouaregivenatreeconsistingofnvertices.Anumberiswrittenoneachvertex;thenumberonvertexiisequaltoai.Let’sdenotethefu
GoldenFingers
·
2020-08-11 15:59
数据结构-点分治
Codeforces 1101D - GCD Counting
传送门虽然说这题有简单的方法,可是这其实是个
点分治
裸题欸假设当前的分治到的重心为xxx,很显然,经过xxx的那些合法的链,肯定链中每个数都含有起码一个相同的a[x]a[x]a[x]的质因子,因为gcd∣
ymzqwq
·
2020-08-11 15:27
Codeforces
点分治
CF1101D GCD Counting
CF1101DGCDCounting又被trick了不用什么
点分治
直接树形dp即可开始的想法:f[x][j]x为根的子树gcd至少为j(j是x的一个约数)的最长链然后对y合并。
weixin_33781606
·
2020-08-11 14:58
ACM-自学之旅
分类知识清单数据结构链式前向星树状数组线段树线段树的区间合并基于ST表格的RMQ树链剖分树上差分图论最近公共祖先树的直径、树的重心与树的
点分治
树的最小支配集,最小点覆盖与最大独立集求无向连通图的割点数学鸽巢原理群和
bo o ya ka
·
2020-08-11 14:19
数据结构与算法
CF1101D GCD Counting
点分治
+质因数分解
$1$的长度.由于只要求$gcd$不为一,所以只要$gcd$是一个大于等于$2$的质数的倍数就可以了.而我们发现$2\times10^5$以内的数最多只会有$7$~$8$个本质不同的质因子,所以我们在
点分治
的时候暴力拆质因子并维护一些桶即可
weixin_30419799
·
2020-08-11 14:43
CF_1101_problem_D:GCD Counting(树形dp OR 树
点分治
)
题目大意:给出了一棵树,每棵树有一个权值,定义dist(x,y)为x到y的简单路径经过的结点的个数。定义gcd(x,y)为x到y的简单路径上所经过的所有点的点权的最大公因数。现在问满足gcd(x,y)大于1的条件下,dist(x,y)的最大值是多少。数据量和数据值均为2e5,因此每个数的素因子不超过7种。先谈树形dp:路径上gcd大于1表示存在一个素数可以除尽这条路径上所有的整数。可以对路径进行分
猝死在学ACM的路上
·
2020-08-11 13:50
树形DP
点分治
CF1101D GCD Counting(数学,树的直径)
我可能是数据结构学傻了,一眼
点分治
……然后复杂度又不对……正解:我们发现只要$\g
angzuo8655
·
2020-08-11 11:16
一篇自己都看不懂的
点分治
&点分树学习笔记
淀粉质
点分治
可真是个好东西PartA.
点分治
众所周知,树上分治算法有$3$种:
点分治
、边分治、链分治(最后一个似乎就是树链剖分),它们名字的不同是由于分治方式的不同的。
weixin_30263073
·
2020-08-10 22:42
POJ 1987 Distance Statistics 树上
点分治
算是入门题了,详见《分治算法在树的路径问题中的应用》(by漆子超)。#include#include#include#include#include#include#include#include#include#defineLLlonglong#defineINF0x3f3f3f3f#defineMod1000000007#defineSeed131#defineSeed237#defineEP
自在_飞花
·
2020-08-10 22:51
分治
洛谷 P4149 [IOI2011]Race
点分治
+dp
洛谷P4149[IOI2011]Race求一棵树上路径长度刚好等于k的两点间的最小边数.如果不存在输出-1.
点分治
不一定要容斥!!!!重要的事情要说三遍!
Fuko_Ibuki
·
2020-08-10 19:04
点分治
dp
省选模拟赛20200417 B、树 (
点分治
+ST表 || 线段树分治+虚树)
题解一看就不会写了个60分的暴力就走人最后两分钟想到一个假的正解:换根维护线段树20200418:从早上9:00写到10:30,发现是有问题的因为换根时的修改区间在dfs序上,是连续的但是查询的区间只是编号连续,在dfs序上不一定连续。。。所以就只有看题解了题解:哦,原来还有这种操作,对编号分块,对编号建线段树好难写啊看了一下std4KB读不下去了看了一下Master.Yi大佬的代码2KB就看他的
cqbzcsq
·
2020-08-09 18:32
数据结构
分治
c++
算法
分治
数据结构
树分治(
点分治
模板)poj-1741 Tree
首先讲解一下树分治,以下的内容转自:http://blog.sina.com.cn/s/blog_6d5aa19a0100o73m.html对于一棵有根树,树中满足要求的一个数对所对应的一条路径,必然是以下两种情况之一:1、经过根节点2、不经过根节点,也就是说在根节点的一棵子树中对于情况2,可以递归求解,下面主要来考虑情况1。设点i的深度为Depth[i],父亲为Parent[i]。若i为根,则B
u010660276
·
2020-08-09 12:26
树分治
2020杭电多校第六场 A Very Easy Graph Problem
点分治
(HDU 6832)
AVeryEasyGraphProblem不知道有没有人跟我一样
点分治
写的…题解根据题意,第iii条边长度为2i2^i2i,且21+22+⋅⋅⋅+2i−1=2i−1usingnamespacestd;typedeflonglongll
linbinwu123
·
2020-08-09 05:12
#
点分治
树和森林
lizbaka的周记
lizbaka的周记省选之前有好多事情要做啊……记录一下每周做过的一些题目和总结吧——2019.01.201.14~1.20图论周I*「POJ1741」Tree->题解
点分治
*「Luogu3806」
点分治
weixin_34343000
·
2020-08-09 00:07
2019西安邀请赛J (树上路径异或和为0计数问题)【
点分治
】
当
点分治
确定root后,需要求出以root为根的各节点的siz。然后按照路径两端点是否在同一颗子树上进行合并。
lixuwei2333
·
2020-08-08 19:36
树论
点分治
动态
点分治
:bzoj 3730,bzoj 1095
总结一下动态
点分治
的模板。。。对于一个树,把它点分的同时记录每个点的所有父亲(logn个)并记录点距其父亲的距离。
yfzcsc
·
2020-08-08 02:55
BZOJ4372烁烁的游戏——动态
点分治
+线段树(点分树套线段树)
题目描述背景:烁烁很喜欢爬树,这吓坏了树上的皮皮鼠。题意:给定一颗n个节点的树,边权均为1,初始树上没有皮皮鼠。烁烁他每次会跳到一个节点u,把周围与他距离不超过d的节点各吸引出w只皮皮鼠。皮皮鼠会被烁烁吸引,所以会一直待在节点上不动。烁烁很好奇,在当前时刻,节点u有多少个他的好朋友---皮皮鼠。大意:给一颗n个节点的树,边权均为1,初始点权均为0,m次操作:Qx:询问x的点权。Mxdw:将树上与节
weixin_34355559
·
2020-08-08 02:06
震波——动态
点分治
+线段树
题目【题目描述】在一片土地上有$N$个城市,通过$N-1$条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为$1$,其中第$i$个城市的价值为$value[i]$。不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发生变动。接下来你需要在线处理$M$次操作:-$0~x~k$表示发生了一次地震,震中城市为$x$,影响范围为$k$,所有与$x$距离不超过$k$的城市都将受到影
z-pan
·
2020-08-08 02:24
【BZOJ3730】—震波(动态
点分治
)
传送门珍爱生命,远离动态
点分治
显然对于每一个分支中心维护一个BitBitBit,统计深度为iii的所有点的valvalval之和每次暴力跳fafafa统计自己的答案减去对父亲的贡献主要在于如何维护一个BitBitBit
weixin_30375427
·
2020-08-08 02:17
[动态
点分治
] BZOJ3730: 震波
题意给定N个点的一棵边权都为1的树,每个点有点权。M次操作,两种类型1.单点点权修改。2.给出x和k,询问到x的距离不超过K的所有点权和。操作加密,强制在线。N,M#include#includeusingnamespacestd;constintmaxn=100005,maxe=200005;intn,m,w[maxn],last_print;intfir[maxn],nxt[maxe],son
Lynstery
·
2020-08-08 01:45
树分治
我的OI学习足迹
[bzoj3730][动态
点分治
][线段树]震波
Description在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i]。不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发生变动。接下来你需要在线处理M次操作:0xk表示发生了一次地震,震中城市为x,影响范围为k,所有与x距离不超过k的城市都将受到影响,该次地震造成的经济损失为所有受影响城市的
Rose_max
·
2020-08-08 01:11
bzoj
点分治
线段树
[JZOJ5058]采蘑菇
考虑使用
点分治
,先不考虑有多种颜色。假设我只想统计出现过某一种颜色的路径总数。
a_crazy_czy
·
2020-08-08 01:11
点分治
纪中OJ
ACM信息学竞赛算法总结
基础知识位运算递推与递归前缀与差分二分排序倍增贪心尺取法数据结构栈与队列:单调栈单调队列双端队列Hash:字符串Hash与Hash表字符串处理:KMP算法,--Rabin-Karp算法—最小表示法Tire(字典树)AC自动机二叉堆并查集树状数组线段树分块拓扑排序
点分治
离线分治算法二叉查找树与二叉平衡树可持久化数据结构搜索
正月看雪花
·
2020-08-05 01:23
算法
信息学最全知识点清单
表示较偏门知识文章目录信息学竞赛知识清单一、基础知识1、STL,参见百科STL总结2、常见技巧二、基础算法1、递归(输出方案)、枚举(优化)[]2、高精度3、分治[]二分答案[]排序算法[]cdq分治*、整体二分[]树分治(
点分治
三水木人
·
2020-08-05 00:55
总结文章
1758: [Wc2010]重建计划(TLE)
不就是先二分答案,然后
点分治
,然后单调队列,还得按子树深度从小到大吗。然后我就T了啊。不就是扫把图吗,我本地也很快啊。加数据的,你过来我和你说个事:我去年买了个表。这个题啊,亦可赛艇。
*ACoder*
·
2020-08-04 23:25
二分答案
#
点分治
单调队列
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他