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
线段树&树状数组
线段树
与
树状数组
学习总结——
树状数组
(一维&二维
树状数组
的单点&区间的查询&更新&区间最大值维护)
树状数组
1.基础内容说一下
树状数组
,和
线段树
一样,
线段树
和
树状数组
都是为了加快素组的操作效率的,那么,为什么要弄两个数据结构来达到一个目的呢?
Liukairui
·
2020-08-19 08:48
算法学习总结
#
树状数组
zkw
线段树
,区间修改,最值查询(差分)
#include#include#include#include#include#include#includeusingnamespacestd;constintN=50010;intT,M,n,s,t,num,Max[N0;i--){Max[i]=max(Max[i>=1){a=max(Max[pos>=1,t>>=1){if(~s&1)Max[s^1]+=val,Min[s^1]+=val;
LSY_LELOUCH_YUKI
·
2020-08-19 08:36
【CF 1179C】Serge and Dining Room
(由1产生)然后发现2结论的式子其实可以转化为
线段树
。(嘿嘿嘿)我们用1表示菜,-1表示人,这样统计的时候就
清秋身上攻
·
2020-08-19 08:35
#
线段树
贪心
树状数组
应用汇总-二维区间查询,区间修改差分公式推导
树状数组
个人总结单点修改,区间查询inttree[maxn];inlineintlowbit(intx){returnx&(-x);}inlinevoidupdate(intx,intval){//将x
__Simon_
·
2020-08-19 08:02
数据结构
CSP-S 2019 第二轮 DAY2 简单解析(含部分分代码)
第一题:Emiya家今天的饭,比较难的动态规划第二题:划分,动态规划,高精度,单调队列第三题:树的重心,dfs序,
线段树
以下代码均在oitiku测试,第一题Emiya家今天的饭,O(n^2m)的算法仅得到
ngncmh
·
2020-08-19 08:02
CSP-J/S
2019
线段树
区间修改
再补个
线段树
区间修改的板子#includeusingnamespacestd;#defineinf0x3f3f3f3fconstintmaxn=1e5+9;structnode{intlazy,val,
Zookkk
·
2020-08-19 08:31
线段树
Jzoj4737 金色丝线将瞬间一分为二(GOSICK系列)
继续上一篇那套题可以将x,y宙分开讨论,对于每一维维护一个数据结构求出所有比之小的部分的和和比之大的部分的和所以我们先将这些点分别按x,y轴排序,得到rankx和ranky之后用
树状数组
即可#pragmaGCCoptimize
扩展的灰
·
2020-08-19 08:24
OI
数据结构
----树状数组
求解策略
----离散化
Jzoj
bzoj 1106: [POI2007]立方体大作战tet(贪心+
树状数组
)
1106:[POI2007]立方体大作战tetTimeLimit:10SecMemoryLimit:162MBSubmit:785Solved:574[Submit][Status][Discuss]Description一个叫做立方体大作战的游戏风靡整个Byteotia。这个游戏的规则是相当复杂的,所以我们只介绍他的简单规则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置。这些元素拥有n个不
Jaihk662
·
2020-08-19 08:53
#
各种水题
CF413E Maze 2D___
线段树
+矩阵乘法+dp
题目大意:给一个2*n的地图,有一些X不能走,没有修改,m个询问,问一个点到另一个点的最短距离。n,m<=2e5n,m<=2e5n,m#include#include#include#include#include#include#definerep(i,st,ed)for(inti=st;i=st;i--)#definelson(x)x*2#definerson(x)x*2+1#de
disPlayLzy_
·
2020-08-19 07:59
C++
线段树
动态规划
矩阵乘法
1106: [POI2007]立方体大作战tet(
树状数组
)
用
树状数组
记录每一个
GrimCake
·
2020-08-19 07:57
acm_数据结构
NOIP模拟 挑战challenge
我们看到这道题首先想到的当然是直接暴力然后我们发现如果上一次的答案为x,若修改的点在x点后,那么答案不会改变如果在x前,我们用
树状数组
维护一个值就行了下面是代码#include#definelowbit
布拉克王国国王黑叔叔
·
2020-08-19 07:24
洛谷P5057简单题 题解
可它的难度是普及/提高-传送门题目大意:给定一个初始为0的序列,可以让某一段区间的数字反转,也可以询问某个点的值学过
树状数组
的同学可能看出来了,这是一道
树状数组
区间修改,单点查询的变式,还没有学过的同学可以看看这篇博客
树状数组
路人
Gank_Wind
·
2020-08-19 07:52
题解
树
数据结构
HDU 5052 Yaoge’s maximum profit (树链剖分 +
线段树
)
简单来说,就是求树上从s到t点之间的所有点中后面某点的权值减去前面某点的权值最大差值,并且更新这一段路径分析:读完题马上看到树上两点路径就能想到是树链剖分去处理(不会LCT,只好写树剖了T_T),外加
线段树
区间合并
wJs9528-1
·
2020-08-19 07:47
===数据结构===
树链剖分
【P3384】【模板】树链剖分
树链剖分就是将树上的点通过轻重链剖分来将其合理地(即时间复杂度令人满意)hash成一个线段,之后再用
线段树
来维护。也可以想象成将树上最长的链拿出来,短的链就在旁边填填补补这种感觉?
Flanoc
·
2020-08-19 07:15
杂题
区间修改
线段树
模板
#include#include#includeusingnamespacestd;#definedebug(x)cerr>1;build(p*2,l,mid);build(p*2+1,mid+1,r);t[p].sum=t[p*2].sum+t[p*2+1].sum;}voiddown(intp){if(t[p].add){t[p*2].sum+=t[p].add*(t[p*2].r-t[p*2
Zolrk
·
2020-08-19 07:43
NOIP
数据结构
2020暑假西北工业大学个人排位赛第三场
题号名称难度定位知识点A黑妹的游戏I签到脑洞、gcdB御坂美琴简单题思维题Croom中档题网络流D极差中档题
线段树
、单调栈EPikachu难题最小割、贪心Fwyh的曲线难题曲线积分御坂美琴不停地拆掉最大的
*ACoder*
·
2020-08-19 07:12
2020暑假西北工业大学个人排位赛第二场
题号名称难度定位知识点A愤怒的巨巨签到高数、gcd、概率B白兔的字符串简单题字符串哈希C兔子的逆序对简单题逆序对、
树状数组
、分析D小A与最大子段和中档题斜率优化EHonorableMention中档题平衡树
*ACoder*
·
2020-08-19 07:11
2020暑假西北工业大学个人排位赛第一场
题号名称难度定位知识点A兔子的区间密码签到构造、脑洞B猴子排序的期望签到高精度、组合数学CXOR中档题数位dpDvcd中档题
树状数组
ECountingOnATreeAgain难题big-small、dfs
*ACoder*
·
2020-08-19 07:11
[BZOJ 3653] 谈笑风生
可以用主席树(或
线段树
合并)维护a子树内、dep在某个区间限制内的size和。
CE自动机
·
2020-08-19 07:38
【SAM+
线段树
合并】LGP4770 [NOI2018]你的名字
【题目】原题地址给定一个字符串SSS,多组询问给定字符串TTT以及两个数字l,rl,rl,r。求S[l..r]S[l..r]S[l..r]中有多少个子串xxx满足:xxx的任意一个子串没有在TTT中出现过。∣S∣,∑∣T∣≤5×105|S|,\sum|T|\leq5\times10^5∣S∣,∑∣T∣≤5×105【解题思路】加深对SAM\text{SAM}SAM的理解。既然是字符串题,我们首先对S
Dream_Lolita
·
2020-08-19 07:01
字符串-SAM
数据结构-线段树
【进阶】
树状数组
BIT
之前我讲过最基本的
树状数组
,这里讲一讲它的”进阶形态“.具有可加性的内容让
树状数组
来维护会显得很方便(比如说和),而不满足可加性的内容让
树状数组
来维护会有点麻烦(虽然已经有dalao给出了
树状数组
求最大值和
Nekroz_
·
2020-08-19 07:29
BIT
差分
【题解】Codeforces 786B Legacy
至R的所有结点连一条权值为w的有向边3uLRw从L至R的所有结点向u连一条权值为w的有向边首先看到题目,马上就明白不是暴力能够解决的事情(毕竟人家是Div.1的B啊),但是看到L和R,正常人应该都会往
线段树
这里想一想
Nekroz_
·
2020-08-19 07:28
图论
最短路径
CodeForces
线段树
【NOI2016】区间
线段树
用头尾两个指针控制,每次更新利用
线段树
进行区间覆盖来判断是否符合有公共点的条件。
Mininda
·
2020-08-19 07:49
NOI
中级数据结构-线段树
noi
线段树
金色丝线将瞬间一分为二
树状数组
的使用
Description为了解开骑士木乃伊事件,久城一弥和布洛瓦警官来到了停尸间。停尸间里有N具遗体,每具遗体都有一个坐标(X,Y)。由于停尸间的遗体摆放得横平竖直,我们认为两具遗体(Xi,Yi)和(Xj,Yj)得距离为|Xi-Xj|+|Yi-Yj|。负责停尸间的工人由于需要经常搬运遗体,所以对任意两具遗体的距离之和特别有印象。工人们已经记不得每具遗体对应的是什么人了。但是它们记得,八年前将米莉·马
CutieDeng
·
2020-08-19 07:45
数据结构----
树状数组
----二维区间的修改与查询
一、二维
树状数组
(如果不知道
树状数组
,请点这里)先来看一下一维的
树状数组
的结构:其实二维
树状数组
也差不多,只不过每一行和每一列都是一个
树状数组
,画出来就有些眼花缭乱了,在这里就不画出来了,先把getsum
cqbzcsq
·
2020-08-19 07:33
数据结构
线段树
—数组计算机
think:1下午在学习
线段树
,感觉内心一直波动起伏,静不下心来,
线段树
相对于前面的字典树等,感觉更多侧重于解决动态区间问题,比如求和/最大值/最小值等,多思考,多练习。
leoxry
·
2020-08-19 07:57
数据结构-线段树
数据结构-二叉树
错误反思
[
线段树
练习2] 影子的宽度 - 统计标记个数
题目描述桌子上零散地放着若干个盒子,盒子都平行于墙。桌子的后方是一堵墙。如图所示。现在从桌子的前方射来一束平行光,把盒子的影子投射到了墙上。问影子的总宽度是多少?输入格式第1行:3个整数L,R,N。-100000#include#include#include#include#include#include#include#includeusingnamespacestd;inlineconsti
Bill_Yang_2016
·
2020-08-19 07:55
线段树
树状数组
—求第k小的数—入门详解
——
树状数组
。哦?它也可以求第k大?它不是只用于求区间和的算法吗?怎么还可以用来求大小关系?哈哈,一会就让你大开眼界。思路建一个权值
树状数组
。何为权值
树状数组
?大家有没有听说过权值
线段树
?
逐梦起航-带梦飞翔
·
2020-08-19 07:11
基础数据的超进化
并查集
树状数组
[USACO16FEB]负载平衡(枚举暴力/模拟)
题目传送门题解这道sb模拟都写不出来,还搞什么
线段树
,枚举切的边就可以过代码#include#include#include#includeusingnamespacestd;constintmaxn=
A_Comme_Amour
·
2020-08-19 07:40
模拟
线段树
延迟标记精讲
一概述
线段树
,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(logn)。
哆啦AC梦
·
2020-08-19 07:06
线段树
金色丝线将瞬间一分为二
题目题解&思路一.解法1对于第i个点,其贡献为,对于这个,把x,y分开算,把绝对值打开,就是求有哪些xj比xi小,比xi大,则就可以用
树状数组
维护一下二.解法2明显这道题可以直接二分求答案,那么仍然分开算
BIT_jzx
·
2020-08-19 07:18
区间
二分
区间和(单点修改,区间查询)(
线段树
)
题目描述这是一道模板题。给定数列a[1],a[2],\dots,a[n],你需要依次进行q个操作,操作有两类:1ix:给定i,x,将a[i]加上x;2lr:给定l,r,求\sum_{i=l}^ra[i]的值(换言之,求a[l]+a[l+1]+\dots+a[r]的值)。输入格式第一行包含2个正整数n,q,表示数列长度和询问个数。保证1\len,q\le10^6。第二行n个整数a[1],a[2],\
ssqsssq
·
2020-08-19 07:46
数据结构
线段树
树状数组
区间修改,单点查询;
pid=3368#sub
线段树
水题啊;但是我们要学习
树状数组
;
树状数组
水题啊;首先假如我们会模版1;其实我们发现,直接区间修改会产生一些遗漏add(x,z);add(y+1,-z);这样的话,说不定x+
weixin_30920091
·
2020-08-19 07:06
二维
树状数组
模板(区间修改+区间查询)
二维
树状数组
模板(区间修改+区间查询)例题:JOIOI上帝造题的七分钟一共两种操作:\(L\x_1\y_1\x_2\y_2\d\):把\((x_1,y_1)\),\((x_2,y_2)\)这个矩形内所有元素加
weixin_30954265
·
2020-08-19 07:35
线段数入门————单点修改+区间查询
1.什么是
线段树
:
线段树
首先是一种二叉搜索树,为什么说是“线段”树呢?
weixin_30624825
·
2020-08-19 07:30
线段树
(单点修改,区间查询)
#include#include#include#include#include#include#include#include#includeusingnamespacestd;intn,m;intk=10005;structNode{intq;}tree[4*k];inta,b,t;voidxg(intl,intr,introot){if(ra)return;if(r==l){tree[roo
算法爱好者
·
2020-08-19 07:22
✔「
树状数组
」单点修改区间查询、区间修改单点查询、 区间修改区间查询 ☑全
单点修改区间查询#include#include#include#include#defineLLlonglong#defineN500006#definelowbit(x)x&-xusingnamespacestd;inlineLLwread(){charc(getchar());LLwans(0),flag(1);while(c'9'){if(c=='-')flag=-1;c=getchar(
violin-wang
·
2020-08-19 07:50
树状数组
区间修改,单点查询(
树状数组
)
#include"stdio.h"#include"iostream"#include"stdlib.h"#include"math.h"usingnamespacestd;#defineMAXN5000006inttree[MAXN],a[MAXN];intn,m,q,w,e,r;intlowbit(intx){returnx&(-x);}intSum(intx){ints=0;while(x>
to_more_excellent
·
2020-08-19 07:34
数据结构
树状数组
线段树
模板 | 区间修改,区间求和,区间查询最值
一、
线段树
简介
线段树
本质上是一个二叉树,除了叶子节点之外,其余的父亲节点都有两个儿子;学过数据结构中的二叉树都知道,儿子节点与父亲节点下标的关系;((下标从1开始)设父亲节点下标为p,则左儿子下标为2*
禾硕。
·
2020-08-19 07:18
[模板]单点修改,区间查询——java
package模板;importjava.util.Arrays;importjava.util.Scanner;publicclass
线段树
{ //单点修改,区间查询 staticintsum
A–lex
·
2020-08-19 07:42
模板
二维
树状数组
(区间修改,单点查询)
题目链接:http://poj.org/problem?id=2155好像不管是几维都和一维原理差不多,多了一个维度也就多了一层循环而已(QAQ)#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusingnamespaces
llmxby
·
2020-08-19 07:37
FZU2297 Number theory (
线段树
单点修改、区间查询)
题意初始x=1,下面有Q次操作。操作Myi:x=x*yi操作Ndi:x=x/ydi每次操作后都输出x的值。保证每次di的值都不一样。分析考虑暴力维护:用一个数组y[Q+1]记录每个yi的值,初始化yi的值都为1。对于操作Myi,将第i个值改为yi。对于操作Ndi,将第di个值除以ydi,因为每次di的值都不一样,故除以ydi后的ydi的值为1。每次都输出y[1][y2]…*[yQ]%M即可。时间复
EnjoyingAC
·
2020-08-19 07:02
数据结构
线段树
HDU 4819 Mosaic(二维
线段树
单点更新+区间查询+自己的写法模板)
TheGodofsheepdecidestopixelatesomepictures(i.e.,changethemintopictureswithmosaic).Here'showheisgonnamakeit:foreachpicture,hedividesthepictureintonxncells,whereeachcellisassignedacolorvalue.Thenhechoos
i-unique
·
2020-08-19 07:31
ACM
数据结构
线段树
PPT1 例1
读入/Input:不详20//桌面总宽度4//盒子数量15387101319输出/Output:影子的总宽度是多少(15)题解/solution:给
线段树
每个节点增加一个域cover。
peter_zhu01
·
2020-08-19 07:14
PASCAL
线段树
【模板】二维
树状数组
(单点修改,区间查询)
题目:二维
树状数组
(单点修改,区间查询)代码:#includeusingnamespacestd;constintMax=5000;intn,m,a,b,c,d,x,tag;intsum[Max][Max
sszxzzh
·
2020-08-19 07:35
模板
树状数组
(单点修改&&区间查询、区间修改&&单点查询、区间修改&&区间查询)
今天看了一下
树状数组
,个人认为
树状数组
是一个很优美的数据结构,虽然看的并不是很懂。。。一些简单的知识就不讲的,请自行百度。。不过还是讲一些最基础的吧。
ityanger
·
2020-08-19 07:04
#
数据结构
笔记
#
算法笔记
树状数组
(单点修改区间查询)
lowbit(重要!)lowbit是用来取出二进制中最低位数的1所代表的二进制的值。只需要记下代码就行了intlowbit(intx){returnx&(-x);}add单点修改前缀和将一个树的最子节点修改,则其父节点也需要更改,父父节点也需要修改。x=x+lowbit(x)就是用来取出其父节点的。voidadd(intx,intk){while(x0){cnt+=sum[x];x=x-lowbi
johnwayne0317
·
2020-08-19 06:46
数据结构
二维
树状数组
1:单点修改,区间查询
题目描述思路update是从(x,y)处往下更新,sum是求(x,y)到(0,0)的和lowbit(x)表示二进制下x的最低位的1与它后面的0构成的树,那么对于奇数来说就是1x123456二进制11011100101110lowbit(x)121412假设6x6的数组,更新(2,3)也就是更新标绿的表格求sum(5,3)的值就是求标蓝表格的和代码#include#includeintn,m;lon
dizong4589
·
2020-08-19 06:20
一.二维 单点修改,区间查询【最好学完
树状数组
的基本操作再来】
题解:这是一道灰常简单的模拟题,首先将原数组改为
树状数组
,写好模板代码,碰到一个直接输处即可,注意输出i——j为闭区间,所以答案应为sum(i)-sum(j-1),此处sum是前缀和。
lpc大菜逼
·
2020-08-19 06:41
树状数组
算法
树状数组
单点更新和区间更新,二维数组poj2155(区间更新,单点查询)(已加入区间修改区间查询)
普通的
树状数组
C[i]=a[i]+a[i-1]+...a[i-2^k+1]+...+a[1];但是所有
树状数组
都是向上更新,向下求和。
Kblacksmith
·
2020-08-19 06:31
树状数组
acm
上一页
51
52
53
54
55
56
57
58
下一页
按字母分类:
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
其他