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
--------线段树合并
Codechef EDGEST
线段树合并
题意给定相同点集上的两棵生成树T1和T2,节点编号为1∼N。对于T1中的每条边e1,你需要求在T2中有多少条边e2满足:T1−e1+e2(从T1中删去e1再加上e2构成的图)是一棵生成树;T2−e2+e1也是一棵生成树。2≤N≤2*10^5分析不难发现如果两条边可以互相替代,则必须要满足e2在T2中e1两端点的路径上,反过来也要满足。那么我们先把T2的每条边在T1上差分一下,就是在两端点处插入,然
SFN1036
·
2018-05-24 15:23
线段树
SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛* G题 危险路径
当然可以点剖什么的,也可以换根+
线段树合并
什么的,常数有点小炸。我的想法是用启发式并查集。mst要合并两个并查集时,设它们的根为x,ysiz[x]>siz[y],将把y的父亲设为x。
Cold_Chair
·
2018-04-16 19:39
信息学
启发式并查集
并查集
启发式算法
BZOJ5250: [2018多省省队联测]秘密袭击-树形DP
传送门题意:给一棵n个点的树,每个点的点权在1到W之间求所有连通块的权值第k大的和模64123k≤n≤1666,W≤1666Solution:正解貌似是
线段树合并
+FFT但是我并不会写QAQ所以说我们考虑暴力碾标算
Fizzmy
·
2018-04-10 11:27
树形dp
【codeforces666E】Forensic Examination 广义后缀自动机+树上倍增+
线段树合并
题目描述给出$S$串和$m$个$T_i$串,$q$次询问,每次询问给出$l$、$r$、$x$、$y$,求$S_{x...y}$在$T_l,T_{l+1},...,T_r$中的哪一个里出现次数最多,输出出现次数最多的串编号(如果有多个则输出编号最小的)以及相应出现次数。$|S|,q\le5\times10^5$,$\sum\limits_{i=1}^m|T_i|\le5\times10^4$。题解广
GXZlegend
·
2018-04-04 20:00
[BZOJ4919]大根堆 启发式合并+线段树/multiset
先合并儿子:fi,j=∑x∈sonifx,jfi,j=∑x∈sonifx,j在选上他自己:chkmax(fi,≥vi,fi,vi−1+1)chkmax(fi,≥vi,fi,vi−1+1)那么可以用
线段树合并
DOFYPXY
·
2018-03-28 21:50
dp
数据结构
线段树
STL
启发式合并
[牛客网#35D 树的距离]离散化+
线段树合并
[牛客网#35D树的距离]离散化+
线段树合并
分类:DataStructureSegMentTreeMerge1.题目链接[牛客网#35D树的距离]2.题意描述wyf非常喜欢树。
Xingw-Xiong
·
2017-11-29 17:11
ACM____数据结构
bzoj3307雨天的尾巴(
线段树合并
)
DescriptionN个点,形成一个树状结构。有M次发放,每次选择两个点x,y对于x到y的路径上(含x,y)每个点发一袋Z类型的物品。完成所有发放后,每个点存放最多的是哪种物品。Input第一行数字N,M接下来N-1行,每行两个数字a,b,表示a与b间有一条边再接下来M行,每行三个数字x,y,z.如题Output输出有N行每i行的数字表示第i个点存放最多的物品是哪一种,如果有多种物品的数量一样,
Hzoi_Anonymity
·
2017-10-29 21:35
线段树
树上差分
NOIP集训Week 3总结
本周已完成的内容:数据结构:LCA,树链剖分,LCT(略带),莫队,
线段树合并
Dp:普通dp,树形dp,区间dp,状压dp(未完),期望dp(未完),斜率优化,四边形优化每天的效率还不错,但是仍有较大提升空间
KGV093
·
2017-10-01 22:24
总结
bzoj 4530(DFS序+
线段树合并
)
传送门题解:对每个点建权值线段树(权值即点在DFS序列中的编号),合并的时候直接合并两个点根的线段树,并连一下并查集,查询的时候找到x,y所在树的根f,假设dep[x]>dep[y],那答案就是(size[f]-size[x])*size[x](这一点的解释尽快补上,不过好像不比较也能过,难道是数据水?)。P.S.在询问时要选深度更深的点的原因:如果dep[x]usingnamespacestd;
KGV093
·
2017-09-29 21:46
数据结构
HDU 6191 && 2017广西邀请赛:Query on A Tree(字典树启发式合并)
题意:有一棵n个节点的树,每个节点都有一个值,m次查询,每次两个数xy表示以x为根的子树中哪个节点权值异或y得出的结果最大,求最大结果离线和
线段树合并
一样,在搜索过程中将多个字典树并在一起每次查询遍历以当前子树的根为根的字典树
Jaihk662
·
2017-08-31 18:56
位运算
FJWC2017 Day3 T2 recollection (后缀自动机+
线段树合并
)
题目描述传送门题目大意:现在有一棵n个节点的树,点的编号是1到n,1号点是根节点,每条边上有一个字符(用不大于300的非负整数表示),且对于任意的一个点u,e:u→v(u=father[v])上的字符互不相同。定义r(u)为从节点u到根节点的路径上的字符组成的字符串。两个节点u,v的相似度f(u,v)定义如下:f(u,v)=Lcp(r(u),r(v))+Lcs(r(u),r(v))其中Lcp(a,
clover_hxy
·
2017-08-19 20:05
线段树
后缀自动机
BZOJ 4552 排序(二分 ||
线段树合并
)
题意:对一个1~n的全排列,进行m次局部排序(0,l,r)将区间[l,r]数字升序排列(1,l,r)将区间[l,r]数字降序排列仅一次询问,询问m次局部排序后第q位置上的数字1≤n,m,q≤1e5思路:这题有个神奇的做法,我们可以直接二分答案x,然后把大于等于x的都看作1,比x小的都看作0插入线段树中,然后执行m个询问,因为数组中要么是0,要么是1,所以区间排序就简单多了,只要求出区间1的个数,然
cillyb
·
2017-08-12 00:01
二分
线段树
BZOJ 4552 排序(二分 ||
线段树合并
)
题意:对一个1~n的全排列,进行m次局部排序(0,l,r)将区间[l,r]数字升序排列(1,l,r)将区间[l,r]数字降序排列仅一次询问,询问m次局部排序后第q位置上的数字1≤n,m,q≤1e5思路:这题有个神奇的做法,我们可以直接二分答案x,然后把大于等于x的都看作1,比x小的都看作0插入线段树中,然后执行m个询问,因为数组中要么是0,要么是1,所以区间排序就简单多了,只要求出区间1的个数,然
cillyb
·
2017-08-12 00:01
二分
线段树
BZOJ 4756 Promotion Counting(
线段树合并
|| dfs)
题意:给你一棵n个节点的树,根为1,问你每个节点,它的子树中有几个节点比它大。思路:有一个简单的方法是可以遍历一下这棵树,树状数组维护,对于每个点的答案为子树节点个数-(遍历它后比它小的数的个数-遍历它前比它小的数的个数)。遍历完它的子树节点后把它插入树状数组。还有一个方法是对于每个节点建立一颗权值线段树,然后自底向上合并,每次合并后就可以直接查找比它大的数的个数,因为此时的树中只有它子树的节点。
cillyb
·
2017-08-12 00:14
树
线段树
BZOJ 4756 Promotion Counting(
线段树合并
|| dfs)
题意:给你一棵n个节点的树,根为1,问你每个节点,它的子树中有几个节点比它大。思路:有一个简单的方法是可以遍历一下这棵树,树状数组维护,对于每个点的答案为子树节点个数-(遍历它后比它小的数的个数-遍历它前比它小的数的个数)。遍历完它的子树节点后把它插入树状数组。还有一个方法是对于每个节点建立一颗权值线段树,然后自底向上合并,每次合并后就可以直接查找比它大的数的个数,因为此时的树中只有它子树的节点。
cillyb
·
2017-08-12 00:14
树
线段树
BZOJ 2212 & POI 18 Tree Rotations(
线段树合并
)
题意:给定一棵2n-1个节点的二叉树,每个叶子上有1~n的数字,保证每个数字出现且仅出现一次允许任意次交换某两棵兄弟子树对交换完毕的树求先序遍历,形成1~n的一个排列求这个排列最小的逆序对个数1≤n≤2*1e5(1e6)思路:子树x内的逆序对个数为:x左子树内的逆序对个数+x右子树内的逆序对个数+跨越x左子树与右子树的逆序对数。可以发现左右子树内部的逆序对与是否交换左右子树无关,是否交换左右子树取
cillyb
·
2017-08-12 00:37
线段树
【UOJ261 BZOJ 】天天爱跑步(
线段树合并
)
算法:
线段树合并
思路:考虑一条路径(S,T)对节点u可能产生的贡献:1)当S在u的子树
Etta19
·
2017-07-21 19:52
线段树
BZOJ 2733 永无乡 [
线段树合并
]
2733:[HNOI2012]永无乡TimeLimit:10SecMemoryLimit:128MBSubmit:3624Solved:1937[Submit][Status][Discuss]Description永无乡包含n座岛,编号从1到n,每座岛都有自己的独一无二的重要度,按照重要度可以将这n座岛排名,名次用1到n来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛a
ACTerminate
·
2017-07-10 15:04
BZOJ
线段树
[JZSC2017] 【NOIP2017提高组模拟7.3】 总结
线段树合并
或者点分治?T3又是数学?看到GCD就先反演一波,然并卵然后一群人开始大声叫喊“这题做过啊”“这不是去年月亮中学的联考么”“这不是做过一眼题么,能不能不打啊”然后我开始方了蛤?
BAJim_H
·
2017-07-03 15:23
总结
总结
[BZOJ4919][Lydsy六月份月赛 .C][树上DP][启发式合并]大根堆
用f[i][j]表示第i个节点,最大的为j且满足条件的大根堆的大小现场写了一个很鬼畜的
线段树合并
DP数组……一直RE加上时间不够就弃疗了不过好像是有类似的做法,先挖个坑……题解很妙啊,考虑链上的情况就是求
LowestJN
·
2017-06-25 16:08
DP
启发式合并
bzoj 3307: 雨天的尾巴 (
线段树合并
+LCA)
题目描述传送门题目大意:N个点,形成一个树状结构。有M次发放,每次选择两个点x,y对于x到y的路径上(含x,y)每个点发一袋Z类型的物品。完成所有发放后,每个点存放最多的是哪种物品。题解如果我们修改了一条路径,那么在x,y处+1,lca(x,y),fa[lca(x,y)]处-1,那么对于每个点查询他的子树就能得到他的答案。其实就是树上差分。对于每个位置维护以颜色为下标的线段树(动态开点),每个位置
clover_hxy
·
2017-05-26 20:09
LCA
线段树
BZOJ3307: 雨天的尾巴
线段树合并
在链的两端x,y各打上1个z的加标记,在LCA(x,y)打上1个z的减标记,在fa(LCA(x,y))打上1个z的减标记,每个节点和所有孩子的
线段树合并
,查询时线段树上二分code:#include
L_0_Forever_LF
·
2017-04-26 19:29
BZOJ
线段树
[BZOJ4756][Usaco2017 Jan]Promotion Counting(可持久化线段树)
题目描述传送门题解主席树好久没打也是各种手残啊这题也是
线段树合并
的裸题过几天写一发!
Clove_unique
·
2017-03-30 21:27
题解
线段树
可持久化
bzoj 4756: [Usaco2017 Jan]Promotion Counting (
线段树合并
)
题解
线段树合并
的裸题。感觉
线段树合并
在处理子树的问题中蛮好用的耶。
clover_hxy
·
2017-03-26 18:07
线段树
[清华集训2016][UOJ266][BZOJ4730] Alice和Bob又在玩游戏 sg函数+字典树
合并的时候按照
线段树合并
的方法合并,可以证明复杂度是O(nlogn)的查询的时候向下
HbFS-
·
2017-03-19 21:54
[BZOJ3307][
线段树合并
]雨天的尾巴
看POPOQQQ大神的题解吧……http://blog.csdn.net/popoqqq/article/details/45674373之前觉得
线段树合并
没什么用,现在打脸了……#include#include
LowestJN
·
2017-03-03 19:20
线段树
线段树合并
|题目分类|BZOJ、Poj、Hdu题目分类
[树链剖分,线段树]BZOJ1036:树链剖分后线段树维护(树链剖分模板)[树状数组]BZOJ1452:开多个树状数组解决问题[数论]BZOJ1477:裸的扩展欧几里得算法[线段树]BZOJ1593:
线段树合并
模型
NotFound1
·
2017-02-07 15:58
算法讨论
[BZOJ2212][Poi2011]Tree Rotations(
线段树合并
)
分别对这两个子树建立权值线段树将这两个权值
线段树合并
合
Clove_unique
·
2017-01-29 21:58
题解
线段树
BZOJ2733
线段树合并
第一次写
线段树合并
一开始完全自己yy板子写得特别丑后来看到了别人的板子发现又简洁又好写//NeverSayNeveruntiltheveryend.
HbFS-
·
2016-07-24 20:56
bzoj 3702: 二叉树
用
线段树合并
时直接计算逆序对的方式可以搞到nlogn。
heheda_is_an_OIer
·
2016-05-11 15:00
【bzoj3702】二叉树 权值线段树
(分别对应不交换的逆序对和交换的逆序对)将左子树和右子树的权值
线段树合并
递归进行这个操作感觉复杂度很不靠谱,于是想证明一下复杂度最开始权值线段树共O(nlogn)个节点,最后共O(n)个节点每次合并两棵树的每个节点都要访问一遍
u012288458
·
2016-05-11 10:00
OI算法汇总[大纲]
基本数据结构1.数组2.链表,双向链表3.队列,单调队列,双端队列4.栈,单调栈1.2中级数据结构1.堆2.并查集与带权并查集3.hash表 自然溢出 双hash1.3高级数据结构1.树状数组2.线段树,
线段树合并
qq_33583069
·
2016-05-09 16:00
进化成弃坑大师
最近总是开一个坑,然后1~2天就弃了..说要版切COCI,然后写了10个题,剩下的就刷不动了写HEOI2016,写到最后发现有个NTT挡路..写HAOI2016,写到最后发现那个仙人掌上的
线段树合并
太难写了根本写不动
CreationAugust
·
2016-05-06 17:43
随便搞搞
进化成弃坑大师
最近总是开一个坑,然后1~2天就弃了..说要版切COCI,然后写了10个题,剩下的就刷不动了写HEOI2016,写到最后发现有个NTT挡路..写HAOI2016,写到最后发现那个仙人掌上的
线段树合并
太难写了根本写不动
CreationAugust
·
2016-05-06 17:00
[ONTAK2010]Highways
想学
线段树合并
找的一个题。。没想到是个傻逼题。这题题意好像有问题:额外的点对和查询的点对都不会是同一个点。设x的dfs序为dfn(x),x的子树中dfs序最大的节点的dfs序为dr(x)。
TA201314
·
2016-04-27 14:00
bit
扫描线
分块
[spoj11414] combat on a tree 解题报告
拿来学了下
线段树合并
。注意到当我们对线段树打反转标记,它节点的位置就改变了。那么我们
线段树合并
复杂度分析的那一套理论还适用么?
TA201314
·
2016-04-27 11:00
线段树
博弈论
[Poi2011]Tree Rotations 解题报告
拿这道题来学了一下
线段树合并
。主要是照着这个课件学的,但是他那一句整个过程的开销不会比向一棵空树顺序插入n个整数来的大我完全没有看明白。。自己想了很久,终于想明白了。
TA201314
·
2016-04-27 08:00
线段树
bzoj 2809: [Apio2012]dispatching
线段树合并
or可并堆or树上主席树我写的
线段树合并
,注意query递归到最后要returnsum/x,就是只剩一个数,但是个数太多。
heheda_is_an_OIer
·
2016-04-19 16:00
bzoj 3307: 雨天的尾巴
dfs+
线段树合并
,这个做法好像可以解决很多在序列上按照奇奇怪怪方式扫描并维护奇奇怪怪的东西,然后搬到树上的问题。如果不是用线段树的维护,也可以启发式合并这么搞。
heheda_is_an_OIer
·
2016-04-13 16:00
CH Round #65 - MFOI杯水题欢乐赛 day2 树形DP+SG函数+
线段树合并
+DP
题目太长不粘贴了,链接在这:CHRound#65-MFOI杯水题欢乐赛day2题目链接->密码:exdb题解T1算叶子之间的距离算成深度相加忘了减去LCA了,我傻XT2不会,弃题,没学过SG函数T3dfs10分,dp不会,我傻X总结:10分滚粗,人弱就不该作死T1题意:给你两棵树,从a树中选两个不同叶子,b树中选两个不同的叶子,连接起来组成一个环,问所有不同方案这种环的大小总和是多少,边权为1。若
LOI_DQS
·
2016-03-23 10:00
dp
BZOJ 2733 & splay的合并
%%%hzw的线段树...发现其实
线段树合并
更简单更快...被spla
YCuangWhen
·
2016-03-21 08:00
ACM常用算法汇总
基本数据结构1.数组2.链表,双向链表3.队列,单调队列,双端队列4.栈,单调栈1.2中级数据结构1.堆2.并查集与带权并查集3.hash表 自然溢出 双hash1.3高级数据结构1.树状数组2.线段树,
线段树合并
qq_33665647
·
2016-03-20 18:00
OI省选算法汇总
基本数据结构1.数组2.链表,双向链表3.队列,单调队列,双端队列4.栈,单调栈1.2中级数据结构1.堆2.并查集与带权并查集3.hash表 自然溢出 双hash1.3高级数据结构1.树状数组2.线段树,
线段树合并
qq_33583069
·
2016-03-15 15:00
省选必知
基本数据结构1.数组2.链表,双向链表3.队列,单调队列,双端队列4.栈,单调栈1.2中级数据结构1.堆2.并查集与带权并查集3.hash表 自然溢出 双hash1.3高级数据结构1.树状数组2.线段树,
线段树合并
时间剑士
·
2016-03-14 20:00
bzoj2733 永无乡
线段树合并
这道题是一道经典的平衡树+启发式合并吧。那么考虑用可持久化线段树来写。 对每一个节点保存一棵线段树表示所在块的编号的集合(因此可以一个块值保存一棵树),然后合并的时候就地柜合并左子节点和右子节点,然后更新节点的值即可。显然这样和启发式合并时等价的。因此为O(Nlog^2N),只是空间大了一点为O(NlogN),平衡树O(N)。AC代码如下:#include #include #inc
lych_cys
·
2016-03-10 21:00
线段树
启发式合并
法法塔的奖励
水你可以搞dfs序你可以搞Treap的启发式合并你可以搞
线段树合并
#include #include #definefo(i,a,b)for(i=a;imid)returnquery(right[x],
WerKeyTom_FTD
·
2016-02-27 16:00
[BZOJ3999] [TJOI2015]旅游
id=3999题目大意给定一棵树,树上有权值,要求支持查询树上两点a—>b(有方向)间路径上max(xj−xi)且j到a的距离比i大以及路径整体+c题解树链剖分+
线段树合并
注意细节!!
slongle_amazing
·
2016-02-22 10:00
Hotel(
线段树合并
)
HotelTimeLimit: 3000MS MemoryLimit: 65536KTotalSubmissions: 14958 Accepted: 6450DescriptionThecowsarejourneyingnorthtoThunderBayinCanadatogainculturalenrichmentandenjoyavacationonthesunnyshoresofLakeS
handsomecui
·
2016-02-19 22:00
BZOJ 3307: 雨天的尾巴( LCA +
线段树合并
)
路径(x,y)+z:u处+z,v处+z,lca(u,v)处-z,fa(lca)处-z,然后dfs一遍,用
线段树合并
.O(MlogM+MlogN).复杂度看起来不高,但是跑起来很慢.另一种做法是先树链剖分
JSZX11556
·
2016-02-17 12:00
【线段树区间合并】POJ3667-Hotel
【思路】经典的
线段树合并
,代码依旧用的是神犇的线段树模板。详见注释。【错误点】延迟标记的时候,忘记把cover清为-1了,导致RE!
GufuVelvirki
·
2016-01-31 09:00
上一页
1
2
3
4
5
6
下一页
按字母分类:
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
其他