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
权值线段树
树状数组—求第k小的数—离散化
因为它建的是
权值线段树
,所以如果权值太大,它就无法正常运作。有一种方法可以解决零散的大数,那就是离散化。本篇文章就来介绍一下用离散化优化其空间的树状数组。
逐梦起航-带梦飞翔
·
2018-04-21 13:09
树状数组
基础数据的超进化
bzoj4889 [Tjoi2017]不勤劳的图书管理员(线段树套
权值线段树
)
我写的线段树套
权值线段树
,卡空间,需要写垃圾回收qaq复杂度O(nlog2n)#include#include#include#includeusingnamespacestd;#definelllonglong
Icefox_zhx
·
2018-04-17 20:13
bzoj
树套树
送花(
权值线段树
)
题目传送门题解写这道题是为了写
权值线段树
看到c的范围比较小,按照C为权值建立线段树,c的值就是线段树的叶子位置;类似于平衡树的做法,查询最左或最有的节点删除代码#include#include#include
A_Comme_Amour
·
2018-04-01 06:38
线段树
动态开点线段树+
权值线段树
概述
一开始觉得什么动态开点啥的都特别叼。实际上并没有什么,就是在空间不够的情况下,把不需要的节点变成虚点就好了,具体什么意思,我们来看一道题:P1908逆序对题目描述猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中
lvmaooi
·
2018-03-28 16:56
数据结构
[2018雅礼集训1-18]日记 线段树
从左到右扫,考虑用一棵
权值线段树
维护每个权值的贡献,扫到i时,把≥ai的权值的贡献全部乘上k,再加上ai对f
DOFYPXY
·
2018-01-20 19:48
数据结构
线段树
[2018雅礼集训1-18]日记 线段树
从左到右扫,考虑用一棵
权值线段树
维护每个权值的贡献,扫到i时,把≥ai的权值的贡献全部乘上k,再加上ai对f
DOFYPXY
·
2018-01-20 19:48
数据结构
线段树
[BZOJ3110][ZJOI2013]K大数查询 树套树/CDQ分治
树套树做法:注意到权值很小,于是外层开
权值线段树
,内层是一个动态开点的区间线段树,维护权值在[L,R],位置在[l,r]的数一共有多少个。修改就是内层的一个线段树上区间加一。
DOFYPXY
·
2017-12-03 17:56
数据结构
CDQ分治
树状数组
树套树
[模板]线段树
codevs49271、注意代码是左闭右闭的线段树,mid在左区间内2、打
权值线段树
时注意线段树右端点大于最大值#include#include#include#include#defineL(w)w>
LOI_pingxing
·
2017-11-09 11:26
模版/模型
====数据结构====
线段树
[NOIP模拟] 序列操作
About: 2017.11.06T2Solution: 好气,我这道题写的
权值线段树
,结果维护的时候搞忘清零了,只有20分,加上清零就A了,当然我是指的评测机上AC,在OJ上要T一些点,有点小气
Anonymous_jacklovecj
·
2017-11-06 18:44
NOIP模拟
二分
线段树
平衡树
[BZOJ3932][CQOI2015]任务查询系统 主席树
把一个任务在Si加入,Ei+1删除,变成询问单点前K小,建可持久化
权值线段树
即可。错点:并不用相同的离散化成一个值,直接排序分1,2,3…即可,要不然很多相同的数询问就会挂。
DOFYPXY
·
2017-10-19 22:34
主席树
[线段树 哈希] Codeforces452F. Permutation
那么我们从左往右扫这个数列,用
权值线段树
记录哪些数出现过,那么就是判断区间[ai−k,ai]和[ai,ai+k]是否对称。
LowestJN
·
2017-10-06 18:02
线段树
哈希
[线段树 哈希] Codeforces452F. Permutation
那么我们从左往右扫这个数列,用
权值线段树
记录哪些数出现过,那么就是判断区间[ai−k,ai]和[ai,ai+k]是否对称。
LowestJN
·
2017-10-06 18:02
线段树
哈希
bzoj 4530(DFS序+线段树合并)
传送门题解:对每个点建
权值线段树
(权值即点在DFS序列中的编号),合并的时候直接合并两个点根的线段树,并连一下并查集,查询的时候找到x,y所在树的根f,假设dep[x]>dep[y],那答案就是(size
KGV093
·
2017-09-29 21:46
数据结构
BZOJ 4756 Promotion Counting(线段树合并 || dfs)
还有一个方法是对于每个节点建立一颗
权值线段树
,然后自底向上合并,每次合并后就可以直接查找比它大的数的个数,因为此时的树中只有它子树的节点。
cillyb
·
2017-08-12 00:14
树
线段树
BZOJ 4756 Promotion Counting(线段树合并 || dfs)
还有一个方法是对于每个节点建立一颗
权值线段树
,然后自底向上合并,每次合并后就可以直接查找比它大的数的个数,因为此时的树中只有它子树的节点。
cillyb
·
2017-08-12 00:14
树
线段树
hdu 4918 Query on the subtree (动态点分治+动态开点+线段树)
首先建立重心树,对于每个点维护两棵
权值线段树
,一棵表示u(作为重心)的子树中到u距离为x的点的权值和,一棵表示到u的父重心距离为x的点的权值和。
clover_hxy
·
2017-04-20 21:25
线段树
点分治
bzoj 4358: permu (莫队+栈||KD-tree||莫队+线段树)
题解1:莫队+线段树用
权值线段树
维护区间的连续最大长度,左端连续最长,右端连续最长。应该是比较好想,好写,好调的做法。
clover_hxy
·
2017-03-31 19:03
线段树
莫队
KD-tree
bzoj 2141: 排队 (树状数组套线段树)
我们可以用树状数组套线段树维护一下,外层表示位置在树状数组中该点的控制区间,线段树是
权值线段树
。然后每次交换完了计算一下就可以了。
clover_hxy
·
2017-03-30 19:58
树套树
【51nod1175】【区间中的第k大的数】【可持久化线段树】
解题思路从左到右加点建可持久化线段树,维护前缀
权值线段树
,询问时利用右减左得出当前区间的
权值线段树
,按size大小判断往哪个方向走,即可得出答案。
inklutcuah
·
2017-02-28 22:59
jzoj
数据结构
【spoj】【COT - Count on a tree】【可持久化线段树】
解题思路自上到下建可持久化线段树,维护当前点到根的信息,使用
权值线段树
记录size,查询的时候两端的值减去lca和lca的父亲的值即当前路径的
权值线段树
,即可求解。
inklutcuah
·
2017-02-16 22:29
数据结构
spoj
【poj2104】不带修改的区间第k大 主席树
首先我们先明确一下
权值线段树
的概念。平常我们用的线段树都是区间线段树,而
权值线段树
和平衡树中树的结点意义是类似的。
权值线段树
中(下文所说线段树均值
权值线段树
),每个结点记录的信息是在[l,r]区间内
chty_syq
·
2017-02-15 15:15
poj
主席树
[BZOJ2212][Poi2011]Tree Rotations(线段树合并)
分别对这两个子树建立
权值线段树
将这两个
权值线段树
合并合
Clove_unique
·
2017-01-29 21:58
题解
线段树
[BZOJ2223][Coci 2009]PATULJCI(整体二分+bit)
题目描述传送门题解以前好像做过一样的题,可持久化
权值线段树
裸题对吧…整体二分的话也不难想首先需要找单调性,乍一看是没有单调性的不过,如果当前二分的答案为mid,这个区间里所有小于等于mid的数都不够的话
Clove_unique
·
2017-01-10 11:29
题解
bit
cdq分治/整体二分
[BZOJ3932][CQOI2015]任务查询系统(主席树||树状数组套主席树)
我们还可以这样考虑,首先把所有的点读进来,然后按照时间排序,建主席树的时候按照时间轴建
权值线段树
,这样就保证了每次查询的时候当前时间点前的都加了,后的都没加,这样就省去了树状数组的
Clove_unique
·
2017-01-06 09:57
题解
线段树
省选
可持久化
树套树
BZOJ 3932: [CQOI2015]任务查询系统
一道可持久化线段树裸题,搞出来每一个位置的
权值线段树
然后正常查找就行了。
LZJ209--AFO
·
2017-01-05 19:25
BZOJ
可持久化数据结构
【jzoj4920】【降雷皇】【动态规划】【二分答案】【数据结构】
每个长度再用
权值线段树
维护每个末尾的方案数,转移方案数时求一下比它小的末尾方案数之和。
inklutcuah
·
2016-12-10 15:35
动态规划
jzoj
二分
三分
数据结构
[BZOJ3832][Poi2014]Rally(拓扑序+线段树)
设f[i],g[i]分别表示到点i的最长路径和从点i开始的最长路径.通过两遍拓扑排序就可以求出这两个数组.对于一条边(u,v)它可以产生的最长路径就是f[u]+e[i].v+g[v];我们用
权值线段树
维护当前所有合法边产生的最长路径的最大值
Clove_unique
·
2016-08-02 23:38
题解
线段树
拓扑序
[BZOJ3832][Poi2014]Rally(拓扑序+线段树)
设f[i],g[i]分别表示到点i的最长路径和从点i开始的最长路径.通过两遍拓扑排序就可以求出这两个数组.对于一条边(u,v)它可以产生的最长路径就是f[u]+e[i].v+g[v];我们用
权值线段树
维护当前所有合法边产生的最长路径的最大值
Clove_unique
·
2016-08-02 23:38
题解
线段树
拓扑序
[BZOJ2809][Apio2012]dispatching(枚举&dfs序+主席树||可并堆||splay+启发式合并)
注意建的是
权值线段树
。2°可并堆3°splay+启发式合并代码主席树#include #include #include #include usingnamespacestd; #defin
Clove_unique
·
2016-05-13 20:00
枚举
bzoj
apio
dfs序
主席树
[BZOJ2588]Count on a tree(可持久化
权值线段树
|主席树)
题目描述传送门题解在树上建维护当前节点到根的路径的
权值线段树
,然后查询的时候为sum[a]+sum[b]-sum[lca(a,b)]-sum[father[lca(a,b)]]。
Clove_unique
·
2016-05-13 20:41
题解
可持久化
[BZOJ2588]Count on a tree(可持久化
权值线段树
|主席树)
题目描述传送门题解在树上建维护当前节点到根的路径的
权值线段树
,然后查询的时候为sum[a]+sum[b]-sum[lca(a,b)]-sum[father[lca(a,b)]]。
Clove_unique
·
2016-05-13 20:00
bzoj
主席树
JZOJ 3547【清华集训2014】mex
在线可以用可持久化
权值线段树
,第i棵树记录a[1~i]各个值出现的右端点。然后根据线段树的特性查找下去即可。离线将询问区间按右端点排序。然后直接上
权值线段树
,方法如上述在线做法。
lyd_7_29
·
2016-05-13 20:00
权值线段树
可持久化线段树
离线处理
BZOJ2702 二叉树
对于每一个节点,保证这个子树代表的区间里逆序对数最少,即能保证答案最小,因为两颗互不包含的子树内部的顺序与一颗子树对另一颗子树的贡献无关对每个叶子节点建一个
权值线段树
,对每个非叶子节点合并他的两个儿子节点的线段树
neither_nor
·
2016-05-12 16:00
【bzoj3702】二叉树
权值线段树
神奇的解法对于每个节点,建出
权值线段树
每次查询右子树的
权值线段树
和左子树的
权值线段树
,左子树中比右子树小的有多少?右子树比左子树小的有多少?
u012288458
·
2016-05-11 10:00
BZOJ3110 JZOI2013 K大数查询 线段树套线段树
权值线段树
套区间线段树外层的
权值线段树
中每个节点如果维护[L,R]这个区间,那么该节点所对应的线段树维护的就是[L,R]这些数在每个区间里出现了几次,也就是说如果外层线段树的某个节点维护[L,R],其所对应的内层线段树中某个节点
WDZRMPCBIT
·
2016-05-10 23:00
【BZOJ3110】【codevs1616】K大数查询,
权值线段树
套普通线段树
Time:2016.05.09Author:xiaoyimi转载注明出处谢谢传送门1传送门2思路:之前没怎么接触过
权值线段树
(非主席树),这次就当学习了一下吧。
xym_CSDN
·
2016-05-09 13:00
[bzoj3065]带插入区间K小值
树套树开一颗
权值线段树
。对于区间[l,r]对应的结点上保存一颗spaly,spaly中的结点权值均在[l,r],按照位置从小到大。要维护一个结点的位置号。
WerKeyTom_FTD
·
2016-05-06 22:00
【BZOJ2653】middle,主席树(非
权值线段树
)维护序列和信息+二分答案
这要求我们不能像之前那样建立
权值线段树
的主席树(区间即为权值)了,而是以权值为下标,维护区间[1,n]的信息,可能有点拗口,这里就理解是我们平
xym_CSDN
·
2016-05-06 22:00
[线段树 中位数] BZOJ 4071 [Apio2015]巴邻旁之桥
在
权值线段树
上二分求中位数#include #include #include usingnamespacestd; t
u014609452
·
2016-05-04 21:00
[BZOJ3524][Poi2014]Couriers(主席树)
题目描述传送门题解建n棵
权值线段树
,分别表示区间[1,1][1,2][1,3]……[1,n],查询的时候类似前缀和相减即可。类似主席树的思想线段树动态开点。
Clove_unique
·
2016-05-02 17:14
题解
可持久化
[BZOJ3524][Poi2014]Couriers(主席树)
题目描述传送门题解建n棵
权值线段树
,分别表示区间[1,1][1,2][1,3]……[1,n],查询的时候类似前缀和相减即可。类似主席树的思想线段树动态开点。
Clove_unique
·
2016-05-02 17:00
poi
主席树
bzoj
[BZOJ3110][Zjoi2013]K大数查询(主席数套线段树 )
题目描述传送门题解外层
权值线段树
,
权值线段树
的每一个位置都是一棵线段树,线段树用动态开点。注意pushdown或者查询的时候还有可能要继续开点。
Clove_unique
·
2016-04-28 09:00
线段树
bzoj
主席树
bzoj2653: middle
我们把每个小于它的赋成-1,大于等于赋为1查询左端点在[a,b]右端点在[c,d]的区间的最大子段和若小于0,则偏大,大于等于0,偏小或者正好我们建立n棵
权值线段树
,从小到大把该数
thy_asdf
·
2016-04-26 10:00
bzoj 3307: 雨天的尾巴
卡常数+卡内存,如果离散化了应该能好很多,但是我犯逗没有这么做首先如果是序列上在一段内加入一个数,那么就是在位置l+1,在位置r-1,然后用
权值线段树
维护最大值就行。那放在树上呢?
heheda_is_an_OIer
·
2016-04-13 16:00
【bzoj3110】[Zjoi2013]K大数查询
权值线段树
套区间线段树
权值线段树
套区间线段树外层线段树按照完全二叉树的建法全部建出内层线段树动态开点外层的每个节点上都建一棵区间线段树,维护权值在[l,r]中每个区间出现的个数每次修改对应外层线段树上的O(logn)个节点,
u012288458
·
2016-04-13 10:00
BZOJ3932 CQOI2015 任务查询系统-可持久化线段树-可持久化平衡树
BZOJ3932CQOI2015任务查询系统可持久化线段树每个时间点建立一棵
权值线段树
,保存数的个数与数的和。
Elemmir
·
2016-04-10 12:45
可持久化线段树
可持久化平衡树
BZOJ3932 CQOI2015 任务查询系统-可持久化线段树
BZOJ3932CQOI2015任务查询系统可持久化线段树每个时间点建立一棵
权值线段树
,保存数的个数与数的和。
Elemmir
·
2016-04-10 12:00
【bzoj2124】等差子序列
权值线段树
维护hash
Description给一个1到N的排列{Ai},询问是否存在1#include#include#includeusingnamespacestd;typedeflonglongLL;constintSZ=10010;constintmod=1000000007;structsegment{intl,r;inth[2];}tree[SZ>1;build(p>1;if(x>1;if(rmid)ret
DQSSS
·
2016-04-06 19:29
线段树
===数据结构===
哈希
【bzoj2124】等差子序列
权值线段树
维护hash
Description给一个1到N的排列{Ai},询问是否存在1 #include #include #include usingnamespacestd; typedeflonglongLL; constintSZ=10010; constintmod=1000000007; structsegment{ intl,r; inth[2]; }tree[SZ>1; build(p>1; if(
LOI_DQS
·
2016-04-06 19:00
[莫队算法 线段树 斐波那契 暴力] CF 633H Fibonacci-ish II
区间查询离线用莫队算法开棵
权值线段树
,然后用斐波那契的性质updateF(n+m)=F(n+1)*F(m)+F(n)*F(m-1);#inclu
u014609452
·
2016-04-05 19:00
上一页
1
2
3
4
5
6
7
下一页
按字母分类:
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
其他