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
权值线段树
主席树【
权值线段树
】(转)
注:本文转自WCR神仙(应WCR本人要求)的博客,传送门:https://blog.csdn.net/g21wcr/article/details/82970228一、
权值线段树
。
Michael_GLF
·
2020-09-12 06:31
————数据结构————
主席树
权值线段树
、主席树学习
传送门:卿学姐的B站视频知乎-“主席树是如何求区间k大的”首先,学习主席树要点的前置技能是
权值线段树
(卿学姐说的是线段树,个人认为不太确切)。
Stupid_Turtle
·
2020-09-12 05:49
数据结构-线段树
主席树
权值线段树
poj2104
hdu2665
Codeforces 813E Army Creation 主席树(在线,求[l,r]内比x大的数的个数)
点击打开链接题意:n个数a[i],q次询问,n,a[i],qr的数都能可以被选上,转化为求区间[l,r]内有多少个数>=r题目要求在线所以套用主席树建立
权值线段树
,前缀i内,第[l,r]大的数有多少个,
Masamiiiii
·
2020-09-12 05:05
CODEFORCES_
Data
Structure
浅谈AC自动机
Trie这里的Trie可不是什么
权值线段树
就是常
Aaronliu17008
·
2020-09-12 05:17
洛谷 P3605 [USACO17JAN]Promotion Counting晋升者计数——树状数组,
权值线段树
这个题目n^2的算法同样好想,usaco的测试数太给力啦,暴力竟然给70分。这个题目实际和上个题目类似,实际是求树上的逆序,所以将dfs序与树状数组结合起来。先将数据离散化。先做一次求值,搜索后再做一次求值,二者的差值就是这颗子树上的逆序。#include#include#includeusingnamespacestd;constintmaxn=1e5+10;intn,m,b[maxn],hea
lengxuenong
·
2020-09-12 04:38
数据结构
树状数组
线段树
Two Types of Spells——在线与离线两种做法——线段树、动态开点
权值线段树
、时间分治
题面链接大致题意有两种法术,法术类型为000的法术能造成伤害,法术类型为111的法术不仅能造成伤害,还能使下一次法术的伤害翻倍。现在动态的获得/删除法术,请问对于每一次操作之后,你能造成的最大伤害是多少分析题意分析对于一个动态的数列,其中有两种值,紧贴着BBB类型值之后的值翻倍,求问每个时刻整个数列的最大值。考虑最优的情况,让每一个BBB类型的值之后的值是整个序列中最大的那kkk个值,即可。但是无
NaruseShiroha
·
2020-09-11 02:15
ACM
#
数据结构
可持久化线段树(主席树)讲解
在讲可持久化线段树之前先说一种别样的线段树——
权值线段树
。我们知道一般的线段树每个叶子节点代表的是在原序列中对应下标的那个数,存储的也是那个数的大小,而每个非叶子节点维护的区间也是原序列
weixin_34268579
·
2020-09-10 19:41
array
array
权值线段树
查询剪枝疯狂RE#includeusingnamespacestd;#defineintlonglong#definemaxn100000+500#defineinfn+1intL[
asmallfish1985
·
2020-08-25 16:37
数据结构与算法
动态开点线段树——节约资源,你值得拥有
例如我们要建立一个
权值线段树
weixin_33858485
·
2020-08-25 05:37
洛谷 P2633 Count on a tree 主席树、lca、前缀
数组中求区间第k小的方法是把数组的每个前缀建个
权值线段树
,然后要查询l~r区间的值,就用r的
权值线段树
中的数量减去l-1中的就好了。也就是T®-T(l-1)现在是在树里面。
李wa
·
2020-08-24 23:43
做题笔记
树套树
ZJOI2013K大数
权值线段树
+区间线段树对
权值线段树
每一个节点开一个区间线段树,动态开点。
micaudience
·
2020-08-24 22:39
数据结构
CF EducationalRound93 E.Two Types of Spells(
权值线段树
+堆维护最值)
思路设加倍魔法数量为k,
权值线段树
每次查询前k大的伤害和sumk(加倍多出来的伤害),mutiset维护魔法1和魔法2的最值,如果魔法1的最小值比魔法0的最大值大或不存在魔法0,sumk就要改变,因为至多加倍
lll_564
·
2020-08-24 11:50
线段树
堆
cf1181D Irrigation[思维+
权值线段树
求第k小]
传送门题意:给一个长为n的数组,q次询问(n,qusingnamespacestd;typedeflonglongll;#definedebug(x)cout>1;build((rt>1;if(mid>=pos)update((rt>1;if(no[rt=pos)returnquery(rt<<1,l,mid,pos);elsereturnquery((rt<<1)|1,mid+1,r,pos-n
MekakuCityActors
·
2020-08-23 00:46
权值线段树
hdu5592(
权值线段树
)
思路:从最后一个值开始考虑,rev[i]-rev[i-1]表示前面比它大的数的个数,我们就可以得出当前位置的数字在1-n中的次序,然后进行
权值线段树
的操作~~~ac代码#include#include#
dizhang6486
·
2020-08-20 23:53
浅谈
权值线段树
我们线段树是以标号为关键字的线段树,顾名思义,
权值线段树
就是以权值为关键字的一棵线段树。
Chandery
·
2020-08-19 09:50
线段树
专题
专题学习成长
树状数组—求第k小的数—入门详解
大家有没有听说过
权值线段树
?
权值线段树
就是记录同数值的数的个数的线段树。例如有3,5
逐梦起航-带梦飞翔
·
2020-08-19 07:11
基础数据的超进化
并查集
树状数组
[CF1179C]Serge and Dining Room
于是,我们可以通过
权值线段树
维护选手的能力与比赛的难度,修改就单点修改就可以了。查询就找到第一个为被选择的点输出即可。时间复杂度。
Tan_tan_tann
·
2020-08-19 06:03
#
线段树
------贪心------
TeaTree
权值线段树
合并 暴力
新学到的
权值线段树
和它的合并,数组版的动态开点,以及如何估算线段树数组要开多大敲开心~应该还要学怎么分裂。。。
zz_ylolita
·
2020-08-18 10:45
数据结构
线段树
权值线段树
启发式合并
ACM-数据结构完全总结(知识点+模板)
5.1链式前向星5.2舞蹈链(dancinglinks)堆6.1映射二叉堆集合映射ST表并查集*10.1带权并查集*10.2种类并查集*10.3可持久化并查集树状数组线段树12.1ZKW线段树*12.2
权值线段树
Ogmx
·
2020-08-18 09:08
ACM常用模板
算法完全解析
codeforces 1070(差分||
权值线段树
)
公司在1~n天内如果能租到k件及以上,选择最小价格的k件,否则全部租下,问最后总的价格思路:由于选最小价值的k件物品,考虑用
权值线段树
来
- Passerby ゛
·
2020-08-18 09:07
线段树
Cloud Computing CodeForces - 1070C(
权值线段树
)
BuberisaBerlandtechnologycompanythatspecializesinwasteofinvestor’smoney.RecentlyBuberdecidedtotransferitsinfrastructuretoacloud.ThecompanydecidedtorentCPUcoresinthecloudfornconsecutivedays,whicharenum
starlet_kiss
·
2020-08-18 09:08
SPOJ COT Count on a tree 树上主席树&链上点权第k大
思路:树上主席树,对于树上每一个节点建一个
权值线段树
,利用lca求出u-->lca-->v这条链,对于这几颗线段树root[u],root[v],root[lca],root[f[lca][0]],利用容斥计算出这条链上的
权值线段树
samscream
·
2020-08-18 09:16
主席树
可持久化数据结构
权值线段树
+ 主席树(区间第K大或子区间某原素出现次数)
首先先上一个主席树求区间第K小的板子#include#include#include#include#definemid(l+r)/2usingnamespacestd;constintN=1e6+4;intL[N=r)returnl;intx=sum[L[v]]-sum[L[u]];if(x>=k)returnquery(L[u],L[v],l,mid,k);elsereturnquery(R[
xufour
·
2020-08-18 09:54
数据结构
2018-2019 ICPC, NEERC, CodeForces 1070C Cloud Computing(
权值线段树
)
题目:有n天,每天需要k个cpu。现在有m个供应商,第i个供应商可在[li,ri]天之间,每天提供ci个cpu,每个cpu价格为pi。如果某一天的cpu无论如何也凑不够,那就把仅有的全用上。问n天的最小花费。分析:最开始的想法是,把供应商按价格排序,然后依次取供应商去提供一个时间段的cpu。在线段树上想办法把这个时间段做一个区间减法。但发现其实在线段树上很难操作,很难知道供应商提供的区间哪天需要哪
nbl97
·
2020-08-18 08:47
线段树
【LCA+主席树】SPOJ - COT - Count on a tree
本题是建立在树形结构上,所以应当想办法在树上利用前缀和求出范围的
权值线段树
。很容易想到跟lca有关。
Elliott__
·
2020-08-18 08:14
数据结构
图论
HDU 5029 树链剖分+
权值线段树
题目链接题意:给定一颗n个结点的树,进行m次染色操作,对于每一次染色操作是选择树上的一条路径,将路径上所有节点都染上第zzz种颜色。输出m次操作以后,每一个节点上染色次数最多的颜色。1<=n,m,z<=1e51<=n,m,z<=1e51vec[n+1];forxinAll_Segment:vec[x.L].push_back(x.k);vec[x.R].push_back(
新熊君
·
2020-08-18 08:25
ACM算法题目和总结
HDU 5029(树链剖分 + 线段树 好题)
看了大牛的博客才想到建一棵类似于
权值线段树
一个蒟蒻
·
2020-08-18 07:40
【
权值线段树
】离散化介绍 (+利用 线段树 求逆序对)
先介绍一下离散化桶排大家应该知道,就是开一个数组(下标为数值,记录了该数值的出现次数)然后遍历过去如果出现次数不为零,那就输出这些数字,理论时间复杂度可以达到O(N)但是由于内存限制,不能开很大的数组。然而如果某个数列中的数字不要求大小确定,只要求这些数字有相对的大小就够了的话,离散化就有了用武之地举个例子:数列38752000000000000000我们发现有几个数之间差距很大,但是我们用不到数
zheng_lw
·
2020-08-18 07:08
线段树
洛谷P4556 雨天的尾巴 树上差分+
权值线段树
题目链接https://www.luogu.org/problem/P4556分析对于树上链的操作,可以用树上差分来做;由于粮食有种类,树上每个节点建一棵
权值线段树
来记录答案;树上差分后要合并,用线段树合并来实现
Brute Force Kevin
·
2020-08-18 06:40
数据结构
《算法竞赛进阶指南》
CF 187D BRT Contract
大概就是我们逆序求一下每一个点从0时刻开始走到终点需要用的时间f我们需要找到它遇到的第一个红灯这个就是模意义下的一段区间最小值(把l[i]看做下标i作为权值)这个可以通过动态开点线段树实现or离散化+
权值线段树
对于每次询问一样的操作找到它遇到的第一个红灯然后
weixin_33743703
·
2020-08-18 04:40
杭电多校第三场 1007 Find the answer(
权值线段树
)
FindtheanswerTimeLimit:4000/4000MS(Java/Others)MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):4521AcceptedSubmission(s):508Statistic|Submit|Clarifications|Back题意:给定一个序列,对于每个数a[i]求出最少删除i前面多少个数
熙言丶
·
2020-08-18 01:42
数据结构
codeforces global round 5 B题
权值线段树
有一些车要进洞和出洞,给出它们的进洞和出洞序列,如果有超车的情况发生,超车的那辆车要被罚款,即如果a比b先进洞,但是b却先出洞,b就要被罚款。这个题有很多的方法,但是终究都围绕着一个思想:比自己先进洞的车一定要先出洞,否则就要被罚款。我看了大佬的博客,这题用树状数组写的,思想是按照出洞的顺序,找出这辆车的前面本应该有多少辆车已经出洞了。再找实际上有多少辆车出洞了。如果实际上的更少,就要被罚款。然后
sunnyorrainy
·
2020-08-17 14:26
线段树
ACM的人生
1002 Breaking Down News 2020杭电多校第8场
1002&cid=886这个榜歪到天上去了,LCT过120队,这题线段树裸题过30+队这题就是dp[i]只能从dp[i-R]---dp[i-L]这段转移过来,那么对前缀和离散化一下,把前缀和当下标维护一棵
权值线段树
二分抄代码
·
2020-08-17 05:47
线段树
Codeforces Round #602 (Div. 2A,B(线段树),C(暴力),D1(暴力),D2(
权值线段树
))
昨天打牛客的小白惨不忍睹,今天发挥的还是惨不忍睹,但是还行,迟到20分钟写到了D2,但是C没时间写了。。题目链接A水题一个#include#definerep(i,a,b)for(inti=a;i#definemkmake_pairusingnamespacestd;typedeflonglongll;llgcd(lla,llb){returnb?gcd(b,a%b):a;}intmain(){i
ccsu_deer
·
2020-08-17 02:52
codeforce题解
数据结构---线段树
【BZOJ】1513 [POI2006]Tet-Tetris 3D 树套树
写一下自己对树套树的理解:树套树其实是由两种线段树组成——
权值线段树
和标记线段树。外层线段树每一个节点都包含两种内层线段树。先了解一下标记永久化。标记永久化就是不向下传递标记,而是每次经过当
Chester_King
·
2020-08-17 01:50
BZOJ
难题
线段树
树套树
POI - 18 - Tree Rotation (线段树合并)
首先对于每个叶子结点建立一棵
权值线段树
。先序遍历回溯时,合并左右子
jinglinxiao
·
2020-08-17 01:46
线段树合并
[BZOJ2212][Poi2011]Tree Rotations(线段树合并)
分别对这两个子树建立
权值线段树
将这两个
权值线段树
合并合
Clove_unique
·
2020-08-16 23:35
题解
线段树
刷题总结——系列维护(ssoi)
题目:题解:题解如上图,至于计算大于s的数字的数量和小于s数字的和用
权值线段树
或者树状数组维护就行了···注意离散化另外发现cout和puts比printf快好多·····代码:#include#include
banzhangzhi8819
·
2020-08-15 22:08
jzoj3338-[NOI2013模拟]法法塔的奖励【
权值线段树
,线段树合并】
解题思路首先我们使用
权值线段树
计算答案每个点(l,r,w)(l,r,w)(l,r,w)表示以l∼rl\simrl∼r为结尾最长的不降升子序列长度。
ssl_wyc
·
2020-08-14 16:25
数据结构
关于主席树的一些理解
引入:线段树:每个节点维护一段区间的信息,叶子节点代表第几个数
权值线段树
:维护数组元素出现的次数用途:(1)每个节点维护一个区间数出现的次数,可被查询(2)可以快速找到K-th(3)查询某数出现的次数主席树
TRYAC
·
2020-08-14 07:05
权值线段树
&线段树合并
权值线段树
所谓
权值线段树
,就是一种维护值而非下标的线段树,我个人倾向于称呼它为值域线段树。
weixin_34075551
·
2020-08-13 21:00
[HNOI2012]永无乡 题解
权值线段树
+并查集对于每一个点先建立一个
权值线段树
,之后并查集维护/更改连通性。
weixin_30342827
·
2020-08-13 20:19
set+线段树合并分裂--bzoj4552: [Tjoi2016&Heoi2016]排序
传送门机房最后一个学习线段树合并的人qwq题目要求支持区间升序或降序排序,并且单点查询思路是一开始对每一个点建一个
权值线段树
,然后排序的话就是把一段
权值线段树
都合并起来,这样就无所谓顺序了,然后具体操作用
..、
·
2020-08-13 18:28
线段树
codeforces768G.The Winds of Winter
显然减(mx-cx)/2是最优的,然后就开
权值线段树
,查询1~(mx-cx)/2最大值查询(mx-cx)/2~n最小值对于最大树是儿
spzb
·
2020-08-13 18:41
CF
Luogu P3224 [HNOI2012]永无乡
100000,1⩽q⩽3000001\leqslantn\leqslant100000,1\leqslantq\leqslant3000001⩽n⩽100000,1⩽q⩽300000题解求第k大,考虑
权值线段树
linjiayang2016
·
2020-08-13 15:07
Splay
启发式合并
【校内OJ2645】 hyc的xor/mex (01Trie)
(wsm会有什么
权值线段树
这种东西?
Michael_GLF
·
2020-08-13 14:21
————字符串————
Trie
[BZOJ2733][HNOI2012永无乡][线段树合并+并查集]
用并查集维护岛屿之间的连通性,对一个联通块内的岛屿建一棵
权值线段树
,合并联通块的同时合并两棵线段树。抄了学习了一发黄学长的线段树合并的板子。代码:#includ
g1n0st
·
2020-08-13 14:21
Bzoj
2017
线段树
线段树合并
并查集
[HNOI2012] 永无乡 题解
题意:n个点,有加边操作,询问与某一点处于相同的联通块的点中权值第k大的点思路:对所有点建立一棵
权值线段树
,加边就配合并查集进行线段树合并反思:动态开点,
权值线段树
要用sum[g[x=find(x)]]
diyaochang9767
·
2020-08-13 13:26
2019牛客多校第七场E Find the median 离散化+线段树维护区间段
Findthemedian题意刚开始集合为空,有n次操作,每次操作往集合里面插入[L[i],R[i]]的值,问每次操作后中位数是多少分析由于n比较大,并且数可以达到1e9,我们无法通过
权值线段树
来进行操作
azmkinbug41973327
·
2020-08-13 13:09
2019牛客训练赛第七场 C Governing sand
权值线段树
+贪心
Governingsand题意森林里有m种树木,每种树木有一定高度,并且砍掉他要消耗一定的代价,问消耗最少多少代价可以使得森林中最高的树木大于所有树的一半分析复杂度分析:n1e5种树木,并且砍树肯定是从便宜的砍,有区间性,可以考虑线段树,每次枚举一种高度,先把高于其高度的全部砍掉,再砍低于他的使得满足大于一半的条件,砍低于他的肯定是从花费低的开始砍,所以就是一个选前k小的问题,这样就是一颗权值线段
azmkinbug41973327
·
2020-08-13 13:09
上一页
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
其他