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
-----线段树
维度探索——二维
线段树
前言
线段树
是一个神奇的东西,可以O(n)建树,O(logn)修改、查询,维护一个区间的性质。但是
线段树
维护的序列一定是一维的,如果我要维护一个“二维”的结构呢?就比如说,维护一个矩阵中子矩阵的和。
GGN_2015
·
2020-08-24 21:38
数据结构
算法导论
注意事项&&遗漏知识&&题
数学问题奋力一搏放弃吧孩子数据结构计算几何搜索待学习值得放弃其他题和比赛注意事项记住,zgs的oj里面cout比printf快数组溢出是%数据范围的操作;数组太大就炸掉了开了longlong要用%lld邻接表大小要×2\times2×2
线段树
要
锑元素使者
·
2020-08-24 21:44
树状数组---区间更新,区间查询
对于区间修改、区间查询这样的简单问题,打一大堆
线段树
确实是不划算,今天来介绍一下区间查询+区间修改的树状数组【一些基础】树状数组的基本知识不再介绍,请自行百度我们假设sigma(r,i)表示r数组的前i
Top_Spirit
·
2020-08-24 21:52
树状数组
【学习笔记:
线段树
拓展】(TBC)
今天博主所在机房的数据结构之王ldxoi神仙于百忙之中抽空给蒟蒻博主和博主的一些神仙同学们讲了一些
线段树
的操作,只会那几道模板题的博主觉得受益匪浅(ldxoi:这些不都是基本,哦不,底层操作吗?)
ApeLi
·
2020-08-24 21:47
数据结构
线段树
学习笔记
poj3468(
线段树
)
ASimpleProblemwithIntegersTimeLimit:5000MSMemoryLimit:131072KTotalSubmissions:87678Accepted:27225CaseTimeLimit:2000MSDescriptionYouhaveNintegers,A1,A2,...,AN.Youneedtodealwithtwokindsofoperations.Onet
Water_Wood_
·
2020-08-24 20:33
线段树
poj2155二维
线段树
,二维树状数组
MatrixTimeLimit:3000MSMemoryLimit:65536KTotalSubmissions:23048Accepted:8560DescriptionGivenanN*NmatrixA,whoseelementsareeither0or1.A[i,j]meansthenumberinthei-throwandj-thcolumn.InitiallywehaveA[i,j]=0
Water_Wood_
·
2020-08-24 20:02
线段树
[POI2006]TET-Tetris 3D
传送门要做这道题我们需要两个前置技能:二维
线段树
和标记永久化。我们使用一维
线段树
来维护一个序列,那我们想维护一个矩阵的时候,二维
线段树
应运而生。二维
线段树
好像有两种实现方法。
weixin_30897079
·
2020-08-24 20:38
【POI 2006】 Tet-Tetris-3D
【题目链接】点击打开链接【算法】二维
线段树
(树套树)注意标记永久化【代码】#includeusingnamespacestd;#defineMAXD1000intD,S,N,d,s,w,x,y,tmp;
even_bao
·
2020-08-24 19:25
线段树
树套树
[USACO10FEB]慢下来Slowing down(
线段树
+dfs序)
题目传送门题解这道题还是比较好的;我们先考虑树形成一条链的情况,那就成了单点修改区间查询操作,都是
线段树
的基本操作;那么我们就使用dfs序的方法,把它变成一条链,那么某棵子树的区间就是dfn[i]+tot
A_Comme_Amour
·
2020-08-24 19:23
线段树
dfs序
数状数组(入门)
数状数组学习数组数组的好处:树状数组相对于
线段树
的编码来讲,树状数组的编码并不复杂,反而很简单,对于一些区间求和,区间求最大值,维护区间的问题,反而能更简单的解决树状数组核心代码:intlowbit(inti
Vain957
·
2020-08-24 18:07
回顾算法
数据结构
线段树
三:求任意区间的最值
从做这几个题目我发现了,能调用库函数的尽量调用库函数,不然的话可能会超时。不信可以试,在题1的头文件下定义宏:#definemin(a,b)(a)(b)?(a):(b)题1:Tyvj1038(忠诚),给定区间求最小值。只需更改Query即可,由于没有修改操作,可以删除Update操作。#include#include#include#includeusingnamespacestd;constin
xuzengqiang
·
2020-08-24 18:53
线段树
或树状数组求逆序数(附例题)
学习了博主:MyZee,shengweison的文章
线段树
或树状数组求逆序数假设给你一个序列61273485,首先我们先手算逆序数,设逆序数为N;6的前面没有比他大的数N+=01的前面有一个比他大的数N
weixin_30782331
·
2020-08-24 17:23
求逆序对 (树状数组版)
基本思想和
线段树
求解逆序数是一样的,前一篇《求逆序对
线段树
版》也介绍过,先对输入数组离散,数组里的元素都不相同可以直接hash,存在相同的数话可以采用二分。
Element-YoNg
·
2020-08-24 16:42
ACM__树状数组
ACM__数据结构
ACM__Hash
线段树
--双标签
#include#include#include#include#definemaxn100010typedeflonglongLL;usingnamespacestd;LLa[maxn],n,p;structnode{intl,r;LLsum,alltag,multag;}tr[maxn*4];voidbuild(intid,intl,intr);voidchange(intid,intql,i
ling_fly
·
2020-08-24 15:42
模板
线段树
数状数组
引入:
线段树
和树状数组,是两个十分相似的数据结构。他们能使对一个区间的数修改以及查询的速度提升许多。
徐行tag
·
2020-08-24 14:33
学习历程
RMQ、树状数组、
线段树
1、RMQ(区间最大值、区间最小值)RMQ(RangeMinimum/MaximumQuery),即区间最值查询O(nlogn)时间内进行预处理,然后在O(1)时间内回答每个查询①预处理设A[i]是要求区间最值的数列,F[i,j]表示从第i个数起连续2^j个数中的最大值。(DP的状态)例如:A数列为:3245681297F[1,0]表示第1个数起,长度为2^0=1的最大值,其实就是3这个数。同理F
IIYMGF
·
2020-08-24 14:45
数据结构
剑指Offer
Sum Of Digit
链接点击跳转题解只要往
线段树
的方向想,这个题的做法就出来了假设用
线段树
做的话,一定要解决“怎么合并”的问题这个时候我猜了一个结论,把原来的数字砍成好几段,每一段分别SODSODSOD,然后合起来再SODSODSOD
*ACoder*
·
2020-08-24 13:05
#
线段树
数据结构---Sparse Table 稀疏表
RMQ问题也可以用
线段树
来解决,只不过
线段树
的查询复杂度为O(nlogn)而且代码量大。本文以求最小值为例。算法算法利用了二分和动态规划的思想:设st[i][j]表示区间[i,i+2
T_a_r_j_a_n
·
2020-08-24 12:43
数据结构
CodeForces 234Div2
E.InnaandBinaryLogic显然对于一次更新应该一位一位的来,对于第k位的改变,通过找规律可以发现,被更新的数字数量为(k前面有多少个连续的1+1)*(k后面有多少个连续的1+1),找到这个规律时候,直接开
线段树
或者用
weixin_30663471
·
2020-08-24 12:34
OI算法汇总
转自yangle61:http://blog.csdn.net/yangle61/article/details/520552601.数据结构
线段树
树状数组平衡树Link-Cut-Tree可持久化数据结构分块
YxuanwKeith
·
2020-08-24 12:34
总结
bzoj1453: [Wc]Dface双面棋盘
然后我们可以按照行跑
线段树
,然后暴力合并上下联通情况。这样单次询问只要O(NlogN)了。
zhouyuyang233
·
2020-08-24 12:51
辣鸡八中
数据结构
HDU 4578 Transformation
线段树
区间加法 区间乘法 区间置数 维护区间和 区间平方和 区间立方和
http://acm.hdu.edu.cn/showproblem.php?pid=4578Yuanfangispuzzledwiththequestionbelow:Therearenintegers,a1,a2,…,an.Theinitialvaluesofthemare0.Therearefourkindsofoperations.Operation1:Addctoeachnumberbet
csu_xiji
·
2020-08-24 11:56
线段树
Water Tree 【dfs序+
线段树
】
方法1把树按照dfs序展开,用
线段树
维护子树和,设0表示empty,1表示filled操作1:若子树v存在0节点,则把v的父亲【in[fa],out[fa]】更新成0。
永远热血沸腾
·
2020-08-24 11:56
codeforces
数据结构
线段树
(求区间和)
YouhaveNintegers,A1,A2,...,AN.Youneedtodealwithtwokindsofoperations.Onetypeofoperationistoaddsomegivennumbertoeachnumberinagiveninterval.Theotheristoaskforthesumofnumbersinagiveninterval.输入描述:Thefirst
wust_cyl
·
2020-08-24 11:57
数据结构
线段树
关于区间修改的理解首先明确给节点ppp打上懒标记的含义是:该节点曾经被修改,但其子节点尚未被更新。所以当节点ppp所代表的区间被包含时直接修改st[p].sumsst[p].sumsst[p].sums,并给ppp打上一个懒标记,并返回上一层(记做x−1x-1x−1)。对于第x−1x-1x−1层的节点ppp来说,第xxx层的节点ppp是它的子节点,所以在函数末尾有st[p].sums=st[pus
小镇做题家
·
2020-08-24 11:22
算法模板
Memory and Casinos[期望概率+
线段树
区间合并]详细推导
题目链接题目大意:就说一个赌徒在nnn个赌场里面转,在每个赌场他有pip_ipi的胜率,如果赢了就向右走,输了就向左走,如果到达000或者n+1n+1n+1号赌场就相当退出的了赌局。定义统治区间[l,r][l,r][l,r],就是在第lll个赌场不能输,并且在某次赌博中在赌场rrr获得胜利结束赌博。现在有两种操作:1.修改一个赌场的胜率2.询问统治[l,r][l,r][l,r]的概率是多少解题思路
黑夜和白天
·
2020-08-24 11:45
概率与期望
图论
线性代数
矩阵
概率论
算法
CF EducationalRound93 E.Two Types of Spells(权值
线段树
+堆维护最值)
思路设加倍魔法数量为k,权值
线段树
每次查询前k大的伤害和sumk(加倍多出来的伤害),mutiset维护魔法1和魔法2的最值,如果魔法1的最小值比魔法0的最大值大或不存在魔法0,sumk就要改变,因为至多加倍
lll_564
·
2020-08-24 11:50
线段树
堆
hdu6681 Rikka with Cake(扫描线,
线段树
)
题意:在n*m的坐标系平面上有k条射线,射线有上下左右四种不同的方向,问这些射线把这个平面切成多少块?坐标系的左下角为(0,0),右上角为(n,m).数据范围:n,musingnamespacestd;constintmaxm=1e5+5;inta[maxm=r)returna[node];intmid=(l+r)/2;intans=0;if(stmid)ans+=ask(st,ed,mid+1,
这有点难啊
·
2020-08-24 11:48
CF1167F Scalar Queries
题意题解对于[l,r]中的一个数,不论[l,r]有多大,只有比它小的数可以影响到它的排名,那么就可以把ai从小到大排序,一个一个加入
线段树
中,
线段树
中下表为i的是ai(原来的位置,不是排序后的)分别为最右端和最左端时的排名总和
DD(XYX)
·
2020-08-24 11:11
线段树
CF593D Happy Tree Party(不用树剖)
暴力除,当发现y=0时就停止于是我们维护每个点向上走一直走到根最近的一条数字大于1的边,存下该边的下端点,每当有一条边数字大于1,就要更新它的下端点子树中每一个的最近边,这个可以把点按照dfs序排序后用
线段树
做区间修改
DD(XYX)
·
2020-08-24 11:11
树论
线段树
Flags
所以我们可以用
线段树
优化。如果对每个点都建立选or不选两个点的话,我们就需要两颗
线段树
了。
青烟绕指柔!
·
2020-08-24 11:34
图论
2-SAT
线段树
牛客挑战赛39 C牛牛的等差数列
具有可加性,所以可以用
线段树
来维护,那么我们每个节点维护的的信息有区间和sumsumsum,区间首项ffffff,区间公差dddddd,最后查询就直接查询sumsumsum,那么我们区间的首项和区间的公差又怎么维护
nofuck~
·
2020-08-24 11:29
牛客
数据结构
线段树
「周练」Codeforces Round #530 (Div. 2)
A.Snowball(模拟)B.SquaresandSegments(数学)C.Postcard(贪心)D.Suminthetree(dfs+贪心)E.Nicetable(找规律+模拟)F.Cookies(树形dp+
线段树
ぺ晨曦若梦ぺ
·
2020-08-24 11:55
[WC2005]双面棋盘
datarange\[n\le200,m\le10000\]solution解决动态维护图连通性的方法有2种:一种是通过\(LCT\)动态维护最大删边时间生成树,另一种是
线段树
分治。
weixin_30419799
·
2020-08-24 10:21
[Wc]Dface双面棋盘
DescriptionInputOutputSampleInputSampleOutputHINTSource鸣谢刘汝佳先生授权使用思路
线段树
,树上的节点[left,right]表示[left,right
wang3312362136
·
2020-08-24 10:57
线段树
zkw
线段树
统计的力量预备知识简而言之,zkw
线段树
是一种非递归的
线段树
,相较普通
线段树
常数要小。并且,zkw
线段树
是自底向上实现的,这与普通
线段树
有很大不同。
unicornt_
·
2020-08-24 10:14
数据结构
2016 Multi-University Training Contest 4 1007 (hdu 5770)
比赛后一看题解,居然是扫描线+
线段树
。简直是到神(keng)题。好吧这么考虑,首先利用dfs序,把树转到序列上。然后对于每种情况,可以进行分类讨论。令lca=LCA(A,B),
unicornt_
·
2020-08-24 10:14
多校训练
图论
——dfs序
dfs序
多校
扫描线
HDU4417(主席树)
认识:主席树就是对于序列1...n的每一个前缀都构造一颗
线段树
来维护所要求的值。也就是说主席树实际上就是n棵
线段树
。那么为什么不会MLE?这个下面再说。先说一个经典的问题:静态区间第k大?
hqwhqwhq
·
2020-08-24 10:38
主席树
数据结构
主席树
[类欧几里得算法
线段树
] BZOJ 1938 [CROATIAN2010] ALADIN
直接在
线段树
上区间覆盖咯怎么求和?
里阿奴摩西
·
2020-08-24 10:37
线段树
类欧几里得算法
BZOJ 3531: [Sdoi2014]旅行
对于每种宗教开一棵
线段树
即可。
Charlie-Pan
·
2020-08-24 10:54
BZOJ
BZOJ
SDOI
树链剖分
2015 ACM/ICPC Asia Regional Shanghai Online
5468PuzzledElena5469Antonidas5470Typewriter5471CounttheGrid5472CodeFormatting5473Therewasakingdom5474Asimplegraphproblem5475Aneasyproblem用
线段树
维护
芋智波佐助
·
2020-08-24 10:48
2015
ACM/ICPC
Codeforces Round #200 (Div. 1) (树上的
线段树
)
A:a/b,a>b的话通过串联变回(a-b)/b,ab[pre+1]){if(cur=r){mark[fg][rt]=max(mark[fg][rt],v);node[fg][rt]=max(node[fg][rt],mark[fg][rt]);return;}down(rt,fg);intmid=(l+r)/2;if(Lmid)update(rson,L,R,v,fg);up(rt,fg);}i
JayYe
·
2020-08-24 10:32
ACM_Codeforces
ACM_线段树
????(1):???(???)
线段树
是一棵二叉树,树中的每一个结点表示了一个区间[a,b]。a,b通常是整数。每一个叶子节点表示了一个单位区间(长度为1)。
sun897949163
·
2020-08-24 10:43
并查集
线段树
【Codeforces Round 370 (Div 2) E】【
线段树
等比数列 区间合并】Memory and Casinos 赌场区间[l,r] l进r先出的概率
E.MemoryandCasinostimelimitpertest4secondsmemorylimitpertest512megabytesinputstandardinputoutputstandardoutputTherearencasinoslinedinarow.IfMemoryplaysatcasinoi,hehasprobabilitypitowinandmovetothecasi
snowy_smile
·
2020-08-24 10:57
题库-CF
CodeForces
数据结构-线段树
数学-多项式
数学-公式推导
线段树
模板
线段树
模板——lazy数组优化找区间和,单点修改,区间修改,求区间的最大值最小值。
v1dv1dv1d
·
2020-08-24 09:00
线段树
牛客第四场 子段乘积
线段树
的运用
线段树
真np真好用,真强题目链接https://ac.nowcoder.com/acm/contest/3005/C直接扫一遍维护区间会出现遇见0处理麻烦的问题直接用
线段树
这一问题将会不复存在将普通的区间加变成区间
TTP1128
·
2020-08-24 09:59
数据结构
子段乘积(
线段树
)
用
线段树
维护区间乘积的余数,然后查询区间[i,i+k−1][i,i+k-1][i,i+k−1]即可。
WA-Accepted
·
2020-08-24 09:10
线段树
牛客挑战赛39 C 牛牛的等差数列(
线段树
)(*)
题目链接#include#definelllonglongusingnamespacestd;constintmaxn=2e5+50;intval[maxn];lla[maxn>1;build(rt>1;a[node*2]=(a[node*2]+a[node])%mod;a[node*2+1]=(a[node*2+1]+a[node]+1LL*(m-L+1)*d[node])%mod;d[node
qq_42479630
·
2020-08-24 09:04
线段树
牛牛的等差数列【
线段树
】
然后,给区间一个等差数列,可以看成给这段区间赋一个基础值和递增一个值,所以我们在
线段树
上操作的时候,维护两个懒标记,分别是基础值,和等差值。因为存在累加(线性)关系,所以直接利
Andres_Lionel
·
2020-08-24 09:53
数据结构
线段树
牛客挑战赛39(A(枚举+递增+二分),B(二分+hash),C(
线段树
-等差数组),E(杨辉三角组合数))
题目链接A-聚会题意:做法:看了别人的代码我觉得我的做法太复杂了。稍微分析下一个可做的做法:两个传送,一定一个在0处,否则相当于没用正数负数分开考虑,对于正数数组,排序后一定是某个i与最后一个的中间位置放置一个传送,那我们就枚举中间的位置,然后计算当前最大距离。且一定是这个传送门的左边的某些点能往右走最近,那我用递增的方法,找到小于传送当前坐标t的第一个数:now,接着从now通过二分找到最远且往
ccsu_deer
·
2020-08-24 09:15
牛客题解
上一页
29
30
31
32
33
34
35
36
下一页
按字母分类:
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
其他