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
-----线段树
线段树
目录数据结构--
线段树
一、定义二、性质三、基本操作0.结构体1.建树2.单点查询3.单点修改4.区间修改5.区间查询6.总四、题目单点修改、区间查询模板区间修改、区间查询模板区间修改、单点查询五、鸣谢学姐的
yu__xuan
·
2019-06-19 21:00
UOJ295 ZJOI2017
线段树
ProblemUOJSolution问题的关键在于如何定位广义
线段树
上的一段区间[l,r][l,r][l,r]所对应的节点,可以考虑zkw
线段树
的方法,先找到l−1l-1l−1和r+1r+1r+1所对应的节点
Rayment_cc
·
2019-06-19 13:10
线段树
好题集
UOJ
HDU - 1542 Atlantis(区间修改,扫描线,离散化)
而对于每一段的宽,就是多个矩形的实际覆盖距离,这一部分用
线段树
的区间覆盖来维护。如果扫到的这条边是某矩形的下边,则往区间插入这条线段如果扫到的这条边是某矩形的上边,则往
stormjing7
·
2019-06-19 10:41
解题报告
HDU
线段树
Codeforces 1181D Irrigation 离线+权值
线段树
求第k大
传送门思路:首先根据举办次数从小到大排序,然后对询问进行离线(按照ki的权值从小到大排序),对于每个k询问,我们去看是否满足cnt[i+1].num*i-sum[i]k则将cnt[i+1].id更新到权值
线段树
中
Frozensmile
·
2019-06-18 19:36
线段树
离线
线段树
模板1
#includeconstintMAXN=2e5+5;typedeflonglongll;//次模板一般用于大数据,开longlongintnumbers[MAXN];structnode{intl=0,r=0;//左右结点intval=0;//该点的值}tree[MAXN*4];///*模板大意:对n个数,进行m次操作,操作有两种情况,修改某一结点的值,或者查询某个区间的和.*/voidbuil
始七月上
·
2019-06-18 10:48
算法
树状数组
一般来说树状数组能解的题目,
线段树
都能解,但是
线段树
能解的问题,树状数组不一定能解。但是树状数组的有点在于方便实现,代码量少。
LSC_333
·
2019-06-15 11:59
数据结构
洛谷P3157 [CQOI2011]动态逆序对(树套树/BIT+权值
线段树
)
题目n(nusingnamespacestd;typedeflonglongll;intread(){intcnt=0;charch=0;while(!isdigit(ch))ch=getchar();while(isdigit(ch))cnt=cnt*10+(ch-'0'),ch=getchar();returncnt;}constintN=1e5+10;structnode{intl,r,nu
Code92007
·
2019-06-13 21:22
线段树(权值线段树)/树状数组
ContestHunter4302 Interval GCD(差分+
线段树
+gcd性质)
题目长度为n(n#include#include#include#includeusingnamespacestd;typedeflonglongll;constintmaxn=5e5+10;intn,m,l,r;charop[5];//tr[]:维护差分数组前缀和//gcd[]:维护差分数组区间gcdllres,v,a[maxn],tr[maxn],gcd[maxn*5];voidadd(int
Code92007
·
2019-06-13 21:06
线段树(权值线段树)/树状数组
差分
创建一个自己
线段树
写在前面本系列代码Gitee地址为点击这里实现的方法/***返回区间内的元素个数**@return区间内的元素个数*/publicintgetSize();/***获取index索引位置的元素**@paramindex索引*@return该索引位置的元素*/publicEget(intindex);/***返回区间[queryL,queryR]的值**@paramqueryL左边界*@paramq
六寸光阴丶
·
2019-06-13 17:30
求区间不同数的个数
在线做法:(主席树)参考自:https://blog.csdn.net/aozil_yang/article/details/65448883对于每一颗
线段树
我们只保留到目前为止每个数字最后出现的位置,
cy41
·
2019-06-12 22:28
线段树
SD省队集训2019Day9之“轻拍翻转小魔女”
轻拍翻转小魔女(flipflap)([Ynoi2014]置身天上之森)题目描述
线段树
是一种特殊的二叉树,满足以下性质:每个点和一个区间对应,且有一个整数权值;根节点对应的区间是[1,n];如果一个点对应的区间是
water_lift
·
2019-06-09 16:00
bzoj 3211: 花神游历各国(区间开根号)
题目链接:bzoj3211题意:支持两种操作将区间[L,R]内的数字都开根号查询区间[L,R]内的数字的和
线段树
区间更新,只不过这次我们可能需要修改到单点,对于一个int范围内的非零数字来说最多开六七次就会达到
cy41
·
2019-06-06 20:29
线段树
2019.06.01 【NOIP提高组】模拟 A 组
T1:排序+
线段树
维护。首先按r从小到大排序。设f[i]表示从i开始最多往后跳多少步,那么当前答案就是f[l~r]的最大值。然后我们每次后移r时都要维护f。
chiyankuan
·
2019-06-05 20:59
【NOIP提高组】模拟A组
2019上半年赛事总结
从北京实习结束后回来立马赶上了西安邀请赛,却因为杜教筛半桶水水平,开场被B题教育了,最后两小时开错了题,没做最擅长的
线段树
去跟榜做了J,然后罚座两小时,最终银牌滚粗,随后开始了南昌邀请赛之旅,因为我的莽撞
一只叫橘子的猫
·
2019-06-03 11:38
比赛----总结
BZOJ-3531 luogu-P3313 树链剖分 +
线段树
+ 动态开点
题目链接luogu-P3313题意:中文题思路:用树链剖分处理图后,可对每一个宗教用一颗
线段树
维护其区间内的和以及最大值,由于内存有限,故使用动态开点从而节省空间(本来花了大概一小时就完成了,结果把区间查询写成了单点查询
CoAAColA
·
2019-05-28 02:58
线段树
树链剖分
静态区间第K大 (主席树) Kth number HDU - 2665
给出一个序列,询问n次,问L,R区间第k大的数/*静态区间第k小/大主席树,也叫可持久化
线段树
学习的前提条件是权值
线段树
,也就是计算区间内有几个数的tree,可持久化也就是复制上一棵树的结点,然后进行修改
Galaxy_5688
·
2019-05-27 18:05
HDU
The 2019 ACM-ICPC China Shannxi Provincial Programming Contest E.Tree(树链剖分+
线段树
区间or/and/xor)
题目n(n#include#include#include#includeusingnamespacestd;constintmaxn=1e5+10;typedeflonglongll;structedge{intto,nex;}e[maxn*2];structnode{intcs[32],cov[32];node(){for(inti=30;i>=0;--i)cs[i]=0,cov[i]=-1;
Code92007
·
2019-05-27 16:28
2019年规划
图论最短路:生成树:图的遍历:二分:动态规划区间:序列:状态压缩:背包:数学问题博弈论:快速幂:组合数学:高斯消元:搜索广度搜索:深度搜索:记忆化搜索:贪心数据结构队列:栈:哈希表:树:树—平衡树:树—
线段树
学渣DJW
·
2019-05-25 11:24
规划&总结
线段树
模板
单点更新区间查询,维护最小值#includeusingnamespacestd;constintinf=0x3f3f3f3f;constintmaxn=110;inta[maxn];//原数组intminv[4*maxn];//维护最小值/*单点更新区间查询*///维护voidpushup(intid){minv[id]=min(minv[id>1;build(id>1;if(x>1;intans
fishers
·
2019-05-24 22:00
【算法日积月累】18-高级数据结构:
线段树
高级数据结构:
线段树
-1“
线段树
”实现了高效的“数组区间查询”与“数组区间更新”“
线段树
”(segmenttree)又称“区间树”,是一个高级数据结构,应用的对象是“数组”。
李威威
·
2019-05-24 17:18
洛谷 P2629 好消息,坏消息 单调队列
这道题因为是一个环首先把他,连在一起,然后求一个前缀和sum;对于每一个点k如果满足题目要求,则在sum[k]到sum[k+n-1],这个范围内,最小值减去sum[k-1]应该是大于0的所以就可以用单调栈维护了,当然
线段树
哪些也可以
KXL5180
·
2019-05-23 16:37
ACM题解
洛谷 P1714 切蛋糕 单调队列或者区间最值
或者i(这个题目叙述问题,没有说不能不吃);然后对于每一个i来说,sum[i]的大小是固定的,于是就是区间i-m到i-1的最小值了,然后求每一个i对应的最大值的最大值;这样就可以用用单调队列维护,或者,
线段树
KXL5180
·
2019-05-23 15:08
ACM题解
POJ - 3171 Cleaning Shifts(DP+
线段树
优化)
思路:首先把不在到时间段干活的牛给去除,在把剩下的牛按照从小到大排序,表示从到都有牛干活的最下花费,挨个遍历每个时间段,有: 其中找最小值部分可以用
线段树
来优化
hahahahhahello
·
2019-05-21 00:00
ACM-数据结构
ACM-动态规划
LOJ#557. 「Antileaf's Round」你这衣服租来的吗(FHQ Treap+珂朵莉树)
题面传送门题解好吧我是不太会复杂度分析……我们对于每种颜色用一个数据结构维护(比方说
线段树
或者平衡树,代码里写的平衡树),那么区间询问很容易就可以解决了所以现在的问题是区间修改,如果区间颜色相等直接\(
bztMinamoto
·
2019-05-20 21:00
线段树
区间更新 费马小定理|魔豆传奇
程序设计:魔豆传奇《魔豆传奇》是2004年的一部动画片。里面有很多奇怪的魔豆,具有奇特且强大的能力。偶然间,蒜头君获得了一排已经发芽的魔豆,每株的最初高度为ai。蒜头君每天都会选择对一段区间的魔豆浇水,或查看一段区间魔豆的高度和。魔豆每一次被浇水,其高度会变为之前高度的立方。也就是说,蒜头君有两种操作:1.使序列中下标在区间[L,R]中的每个数变成自己的立方。2.查询序列中下标在区间[L,R]中的
fishers
·
2019-05-19 20:00
LightOJ 1339 Strongest Community
中连续出现次数最多的数出现的次数,如[1,1,2,2,2,2,3,3,3][1,1,2,2,2,2,3,3,3][1,1,2,2,2,2,3,3,3]中连续出现次数最多的是2,次数为4思路这题显然可以直接
线段树
区间合并
Apale_7
·
2019-05-18 23:48
数据结构
POJ 2796 Feel Good 单调队列
这题乍一看还以为是
线段树
的题,原来是单调队列。首先两遍单调队列,分别求每个元素,左边最近的小于该元素的那个值的下标,右边最近的小于该元素的值的下标,复杂度O(n)。
Glasier
·
2019-05-15 19:31
Segment Tree Beats
(GSS2)在线不是很好做,我们离线下来,把询问按rrr升序排序,
线段树
上维护每个lll到rrr的和。
DT_Kang
·
2019-05-14 20:04
线段树
【学习笔记】主席树
1、前置知识
线段树
、权值
线段树
、前缀和思想等2、引入主席树模板题约定:后面将第k小/大说成kthkthkth解决什么问题:给定一段区间,静态求区间kthkthkth想想方法:暴力:对于每一个询问,排个序
ModestCoder_
·
2019-05-11 14:27
学习笔记
主席树
数据结构与算法面试题总结
目录1树定义1.1二叉树1.2满二叉树1.3完全二叉树1.4平衡二叉树/AVL树1.5二分搜索树1.6二叉堆1.7
线段树
1.8Trie字典树1.9红黑树2多叉树转成二叉树3AVL树的旋转操作4HashMap
天瑕
·
2019-05-09 22:14
数据结构与算法
面试题总结
可持久化数组(知识整理+板子总结)
概念可持久化数组,基于可持久化
线段树
即主席树主席树是在叶子节点存入了值出现的次数,可持久化数组就是把叶子结点改成了对应数组中位置的值主席树可以开局不建root[0](默认root[0]=0,root[0
Code92007
·
2019-05-09 16:17
知识点总结
CF484E. Sign on Fence(主席树+二分)
思路将木板从大到小排序,建动态开点
线段树
维护区间最长子段,于是就可以二分高度,判断这个高度在[l,r]区间中存不存在长度大等于w的子段。
Seast
·
2019-05-09 01:00
bzoj2006: [NOI2010]超级钢琴(主席树+优先队列)
bzoj2006:[NOI2010]超级钢琴bzoj2006:超级钢琴思路对所有前缀和建权值
线段树
,先将所有右端点对应的最大的左端点丢进优先队列里,每次将优先队列队首的区间取出来后,将rk[r]++,从这个右端点对应的主席树区间中找到排名第
Seast
·
2019-05-09 01:00
CF787E. Till I Collapse(主席树
思路倒序建主席树,记录这个数上一次出现是什么时候,以坐标为主席树的根节点,建坐标
线段树
,对于每个数的位置+1,上一次出现的位置-1,这样树上值为1的坐标点x上的数a[x]都是不相同的,这样就可以枚举左端点去
Seast
·
2019-05-08 22:00
bzoj3932: [CQOI2015]任务查询系统(主席树)
bzoj3932:[CQOI2015]任务查询系统(主席树)[CQOI2015]任务查询系统思路按时间顺序建权值
线段树
,对于每个三元组,在Si的树上Pi的位置+1,Ei+1的树上Pi的位置-1,这样对于每次询问的时间区间
Seast
·
2019-05-08 22:00
POJ - 2763 Housewife Wind (树链剖分-边权和)
树上每条边都有时间花费,现在存在两种操作1、0u:查询这个人从他当前的点到点u的时间花费2、1iw:将第i条路径的时间花费更改为w分析:树链剖分,维护边权,用每条边深度较大的节点记录该边的边权,将边权改为点权,之后即可用
线段树
单点更新
_Carrot
·
2019-05-07 21:00
HDU - 3966 Aragorn's Story(树链剖分)
分析:点权树链剖分,
线段树
维护区间和即可,单点查询,区间更新代码:#includeusingnamespacest
_Carrot
·
2019-05-07 21:00
uva12299 - RMQ with Shifts
链接https://vjudge.net/problem/UVA-12299题解
线段树
单点修改+区间查询+简单字符串处理写完代码只用了191919分钟,但是最后的总用时是505050分钟?
*ACoder*
·
2019-05-07 21:16
#
线段树
1036: [ZJOI2008]树的统计Count(树链剖分 - 点权最大值&和)
进行以下的一些操作I.CHANGEut:把结点u的权值改为tII.QMAXuv:询问从点u到点v的路径上的节点的最大权值III.QSUMuv:询问从点u到点v的路径上的节点的权值和分析:树链剖分入门题,
线段树
维护点权最大值
_Carrot
·
2019-05-04 22:00
洛谷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说明对于
Estretali
·
2019-05-03 14:00
线段树
扫描线
大佬的博客看了好几天,感觉自己看懂了。https://blog.csdn.net/riba2534/article/details/76851233这个大佬内部有图,可以手动纸上跟着画一下加深理解扫描线可以水平扫,也可以垂直扫,这里我说一下垂直扫吧。题目给出的坐标为浮点数,那么我们将所有的y坐标排序离散化后,假设共有m个不同的坐标值,设为val[1~m]。那么这m个不同的y值就可以将一条垂直x轴的
cy41
·
2019-05-02 16:33
线段树
【
线段树
入门题目集】
1.hdu1166单点修改、区间和查询注意:用位运算符的话要加最新标准的#include头文件,否则编译错误,数组开4*n大小(还是不够熟练)#include#include#include#include#include#include#include#include#include#definemaxn4*50005//开四倍!!typedeflonglongll;usingnamespace
_奶酪
·
2019-05-02 00:02
线段树
线段树
hdu1542 Atlantis(
线段树
-扫描线求面积并)
题目给定n(n#include#include#include#include#includeusingnamespacestd;constintmaxn=2005;intcas,n,now;doubleans;doublex[maxn];doublex1,y1,x2,y2;structnode{intl,r;doublelen;//每个节点都维护一个线段长度intcnt;//当前有cnt条重叠的
Code92007
·
2019-05-01 22:56
线段树(权值线段树)/树状数组
2019.05.01【NOIP普及组】模拟赛C组 解题报告
后来想到用
线段树
优化,但是要进行大量的单点查询,所以比原算法还要慢。正解:我们可以开三个栈,记录左边界,右边界以及连续的值,最后再将连续区间合并即可,时间复杂度是线性的。
alpha202
·
2019-05-01 20:35
动态规划
poj3263 Tallest Cow(
线段树
区间修改+单点查询/差分)
题目N(N#include#include#include#include#includeusingnamespacestd;typedeflonglongll;constintmaxn=1e4+10;typedefpairP;intN,I,H,R;intl,r;intd[maxn];mapvis;intmain(){scanf("%d%d%d%d",&N,&I,&H,&R);//区间修改最后每个
Code92007
·
2019-05-01 16:33
线段树(权值线段树)/树状数组
差分
HDU 6070 Dirt Ratio(
线段树
、二分)
http://acm.hdu.edu.cn/showproblem.php?pid=6070题解首先不难看出错误率是单调的,那么我们可以直接二分答案x,某个区间的错误率=区间数的种类cnt/区间长度r-l+1,变成:cnt+l*x4#defineiter::iterator5usingnamespacestd;6typedeflonglongll;7typedefpairP;8#definepbp
SnowLove
·
2019-04-28 18:00
学习笔记--数据结构
数据结构数据结构的分类线性结构:数据、栈、队列、链表树结构:二叉树、二分搜索树、AVL、红黑树、Treap、Splay、堆、Trie(前缀树)、
线段树
、K-D树、并查集、哈夫曼树。。。
王心森
·
2019-04-28 17:00
2019年第16届ICPC浙江省省赛 解题报告
AVerticesinthePocket
线段树
+二分,待补BElementSwapping如果(i,j)是答案,那么容易得到两式相除得到a[i]+a[j],然后针对右式是否为0的情况讨论一下,再根据第一个式子判断一下
LSD20164388
·
2019-04-27 20:19
比赛总结
【DFS序+
线段树
】CF1132G Greedy Subsequences
【题目】CF给定一个长度为nnn的序列aaa,问每个长度为KKK的连续区间的最长贪心上升子序列有多长。贪心上升子序列是指每个数找到它后面第一个比它大的数作为后继子序列。n≤106n\leq10^6n≤106【解题思路】开始看错题了,以为就是区间最长上升子序列,然而正确的题目似乎性质更显然了。我们按题意进行连边会形成一个森林,再新建一个节点作为超级根。那么实际上对于每个询问的区间来说,对应了树上的一
Dream_Lolita
·
2019-04-27 11:13
数据结构-线段树
51Nod 1571 最近等对(
线段树
、离线查询)
#problemId=1571题解题目要求的最近点对不太符合区间加合性,所以不能直接用
线段树
在线做。
SnowLove
·
2019-04-26 21:00
上一页
120
121
122
123
124
125
126
127
下一页
按字母分类:
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
其他