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
┠──>树状数组线段树
树状数组
介绍(转)
树状数组
是一个查询和修改复杂度都为log(n)的数据结构,假设数组a[1...n],那么查询a[1]+……+a[i]的时间是log级别的,而且是一个在线的数据结构,支持随时修改某个元素的值,复杂度也为log
oopos
·
2020-09-12 13:13
数据结构
c
算法
编程
扩展
matrix
[BZOJ]2716: [Violet 3]天使玩偶 CDQ分治+
树状数组
Description题解:这类问题好像可以用kd-tree?然而蒟蒻并不会。不过CDQ分治的做法也挺巧妙的。考虑一个点(x,y),如果只考虑它左下角的离他最近的点,那么我们要找的就是所有满足x1usingnamespacestd;#defineLLlonglong#definepapairconstintMaxn=500010;constintMax=1000001;constintinf=-1
200815147
·
2020-09-12 12:09
树状数组
CDQ分治
树状数组
/归并排序应用: 计算数组的小和
树状数组
/归并排序应用:计算数组的小和简介思路
树状数组
归并排序简介面试文远知行,被问到了这道题,牛客程序员代码面试指南:计算数组的小和题目描述如下:数组小和的定义如下:例如,数组s=[1,3,5,2,4,6
lih627
·
2020-09-12 12:03
算法
数据结构
算法
线段树
维护区间乘积 区间欧拉函数
Codeforces1114F题意维护区间乘求区间乘积的欧拉函数ϕ(n) = nΠprime∣nprime− 1prime那么对于我们区间乘来说因为小于300内的质数很少所以我们可以用long long 维护然后用
线段树
维护一个区间乘积只不过区间乘积需要快速幂优化
ljq--linuxer
·
2020-09-12 10:55
ACM
DS-线段树
[luogu4197]Peaks
将边按顺序一条一条加入,合并了两个联通块的同时合并权值
线段树
至于查询,在权值
线段树
查询全局的k大就可以了。不知道为什么大家都打的启发式合并+主席树Co
diedunfu1647
·
2020-09-12 10:29
Mines
线段树
建图+强连通分量
ProblemA.MinesInputfile:standardinputOutputfile:standardoutputTimelimit:10secondsThereareNminesonthenumberline.Mineiisatpositionpiandhasanexplosionradiusri.Itinitiallycostscitodetonate.Ifmineiisdetona
VampireWeekend
·
2020-09-12 09:17
线段树
tarjan/2-SAT
洛谷P1972 [SDOI2009]HH的项链 离线+
树状数组
主席树
题目链接:https://www.luogu.com.cn/problem/P1972题意:区间不同数的个数。思路:第一种写法:离线询问,将其按照r大小排序,然后对于ai,将当前位置+1,上一次出现位置-1,求前缀和就是答案。#includeusingnamespacestd;typedeflonglongll;#definefifirst#definesesecond#definelsrt#de
moomhxy
·
2020-09-12 09:19
主席树
树状数组
洛谷
夜深人静写算法(三)-
树状数组
目录一、从图形学算法说起1、MedianFilter概述2、rpixel-MedianFilter算法3、一维模型4、数据结构的设计5、
树状数组
华丽登场二、细说
树状数组
1、树or数组?
英雄哪里出来
·
2020-09-12 08:59
夜深人静写算法
夜深人静写算法
剑指 Offer 51 数组中的逆序对
树状数组
写法classSolution{public:#definemaxn50050#definelowbit(i)(i&(-i))intn,m,a[maxn],b[maxn],c[maxn];voidupdate
Thinking knife
·
2020-09-12 08:55
面试
HDU-6315 Naive Operations
题目链接:HDU6315题解:
树状数组
+
线段树
。每一次我们对an加一就相当于对bn-1,当bn=0,代表c[n]++。
树状数组
用来单点更新,区间求和,
线段树
用来维护bn当前的值,以及记录最小值。
yizhibaiwuya
·
2020-09-12 08:42
洛谷P3369 【模板】普通平衡树 [权值
线段树
做法]
DescriptionDescriptionDescription写一种数据结构维护一些数据包括插入,查找,删除,查找前驱,查找后继等数据范围:数的个数n≤106n\leq10^6n≤106SolutionSolutionSolution其实我们只需要写出一种数据结构满足查询排名为ppp的数,ppp这个数的排名,以及支持修改的数据结构即可那前驱和后继咋办呢?pre(x)=kth(rk(x)−1),
ssl_xxy
·
2020-09-12 08:25
线段树
权值线段树
Poj 3167 Cow Patterns Hdu 4749 Parade Show (KMP大小关系相同匹配+
树状数组
)
两道题差不多,区别在于匹配时是否允许重叠自己写的时候细节没处理好,无限WA。。。。KMP和exKMP先练到这里,接下来计划研究下被虐了一遍又一遍的后缀数组。。。昨天再战cet6,这回写作和翻译题简直感人。。。希望这回能过吧。坑爹的考试周又要开始了,希望做题的时间能够得到保证。参考了poj3167-1292765944的专栏-博客频道-CSDN.NET两个串的排名串相等当且仅当这两个串的每个位置上的
时雨晴天
·
2020-09-12 08:08
ACM/ICPC
Regional
KMP
exKMP
字符串
序列--(
树状数组
维护等差数列模板)
题目描述eobiyye给了你一个长度为n的序列ai,序列中每个元素的初始值为0。接下来她会对这个序列进行m次操作,每次操作有4个参数l,r,s,e,表示将区间[l,r]加上一个首项为s,末项为e的等差数列。若一次操作中l=1,r=5,s=2,e=10,则对序列中第1~5个数分别加上2,4,6,8,10。现在Geobiyye要求你求出m次操作后序列中的每个数的值。输入第一行2个整数n,m,表示序列长
PushyTao
·
2020-09-12 08:48
数据结构
有意思的小题目
线段树
(小白都能看懂系列1)
线段树
线段树
是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应
线段树
中的一个叶结点。
诡诡..
·
2020-09-12 08:02
线段树
定义
线段树
是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应
线段树
中的一个叶结点。
青羽秦川
·
2020-09-12 08:02
权值
线段树
理解及模板
权值
线段树
,顾名思义就是记录权值的
线段树
,普通的
线段树
直接以坐标为l,r建树,而权值
线段树
是以大小来建树,树上寸的信息是该权值的数量,而通过建树时二分从小到大的性质,可以用这个解决一些有序的东西这个视频讲得很好
- Passerby ゛
·
2020-09-12 08:08
模板
线段树
基于ST的RMQ的实现
2.RMQ问题有很多解决办法,比如直接暴力,
线段树
/
树状数组
,ST等。在这里面ST(sparsetable:也被说成跳表)。
MatrixYg
·
2020-09-12 07:30
POJ
洛谷P1168 中位数(权值
线段树
)
题目描述给出一个长度为N的非负整数序列Ai,对于所有1≤k≤(N+1)/2,输出A1,A3,…,A2k-1的中位数。即前1,3,5,…个数的中位数。输入输出格式输入格式:第1行为一个正整数N,表示了序列长度。第2行包含N个非负整数Ai(Ai≤109)。输出格式:共(N+1)/2行,第ii行为A1,A3,,A2k−1的中位数。输入输出样例输入样例#1:713579116输出样例#1:1356说明对于
weixin_34409741
·
2020-09-12 07:04
线段树
+RMQ问题第二弹
线段树
+RMQ问题第二弹上篇文章讲到了基于SparseTable解决RMQ问题,不知道大家还有没有印象,今天我们会从
线段树
的方法对RMQ问题再一次讨论。
weixin_34361881
·
2020-09-12 07:03
AtCoder Grand Contest
F:拓扑排序,
线段树
优化连边。AGC002C:水题,看是否有a[i]+a[i+1]>=k。D:并查集上倍增,二分答案。E:博弈(坑)F:模型转化然后$DP$。AGC003C:
weixin_34159110
·
2020-09-12 07:21
HYSBZ 2243 染色 (树链拆分)
第一次写
线段树
区间合并。解题思路:树链剖分+
线段树
区间合并
线段树
的端点记录左右区间的颜色。颜色数目。合并的时候就用区间合并的思想。还要注意一点。
weixin_33682719
·
2020-09-12 07:55
HDU - 6315 - Naive Operations(
线段树
区间更新 + 单点更新)
HDU-6315-NaiveOperations题意:有两个数列a,b,均有n个数,b是1~n的一个排列,a均为0有两个操作:addlr:a数组[l,r]区间内的数+1querylr:求∑⌊ai/bi⌋(l=mi时可能会区间和+1,所以向下更新到单点若区间和+1则mi[i]+=b[i]#include#include#includeusingnamespacestd;constintmaxn=1e
vloai
·
2020-09-12 07:04
线段树
HDU
hdoj 4893 2014年多校联合3 1007
这道题可以说是标准的
线段树
的用法,单点更新+区间查询和修改。不过这里有一个提前要做的工作,那就是每次单点更新的时候也要更新区间。否则的话,区间更新的时候,就得更新到叶子节点,复杂度就成了O(n)了。
zxc106
·
2020-09-12 07:18
数据结构
hdoj 4901 多校联合4 1005
一直被那个
线段树
困着。也希望以后能把
线段树
种活。这个题的思路就是设f[i][j]为前i个数(从中选若干个数)异或值为j的集合数。h[i][j]为从第i个数开始到n(选若干个数),相与值为j的集合数。
zxc106
·
2020-09-12 07:18
DP
【树转数组】poj1195
/*二维的
树状数组
:更新某个元素时:NO.1:c[n1],c[n2],c[n3],....,c[nm];其中n1=i,n(i+1)=ni+lowbit(ni);nm+lowbit(nm)的值应该大于元素个数
欧拉士大夫
·
2020-09-12 07:33
zkw
线段树
解决区间rmq
zkw
线段树
具体内容请百度统计的力量(这是他讲的时候所用的ppt的名字)今天我们就来完整的写一个zkw
线段树
。
winoros
·
2020-09-12 07:55
codeforces
数据结构
杂物
Codeforces Round #485 (Div. 2) - E - Petr and Permutations
用归并、
树状数组
、
线段树
都行。另外负数取余,取余的结果与被取余的数保持一致,如果不确定正负,就先使用绝对值再取余。也可以直接求出最少交换
Self-Discipline
·
2020-09-12 07:55
ACM
算法
权值
线段树
小结
线段树
大概地球人都知道了,就是以数组的下表建立
线段树
来进行一些区间操作,这里介绍一下权值
线段树
,顾名思义,其实权值
线段树
也是
线段树
的一种。
圣诞老人家
·
2020-09-12 07:24
线段树
『RMQ』解决RMQ问题的方法(一)——
线段树
RMQ(RangeMinimum/MaximumQuery): 对于长度为n的数组A,回答若干询问RMQ(A,i,j)(i,j#definelllonglongusingnamespacestd;constintMax=1e5;intn,m,maxx=0;structNode{intl,r,max;}st[4*Max];intval[Max];voidcreat(intl,intr,introo
Miserable_ccf
·
2020-09-12 07:15
POJ - 3264 Balanced Lineup
线段树
解RMQ
这个题目是一个典型的RMQ问题,给定一个整数序列,1~N,然后进行Q次询问,每次给定两个整数A,B,(12#include3#defineINF10000104#definemax(a,b)((a)>(b)?(a):(b))5#definemin(a,b)((a)>(b)?(b):(a))67typedefstructres8{9intmx,mi;10}pair;1112typedefstruct
rootial
·
2020-09-12 07:47
洛谷 P3834 【模板】可持久化
线段树
2(主席树)
洛谷P3834【模板】可持久化
线段树
2(主席树)题目链接题目背景这是个非常经典的主席树入门题——静态区间第k小。数据已经过加强,请使用主席树。同时请注意常数优化。
旺 崽
·
2020-09-12 07:01
主席树
洛谷
Divide Square (扫描线 +
线段树
)
DescriptionThereisasquareofsize106×106onthecoordinateplanewithfourpoints(0,0),(0,106),(106,0),and(106,106)asitsvertices.Youaregoingtodrawsegmentsontheplane.Allsegmentsareeitherhorizontalorverticalandi
chr1st0pher
·
2020-09-12 07:26
扫描线
线段树
Codeforces
BZOJ 2243 [SDOI2011] 染色(树剖 +
线段树
)
Description给定一棵有nnn个节点的无根树和mmm个操作,操作有2类:1、将节点aaa到节点bbb路径上所有点都染成颜色ccc;2、询问节点aaa到节点bbb路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221112221112221”由3段组成:“111111”、“222222222”和“111”。请你写一个程序依次完成这mmm个操作。Input第一行包含2个整数nnn和
chr1st0pher
·
2020-09-12 07:26
线段树
树链剖分
BZOJ
I Hate It
线段树
模板https://vjudge.net/problem/HDU-1754#includeusingnamespacestd;constintN=2e5+10,INF=0x3f3f3f3f;intn
TzoZex
·
2020-09-12 07:48
线段树
https://ac.nowcoder.com/acm/problem/14136(牛客网 监视任务)
题目链接:题解:本题我们不能一上来就用
树状数组
来统计每一位的贡献,我们需要先对区间进行一个排序,先按照区间的右端点由小到大排序,再按照区间的左端点从小到大排序,再按照区间的k值从大到小排序。
qq_3030364995
·
2020-09-12 06:37
线段树
之RMQ
线段树
之RMQRMQ算法,全称为RangeMinimum/MaximumQuery,即区间最值(最小值或者最大值)查询。
未已优
·
2020-09-12 06:05
线段树
POJ - 3468
线段树
区间修改,区间求和
由于是区间求和,因此我们在更新某个节点的时候,需要往上更新节点信息,也就有了tree[root].val=tree[L(root)].val+tree[R(root)].val;但是我们为了把懒标记打上,当节点表示的区间是完全被询问区间包含,那么这个区间的信息都是有用的,因此我们其实只需要把这个节点更新,并打上懒标记即可。如果以后update或者query需要跑到下面,直接往下pushdown即可
bluefly-hrbust
·
2020-09-12 06:50
2018-2019 ACM-ICPC Southeastern European Regional (SEERC 2018) G - Matrix Queries (level 3)(
线段树
)
题目链接题意:给你一个(2^n)*(2^n)的矩阵,矩阵元素只有0,1两种颜色。定义一个元素的价值是1.如果一个矩阵都是一种颜色,那么他的价值为12.如果一个矩阵不纯色,那么他的价值是把他分成4个(2^(k-1))*(2^(k-1))(假设原来的大小是(2^k)*(2^k))的矩阵的价值之和+1然后有q个操作,一开始矩阵都是0颜色,每一次操作,你需要把t=0,把第x行都取反;t=1,把第x列取反。
Just_JK
·
2020-09-12 06:50
线段树
思维题
ST表———解决静态RMQ问题
ST表———解决静态RMQ问题应用范围比较窄,只能求解区间最值查询,可以查最大值,也可以查最小值,一般在比赛中会和思维题放在一起考察还有一种解决静态RMQ问题的是利用
线段树
时间复杂度:
线段树
:O(nlogn
qlldeboke
·
2020-09-12 06:46
RMQ问题的
线段树
解法
RMQ(RangeMinimumQuery)问题是计算一个输入数列A[0...n-1]从位置i到位置j之间的最小值,即RMQ[i,j]=min{A[k],k=i,i+1...j}。RMQ的解法有很多,比如SparseTable(ST)算法(注意这个ST缩写不是指SegementTree哦)和转化为特殊的+1/-1RMQ的算法。为了查询的方便,RMQ算法需要对数列A进行预处理(preprocessi
ljsspace
·
2020-09-12 06:53
数据结构和算法
主席树【权值
线段树
】(转)
注:本文转自WCR神仙(应WCR本人要求)的博客,传送门:https://blog.csdn.net/g21wcr/article/details/82970228一、权值
线段树
。
Michael_GLF
·
2020-09-12 06:31
————数据结构————
主席树
双lazytag
线段树
板子
题目描述如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x2.将某区间每一个数乘上x3.求出某区间每一个数的和输入输出格式输入格式:第一行包含三个整数N、M、P,分别表示该数列数字的个数、操作的总个数和模数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3或4个整数,表示一个操作,具体如下:操作1:格式:1xyk含义:将区间[x,y]内
YIF丶
·
2020-09-12 05:17
洛谷
bzoj
洛谷 P3328 【[SDOI2015]音质检测】
一开始想分块来着,后来发现可以直接
线段树
首先考虑一个性质,我们如果有数列的相邻两项f[i]和f[i+1]那么用这两项向后推k项其线性表示系数一定(表示为f[i+k]=a∗f[i]+b∗f[i+1]+c的形式
ddptun8868
·
2020-09-12 05:53
RMQ问题(ST表)
算法描述ST表是根据倍增的思想设计的基于动态规划的做法,优点是能O(1)O(1)O(1)地查询,缺点是不能像
线段树
那样支持修改。
小胡同的诗
·
2020-09-12 05:14
RMQ
倍增
DP
二进制
POJ 3264 RMQ问题 ST算法
因为之前都是
线段树
解决RMQ问题,省脑子……(因为写的顺手)……但是因为RMQ毕竟常数大,而且其实程序还相对ST要长……以前写过ST算法,但是因为每次都在纠结到底+1呢,还是-1呢,边界问题处理的我蛋都碎了好几次
CMTM4
·
2020-09-12 05:57
RMQ
st
POJ
Petr and Permutations CodeForces - 987E(逆序对)
求出是谁操作的(原序列为从小到大的序列),Peter的操作次数为3n,Alex的操作次数为7n+1解析:我们来看这个序列中的逆序对,逆序对的个数为偶数则操作次数为偶数,逆序对的个数为奇数,则操作次数为奇数然后
树状数组
求逆序对即可
babing2770
·
2020-09-12 05:56
HDU - 4967 Handling the Past (
线段树
/分块)
解法:构造一棵
线段树
,每个区间需要维护两个值:sum(区间和),maxrsum(区间最大后缀和。首先对
jrltx
·
2020-09-12 05:29
RMQ
线段树
分块
差分
权值
线段树
、主席树学习
传送门:卿学姐的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
【POJ】2299 Ultra-QuickSort
树状数组
树状数组
求逆序对WQNMDlonglongRunIDUserProblemResultMemoryTimeLanguageCodeLengthSubmitTime17806769FMM6662299Accepted11496K969MSG
FMM666
·
2020-09-12 05:42
POJ
较易
树状数组
上一页
33
34
35
36
37
38
39
40
下一页
按字母分类:
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
其他