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.1基本数据结构1.数组2.链表,双向链表3.队列,单调队列,双端队列4.栈,单调栈1.2中级数据结构1.堆2.并查集与带权并查集3.hash表自然溢出双hash1.3高级数据结构1.
树状数组
2.
线段树
AlanCong
·
2024-02-07 13:34
Hello ”树“先生
20200929文章末尾已更新最小生成树、
线段树
等内容前言首先思考这样一个问题:为什么有树?因为树的光合作用可以吸,呸,因为分层次管理(增删改查)数据(在很多场景下)有着更高的
TechGuide
·
2024-02-06 16:41
秋招计算机知识点总结
二叉树
数据结构
算法
java
python
线段树
简单使用 P4588 数学计算 总结
传送门https://www.luogu.com.cn/problem/P4588心路历程一开始确实没想到能切换成
线段树
,毕竟它一无区间二无线段,我第一眼看到题以为是一个大大大模拟,但是这里不能用逆元(
why_not_fly
·
2024-02-06 02:31
算法
扫描线(板子整理) 矩形面积并与矩形周长并
前置知识:离散化,
线段树
基础即可,难度不大,重在思维矩形面积并扫描线,矩形面积并(洛谷)https://www.luogu.com.cn/problem/P5490为了归并区间中的关系(每一段都是连起来的
why_not_fly
·
2024-02-06 02:30
算法
c++
数据结构
树状数组
中差分应用(P3372
线段树
、P4514上帝造题的七分钟)
图片来源于B站董晓老师,思路来源自《算法竞赛》差分主要分为一维差分和二维差分,差分的应用重要在于推导1.一维差分(P3372【模板】
线段树
1)省略推导过程,精髓在于维护两颗
树状数组
(d代表差分,query
why_not_fly
·
2024-02-06 02:00
算法
c++
数据结构
线段树
的历史区间最值和区间抹平操作问题(P6242
线段树
3)
P6242
线段树
3https://www.luogu.com.cn/problem/P6242大致题意:维护一个数组,支持一下五种操作:区间加减区间抹平(使所有大于v的数变成v)即进行min操作区间求和区间最值区间历史最值整道题的重难点在于两个
why_not_fly
·
2024-02-06 02:00
算法
学习笔记3:扫描线
线段树
的应用
前置知识:
线段树
F-Apples(atcoder.jp)分析:根据题意,我们知道需要维护一个大矩阵(一维是空间,一维是时间)中的一个固定大小区域(一维是盆的长度,一维是盆的耐久/时间)的最大值,初见时认为是二维前缀和
rrt517
·
2024-02-06 02:30
学习
笔记
数据结构
算法
「学习笔记」
线段树
目录1.建立+单点更新+查询(1)建树模板(2)单点更新模板(3)查询模板(4)例题2.区间更新(1)区间更新模板(2)例题3.维护可和信息(1)常见的可和信息(2)例题1.建立+单点更新+查询(1)建树模板#definelsp>1;build(lson);build(rson);push_up(p);//向上更新}//调用build(1,n,1);(2)单点更新模板voidupdate(intx
ぺdepths°
·
2024-02-06 02:00
模板
数据结构
数据结构
线段树
学习笔记:
线段树
套
线段树
(二维
线段树
)
看了董晓老师的博客,但是没找到洛谷题,实在不想读英文(不是,写点理解巩固一下这方面的知识;前置知识:具有
线段树
的基础,并有一定理解(能一定程度上的运用),感觉就能较为轻松的看懂Mobilephones-poj1195http
why_not_fly
·
2024-02-06 02:29
学习
笔记
★
线段树
(Segment Tree): 原理、实现和应用
引言
线段树
是一种用于处理区间查询的数据结构,特别适用于需要高效支持区间修改和区间查询的场景。它将一个数组表示的区间划分为一系列小区间,并将每个小区间的信息存储在树中。
平常心-辉
·
2024-02-06 01:13
高级数据结构
算法
数据结构
c++
7.29训练总结
CodeForces-1609E这种使得整个串不包含子串’abc’的题目,发现可以用
线段树
维护#includeusingnamespacestd;constintmaxn=1e5+5;#definelsonnow
andyc_03
·
2024-02-05 21:39
算法
acm
树链剖分
【算法介绍】树链剖分就是将树分割成多条链,然后利用数据结构(
线段树
、
树状数组
等)来维护这些链。
andyc_03
·
2024-02-05 21:38
树链剖分
P6166 题解
SolutionSolution#1涉及到撤销操作,考虑使用
主席树
。直接套模板。Solution#2注意到我
主席树
模板只有24分的好成绩,考虑使用别的方法。注意
Cui2010___
·
2024-02-05 19:43
c++
算法
数据结构 -
线段树
1.预制值:构建的数组为,nums:【2,5,1,4,3】区间和问题,假设求区间[1,3]的和2.建树2.1构建
线段树
数组int[]segT=newint[4*n](为什么数组大小是4*n???
可乐manman
·
2024-02-05 15:53
数据结构
数据结构
java
算法
【暖*墟】#洛谷网课1.30# 树上问题
树上倍增基环外向树DPDFS序与欧拉序树链剖分可以参考wjyyy的https://www.wjyyy.top/421.htmlwjyyy是这样说的:树链剖分是一种优化,将树上最常经过的几条链划为重点,用
线段树
来优化区间修改和查询
Christy2222
·
2024-02-05 01:28
数据结构与算法
树状数组
复习
基本原理
树状数组
的原理简单来说就是利用二进制拆分区间我们可以对一个数进行二进制分解,最多分解成log(x)个数,同样我们可以对[1,n]这个区间进行分解。
wa的一声哭了
·
2024-02-04 17:52
数据结构
算法
算法
数据结构
spring
boot
django
fastapi
sql
flask
树状数组
相关
前置细节,得到转二进制后,从右往左数第一个1与之前所有的0构成数
树状数组
最终形成如上图结构维护的是的信息,如即到上层,包含当前区间的大区间,如即到同一层的前一个,与当前区间无关的另一同等大小的区间的信息是由整合的如维护区间最大值
Xing_ke309
·
2024-02-04 11:21
算法
java
数据结构
图论练习3
内容:过程中视条件改变边权,利用
树状数组
区间加处理卯酉东海道题目链接题目大意个点,条有向边,每条边有颜色和费用总共有种颜色若当前颜色与要走的边颜色相同,则花费为若当前颜色与要走的边颜色不同,则花费为,且颜色变为边的颜色出发时可以自定义颜色问的最小花费解题思路选边时
Xing_ke309
·
2024-02-04 11:51
图论
算法
数据结构
算法42:天际线问题(力扣218题)---
线段树
218.天际线问题城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回由这些建筑物形成的天际线。每个建筑物的几何信息由数组buildings表示,其中三元组buildings[i]=[lefti,righti,heighti]表示:lefti是第i座建筑物左边缘的x坐标。righti是第i座建筑物右边缘的x坐标。heighti是第i座建筑物的高度。你可
街头小瘪三
·
2024-02-04 07:01
算法
数据结构
算法
杭电HDU 3974Assign the task dfs出父包子的数组->知道管辖范围,
线段树
本题不讲
线段树
原理,会
线段树
后来看即可。思路:我们建好树,对树dfs。
DBWG
·
2024-02-04 05:47
HDU
深度优先
算法
递推化简+
线段树
区间维护,P6477 [NOI Online #2 提高组] 子序列问题
一、题目1.1题目背景2s512M1.2题目描述给定一个长度为nnn的正整数序列A1A_1A1,A2A_2A2,⋯\cdots⋯,AnA_nAn。定义一个函数f(l,r)f(l,r)f(l,r)表示:序列中下标在[l,r][l,r][l,r]范围内的子区间中,不同的整数个数。换句话说,f(l,r)f(l,r)f(l,r)就是集合{Al,Al+1,⋯ ,Ar}\{A_l,A_{l+1},\cdots
EQUINOX1
·
2024-02-03 16:49
OJ刷题解题报告
算法
c++
数据结构
线段树
算法41:掉落的方块(力扣699题)----
线段树
题目:https://leetcode.cn/problems/falling-squares/description/在二维平面上的x轴上,放置着一些方块。给你一个二维整数数组positions,其中positions[i]=[lefti,sideLengthi]表示:第i个方块边长为sideLengthi,其左侧边与x轴上坐标点lefti对齐。每个方块都从一个比目前所有的落地方块更高的高度掉落
街头小瘪三
·
2024-02-03 07:41
算法
数据结构
算法
leetcode
数据结构
扫描线板子 小思路
前言:本板子是结合我的
线段树
1板子和OIWIKI的扫描线写成的类。
DBWG
·
2024-02-02 18:16
板子
算法
扫描线
CDQ分治处理多维偏序基础
CDQ分治处理多维偏序基础多维偏序问题逆序对的两种解法逆序对的分治解法逆序对的
树状数组
解法二维偏序的解法二维偏序的分治解法二维偏序的
树状数组
解法三维偏序的解法三维偏序的分治套分治解法三维偏序的CDQ套
树状数组
的解法
罗博士
·
2024-02-02 16:35
ACM/ICPC
ACM分治
Count on a tree(树上路径第K最值=LCA+可持久化
线段树
)
id=2588思路:每个节点上建立一棵维护权值的可持久化
线段树
(维护从根到这个节点的权值),以他的父节点为历史版本建立,每次查询时直接在
线段树
上二分即可,所以只需要联立三棵可持久化
线段树
T[u],T[v
AmadeusChan
·
2024-02-02 15:28
算法整理
10.计算几何11.搜索12.随机化13.其他1、基础数据结构数组链表、双向链表队列、单调队列、优先队列、双端队列栈、单调栈2、中级数据结构堆并查集、带权并查集Hash表自然溢出双Hash高级数据结构
树状数组
线段树
朱三分
·
2024-02-02 01:08
线段树
BIT 求冒泡排序的交换次数
线段树
特别适合与区间相关的运算,比如MRQ(minimumrangequery)求一段区间内的最小值。
小太阳花儿
·
2024-02-01 23:11
1.31学习总结
1.311.
线段树
2.BadHairDayS(单调栈)3.01迷宫(BFS连通块问题+剪枝)(连通性问题的并查集解法)4.健康的荷斯坦奶牛HealthyHolsteins(DFS)
线段树
与
树状数组
线段树
和
树状数组
的功能相似
啊这泪目了
·
2024-02-01 23:52
学习
1.30学习总结
CowLineupG(单调队列):问题转化能力很重要2.发射站(单调队列)map的时间复杂度比较高,能用数组就用数组3.ClosingtheFarmS(并查集的撤回操作)4.求细胞数量(很简单的连通性问题)用
线段树
的方法尝试两道题
啊这泪目了
·
2024-02-01 23:22
学习
C语言-算法-
树状数组
统计和题目描述给定一个长度为n(n≤100000)n(n\leq100000)n(n≤100000),初始值都为000的序列,x(x≤100000)x(x\leq100000)x(x≤100000)次的修改某些位置上的数字,每次加上一个数,然后提出y(y≤100000)y(y\leq100000)y(y≤100000)个问题,求每段区间的和。输入格式第一行111个整数,表示序列的长度nnn。第二行
SpongeG
·
2024-02-01 23:49
算法
c语言
数据结构
每日算法打卡:动态求连续区间和 day 31
文章目录原题链接题目描述输入格式输出格式数据范围输入样例:输出样例:题目分析示例代码
树状数组
线段树
原题链接1264.动态求连续区间和题目难度:简单题目来源:《信息学奥赛一本通》题目描述给定n个数组成的一个数列
一只小松许捏
·
2024-02-01 08:43
算法进阶
算法
蓝桥杯
线段树
树状数组
线段树
2板子 区间加与乘
当对区间即有加操作,又有乘操作时://乘法满足分配率!!,所以乘懒标记可以“攻击”加懒标记//策略:两个标记都安排//当乘标记来临时,对自己和懒标记都乘//假设都没有向后延伸////(特别好的分析:)//当加标记来临时,正常加就好啦,因为乘已经对加处理啦////两个一起来临呢,先乘!!!!!!!!!!!!!!!!!//(乘已经对这部分加处理过了)templateclassST//segmenttr
DBWG
·
2024-01-31 21:23
板子
算法
数据结构
线段树
1板子 区间加
目录
线段树
的结构关系:int作为下标的:longlong作为下标的:类的构造函数写在类最后了,本板子没有将左右下标封装到节点中,而是实时计算的。
DBWG
·
2024-01-31 21:22
板子
算法
数据结构
线段树
前缀和
模板笔记 ST表 区间选数k
当然这里也是可以使用
线段树
进行求解,由于这道题是静态性的,所以我们可以直接使用ST表的数据结构,进行求解即可。
线段树
的方式是可以解决动态性的,也可以解决静态
Angindem
·
2024-01-31 12:44
算法笔记
笔记
面试前需要巩固的算法知识点(自用,更新中)
二、图论1.并查集2.最小生成树3.最短路径三、高级数据结构1.字典树2.跳表3.
树状数组
4.AVL树、红黑树、B+树四、手撕代码相关1.HOT1002.剑指offe
High0.0
·
2024-01-30 22:29
面试知识点(自用)
算法
面试
排序算法
小红统计区间(hard) -
树状数组
+ 离散化
题面分析存在负数不满足单调性,因此无法二分或者双指针,对于每一段符合条件的区间[l,r][l,r][l,r]都有sum[r]−sum[l−1]>=ksum[r]-sum[l-1]>=ksum[r]−sum[l−1]>=k,也就是sum[l−1]usingnamespacestd;usingll=longlong;constintN=2e5+10;lla[N];inttr[N];mapm;voida
.y.a.o.
·
2024-01-30 19:34
算法
c++
树状数组
离散化
什么是
线段树
?
线段树
是用于储存区间信息的数据结构。
线段树
将区间划分为左右子区间进行递归求解,便形成了树形结构。
动态一时爽,重构火葬场
·
2024-01-30 06:03
algorithm
算法
魔法少女LJJ 题解
Solution这题的各种操作,用并查集+
线段树
合并完成。如果你是被题目数据范围晃飞的,建议先去想想怎么做。先介绍一下
一棵油菜花
·
2024-01-30 06:10
题解篇
算法
c++
1.29学习总结
并查集1.并查集2.亲戚3.朋友(STL+并查集)4.集合(质数筛+并查集)5.修复公路(并查集+结构体排序)搜索1.机器人搬重物(BFS)
树状数组
1.
树状数组
1(单点修改,区间查询)2.
树状数组
2(区间修改
啊这泪目了
·
2024-01-30 02:09
学习
风信子(
线段树
)
有一个长为nnn的序列aaa。定义一个合法二元组(i,j)(i,j)(i,j)需要满足i,ji,ji,j为整数,且i≤ji\leji≤j。它的分数为ai−aja_i-a_jai−aj。合法二元组(i,j)(i,j)(i,j)在区间[l,r][l,r][l,r]内,当且仅当l≤i,j≤rl\lei,j\lerl≤i,j≤r。有mmm次操作:1lrx:表示将序列中第lll个位置到第rrr个位置都加上x
dygxczn
·
2024-01-28 21:05
算法
2024.1.22 寒假训练记录(5)
上午看着学了下splay树,感觉比树套树好理解多了qaq,树套树可能就放一会儿了,现在对我来说难度有点大了,先把
主席树
玩儿好吧。
Texcavator
·
2024-01-28 20:11
2024寒假训练记录
算法
2024.1.21 寒假训练记录(4)
花了大半天学了树套树(
树状数组
套
主席树
部分),题目还没有完全做完,明天继续做完剩下的一题和再往后学一下
线段树
套平衡树,代码能力好弱啊啊,今天把离散化写假了导致调了好久好久。
Texcavator
·
2024-01-28 20:10
2024寒假训练记录
算法
2024.1.20 寒假训练记录(3)
今天上午开始做队友Younger发的专题题单,然后发现
主席树
忘记了好多又去复习,代码真的好难调qaq,下午打了集美大学的蓝桥杯校赛,刚拿到题解,明天补题文章目录CF960FPathwalksCF960FPathwalks
Texcavator
·
2024-01-28 20:40
2024寒假训练记录
算法
算法分析与设计
1.
线段树
#include#include#include#include#include#include#includeusingnamespacestd;inttree[1005*4],a[1005
不爱睡觉不爱起床的小Kiku
·
2024-01-28 06:44
数据结构与算法
算法
c++
开发语言
「蓝桥·算法双周赛」第四场分级赛——小白入门赛
最后两题大概知道考啥,但是完全不会写,第五题应该考的是
树状数组
、
线段树
,第六题是考hash。
Beau_Will
·
2024-01-27 23:59
C/C++
算法
数据结构
c++
c语言
1.17堆模板,黑匣子(对顶堆应用,找动态第i大的数),合并果子(哈夫曼树),荷马史诗(多叉哈夫曼树,补空叶子结点)
二叉堆
树状数组
P3378【模板】堆向上调整唯一,向下调整要看孩子#include#include#include#includeusingnamespacestd;constintmaxn=1e6+3;
CQU_JIAKE
·
2024-01-27 10:09
数据结构与算法(与进阶)
数据结构
算法
[蓝桥学习] 前缀和与差分
前缀和原理特点求区间和如果要实现一边修改一边查询,需要使用树状树组和
线段树
。
Waldeinsamkeit41
·
2024-01-26 08:15
学习
算法基础之
线段树
文章目录
线段树
线段树
线段树
的原理十分简单,但是在代码上会相对复杂一点他也是用来维护一个序列,是一个完全二叉树的形状对于每一个节点是一个结构体structNode{intL,R;intsum;//以和为例
一只小松许捏
·
2024-01-25 23:34
算法进阶
算法
线段树
蓝桥杯
算法基础之
树状数组
文章目录
树状数组
树状数组
树状数组
能解决的最关键的问题就是能够O(logn)O(\logn)O(logn)内,给某个位置上的数,加上一个数,或者求前缀和他和前缀和数组的区别就是,
树状数组
支持修改原数组的内容
一只小松许捏
·
2024-01-25 23:59
算法进阶
算法
数据结构
树状数组
蓝桥杯
你能回答这些问题吗——
线段树
给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1xy,查询区间[x,y]中的最大连续子段和。2xy,把A[x]改成y。对于每个查询指令,输出一个整数表示答案。输入第一行两个整数N,M(N≤500000,M≤100000)。第二行N个整数A[i](−1000≤A[i]≤1000)。接下来M行每行3个整数k,x,y,k=1表示查询(此时如果x>y,请交换x,y),k=2表示修改。输出
OLDERHARD
·
2024-01-25 03:33
算法
数据结构
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他