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(logN) 更新时间是O(logN) 1.单点更新 2.成段更新 3.区间合并 */ #include<iostream> using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 const int
·
2015-10-21 11:18
线段树
POJ 3225 Help with Intervals(线段树)
思路:
区间更新
,首先想到的应该是Lazy思想;这题分五种情况: Command Semantics U T S ← S 
·
2015-10-21 11:01
with
ZOJ 3911 线段树
区间更新
查找,求素数个数
PrimeQueryTimeLimit:1Second MemoryLimit:196608KBYouaregivenasimpletask.GivenasequenceA[i]withNnumbers.YouhavetoperformQoperationsonthegivensequence.Herearetheoperations:Avl,addthevaluevtoelementwit
became_a_wolf
·
2015-10-12 21:00
HDU1556 Color the ball 树状数组(
区间更新
单点求值)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556树状数组实现代码如下://树状数组纪录每个点的改变值 #include #include usingnamespacestd; constintM=100010; inta[M],n; intlowbit(inti) { returni&(-i); } voidupdate(inti,intx)
AC_Gibson
·
2015-10-10 14:00
hdu 1698 线段树
区间更新
pid=1698
区间更新
主要运用的是一个lazy操作,就是说每次更新的时候不要更新到底,运用lazy标志将更新延迟到下次更新或者是查询的时候。题意:每次可以修改一段区间的值,最后查询整个的和。
liujc_
·
2015-10-09 13:00
POJ1436 Horizontally Visible Segments 线段树
区间更新
--区间覆盖
题目链接:http://poj.org/problem?id=1436题目大意:有n条平行于y轴的线段,定义两线段可见,当且仅当这两条线段可以被一条水平线链接,且该水平线段不经过其他垂线段;定义三角形线段为两两可见的三条垂线段。现在给出n条线段,问你一共有多少组三角形线段。分析:区间覆盖问题,POJ2777的升级版。两条线段a和b可见,就是说在存在某一区间[l,r],使得在此区间上b直接覆盖a。实
AC_Gibson
·
2015-10-09 12:00
HDU1698 - Just a Hook (线段树
区间更新
)
HDU1698-JustaHook(线段树
区间更新
)题目链接思路线段树的应用,
区间更新
(不用更新到底,更新到终止节点就行,查询时再将所涉及的节点信息push_down下来),颜色的数量用一个数组记录下来就行代码
今天没吃药
·
2015-10-07 23:15
HDU
线段树
POJ2777 Count Color 线段树
区间更新
题目链接:http://poj.org/problem?id=2777题目大意:一个长为L的线段,两种操作:“Cabc”表示将区间[a,b]染成颜色c,“Pab”输出区间[a,b]内一共有多少种不同的颜色。分析:很裸的线段树区间操作的题,注意到颜色种类一共不超过30种,我们可以把它对应到二进制中的每一位。实现代码如下:#include #include #include usingnamespac
AC_Gibson
·
2015-10-07 16:00
HDU1698 Just a Hook (
区间更新
)
JustaHookTimeLimit:4000/2000MS(Java/Others) MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):23644 AcceptedSubmission(s):11839ProblemDescriptionInthegameofDotA,Pudge’smeathookisactuallyth
JoneZP
·
2015-10-06 22:00
POJ3225 Help with Intervals 线段树
区间更新
题目链接:http://poj.org/problem?id=3225题目大意:给出区间操作交,并,补,差,和异或,问你在n次操作之后的区间是什么。分析:这里我们用区间倍增来解决区间的开闭问题,然后对于每一种操作,我们用01表示该段区间是否存在。实现代码如下:/* 倍增区间来解决区间的开闭问题,对于区间操作: U:把区间[l,r]覆盖成1 I:把[-∞,l)(r,∞]覆盖成0 D:把区间[l,r]
AC_Gibson
·
2015-10-06 16:00
poj 3468 A Simple Problem with Integers (线段树
区间更新
+ 树状数组
区间更新
)
@[KACMer]题意:支持两个操作:-求任意任意区间元素的和-对任意
区间更新
元素的值分析:就是对线段树进行
区间更新
的操作,用一个data数组来延迟下推,只有当查到这里的时候才计算.这样让
区间更新
的复杂度变为了
jibancanyang
·
2015-10-06 11:00
线段树
HDU 3911 Black And White (线段树
区间更新
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3911题面:BlackAndWhiteTimeLimit:9000/3000MS(Java/Others) MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):4358 AcceptedSubmission(s):1271Probl
David_Jett
·
2015-10-06 11:00
线段树
HDU
区间更新
poj3468(
区间更新
->记录增量)
思路:题意就是一个区间和的查询与区间增减(减a等同于增加-a);更新的时候只更新到段,等到下次更新或者查询的时候,碰到已经被标记过的,往下顺延就行。一开始int与longlong进行计算时没有转类型,然后就是。。。。
KIJamesQi
·
2015-09-30 19:00
线段树
poj
区间更新
CDOJ 839 东风不与周郎便(线段树写法1)
题意:
区间更新
v,区间查询v解法:线段树,只用两个数组,开4倍,不带懒操作的。。
UESTC_peterpan
·
2015-09-30 13:00
[POJ 2777]Count Color[线段树
区间更新
查询]
题目链接:[POJ2777]CountColor[线段树
区间更新
查询]题意分析:给出一个长为L的长板,划分成L个单元,每个单元初始时颜色为1。
CatGlory
·
2015-09-25 13:00
二进制
线段树
[HDU 1698]Just a Hook[线段树
区间更新
]
题目链接:[HDU1698]JustaHook[线段树
区间更新
]题意分析:屠夫的钩子被分割成n个节,每节初始时都有铜制,铜制每节价值为1.然后给出q个操作,改变段l,r的材料为其它材料。
CatGlory
·
2015-09-22 17:00
线段树
区间更新
hdoj 4325 Flowers 【线段树 + 离散化】【
区间更新
单点查询】
FlowersTimeLimit:4000/2000MS(Java/Others) MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):2497 AcceptedSubmission(s):1239ProblemDescriptionAsisknowntoall,thebloomingtimeanddurationvaries
chenzhenyu123456
·
2015-09-18 22:00
POJ 3255 Help with Intervals (线段树
区间更新
)
题意:给定一个一开始是空集给出一些集合操作求最后得到的集合(按照右端点升序排列输出)分析:把每个操作转化成对线段的操作可以将其中的一些操作分解成其他操作 这里给出一种机智的实现办法分解那种可以自己写写也是比较容易的代码:// //CreatedbyTaoSamaon2015-09-18 //Copyright(c)2015TaoSama.Allrightsreserved. // //#p
lwt36
·
2015-09-18 22:00
线段树
HDU 3794 Assign the task (时间戳dfs序线段树)
给定一棵树表示上下级关系每次对一个人及其所有的下级分配任务他们直接开始新的这个任务 求每次查询当前人的进行任务分析:用dfs序(时间戳)来维护上下级关系,st[x],ed[x]表示包括自己以及所有的下级 然后就是一个普通的
区间更新
单点查询的题目了代码
lwt36
·
2015-09-18 22:00
时间戳
线段树
dfs序
POJ 2528 Mayor's posters (区间离散化、线段树区间染色)
题意:贴海报后贴的会覆盖前面求从Front能看到几张海报分析:区间离散化之后就是一个裸的区间染色啦套用线段树
区间更新
就可以搞啦代码:// //CreatedbyTaoSamaon2015-09-16 /
lwt36
·
2015-09-18 22:00
线段树
ZOJ 1610 Count the Colors (线段树区间染色)
不断对区间染色最后求每种颜色有连续的几段按字典序输出分析:由于是区间染色啦假如将区间全部看成点 [2,3]1 [3,4]2这样的话本来3颜色是1却变成了2会有问题 解决方式将[l,r]
区间更新
的时候用
lwt36
·
2015-09-18 22:00
线段树
ZOJ
POJ 3225 Help with Intervals
当前区间并上区间T2.IT 当前区间交上区间T3.DT 将当前区间和区间T的交去掉4.CT 将T区间中与当前区间的交去掉5.ST DT并上CT思路:可以想到每种操作就是对
区间更新
csdn364988181
·
2015-09-17 23:00
数据结构
ACM
[HDU 4031]Attack[树状数组
区间更新
单点查询]
题目链接:[HDU4031]Attack[树状数组
区间更新
单点查询]题意分析:『基地』组织又要打美国啦,如今他使用一种武器,可以攻打一个范围内的目标。
CatGlory
·
2015-09-17 18:00
树状数组
[POJ 3468]A Simple Problem with Integers[树状数组
区间更新
+求和]
题目链接:[POJ3468]ASimpleProblemwithIntegers[树状数组
区间更新
+求和]题意分析:对特定的连续区间进行更新值并求出特定区间的和。
CatGlory
·
2015-09-16 19:00
树状数组
hdu 3016 Man Down(线段树
区间更新
+dp)
题意:是男人就下100层相信很多人都玩过,这题就是简单的模拟这个游戏。有n块木板,每块木板有4个属性,高h(h>0),左边界,右边界,以及掉落在它上面,获得多少生命值,一个人从最高的木板开始往下跳,初始时生命值为100,问最后掉落到地面能获得的生命值最多为多少(如果途中生命值为≤0,那么这个人会死去),如果无法跳到地面,输出-1。解析:既然只能垂直下落,而且是落在最近的板上,所以其实下落后处于哪个
HelloWorld10086
·
2015-09-16 16:00
HDU
3016
CodeForces 343D Water Tree(dfs序+线段树
区间更新
)
题意:给定一棵树,以及定义了3个操作1、把v点及其子树灌上水2、把v点及v到根的路径去掉水3、询问v点是否有水解析:先对这棵树做一遍dfs序,把树转成dfs_clock,这样每个点就可以对其子树进行
区间更新
HelloWorld10086
·
2015-09-08 21:00
codeforces
343D
POJ2528 Mayor's posters 线段树
区间更新
+离散化
题目链接:http://poj.org/problem?id=2528题目大意:一个长度为10^7的墙上有n张海报,可能相互重叠,告诉你每张海报的宽度(高度都一样)和先后的叠放次序,问没有被完全盖住的海报有多少张(海报端点不会落在瓷砖中间)。分析:如果每个叶子节点都代表一块瓷砖,那么线段树会导致MLE,即单位区间的数目太多。实际上,由于最多有1W张海报,共计2W个端点,这些端点最多把墙分成2W-1
AC_Gibson
·
2015-09-07 18:00
codeforces 482 B Interesting Array 线段树
区间更新
题目链接:http://codeforces.com/problemset/problem/482/B题意:给定n,表示序列的长度,给m个操作,每个操作有l,r,p,表示al~ar按位与起来结果是p。对于这m个操作能不能找出一个满足的序列长度为n。如果可以输出yes,并输出序列。否则no。思路:运用线段树维护每个区间的&结果。假设已经有第一个操作对一个区间进行了,那么现在这个区间的&结果就是这个p
liujc_
·
2015-09-06 11:00
hdu 4747 Mex(线段树
区间更新
+二分)
题目:给出一个序列,mex{}表示集合中没有出现的最小的自然数。然后求∑mex(i,j)。解析:思路转载自cxlove考虑左端点固定时的所有区间的mex值,这个序列是一个非递减序列,这点首先要明白。初始时,先求出mex[j]表示mex(1,j)。(可以用map求出)对于每一个左端点i,就是一个区间求和。(可以利用线段树维护)现在需要考虑的是左端点的改变对于序列的影响。即左端点i,从i->i+1,m
HelloWorld10086
·
2015-09-02 11:00
HDU
4747
NYOJ 123 士兵杀敌(四)(线段树--
区间更新
+单点查询)
士兵杀敌(四)时间限制:2000ms | 内存限制:65535KB难度:5描述南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上,这样,有时候,计算他们中的哪一个人到底有多少军功就是一个比较困难的事情,军师小工的任务就是在南将军询问他某个人的军功的时候,快速的
helloiamclh
·
2015-09-01 20:00
hdu 4614 Vases and Flowers(线段树
区间更新
+二分)
区间更新
,区间求和,这些基本的操作线段树都可以O(log(n))的时间范围内完成。操作2,很显然就是线段树的区间求和,求出[
HelloWorld10086
·
2015-09-01 17:00
HDU
4614
HDU 3577 Fast Arrangement(线段树功能:
区间更新
,查询区间的最大覆盖次数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3577ProblemDescriptionChinesealwayshavetherailwayticketsproblembecauseofits'hugeamountofpassangersandstations.Nowgovermentneedyoutodevelopanewticketsquer
u012860063
·
2015-09-01 10:00
线段树
HDU
区间覆盖
hdu 4902 Nice boat(线段树
区间更新
lazytag·单点更新)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4902NiceboatTimeLimit:30000/15000MS(Java/Others) MemoryLimit:131072/131072K(Java/Others)TotalSubmission(s):1925 AcceptedSubmission(s):867ProblemDescr
theArcticOcean
·
2015-08-31 20:00
线段树
HDU
POJ 2777 Count Color(位运算+线段树+lazy+
区间更新
)
CountColorTimeLimit:1000MS MemoryLimit:65536KTotalSubmissions:39905 Accepted:12034DescriptionChosenProblemSolvingandProgramdesignasanoptionalcourse,youarerequiredtosolveallkindsofproblems.Here,wegetan
helloiamclh
·
2015-08-31 12:00
poj 1823 Hotel(线段树·
区间更新
·lazy tag)
题目:http://poj.org/problem?id=1823HotelTimeLimit: 5000MS MemoryLimit: 30000KTotalSubmissions: 2398 Accepted: 1051DescriptionThe"Informatics"hotelisoneofthemostluxurioushotelsfromGalaciuc.Alotoftourists
theArcticOcean
·
2015-08-29 20:00
线段树
poj
hdu 4578 Transformation(线段树
区间更新
)
题意:给你一个数组,初始值为零,有四种操作(1)”1xyc”,代表把区间[x,y]上的值全部加c(2)”2xyc”,代表把区间[x,y]上的值全部乘以c(3)”3xyc”代表把区间[x,y]上的值全部赋值为c(4)”4xyp”代表求区间[x,y]上值的p次方和1b+c)。对于乘c操作,则变成acx+bc(a−>ac,b−>bc)对于赋值c操作,则变成c,即(a−>1,x−>c,b−>0)这里要解决
HelloWorld10086
·
2015-08-29 09:00
HDU
4578
ZOJ1610 Count the Colors(线段树
区间更新
)
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610题意:一块8000长度的板子,每次覆盖啊(a,b)的格子颜色为c。覆盖的时候不包括两个端点样例解释:50440313420220231121315是5步操作,板子8000长度是不变的输出为:颜色为1的有1段,颜色为2的有1段,颜色为3的有1段代码:#include
xtttgo
·
2015-08-27 11:00
POJ 2155 Matrix (二维树状数组,
区间更新
,点查找)
【题目大意】给你你NxN的矩形区域,开始时每个点的值都为0有两种操作Cx1y1x2y2将区域x1到x2y1到y2围成的矩形区域的值翻转(1变0,0变1);Qx1,y1,输出(x1,y1)的值;典型的
区间更新
chaiwenjun000
·
2015-08-26 15:00
数据结构
树状数组
POJ 3468 A Simple Problem with Integers
//区间求和+
区间更新
//AC代码:#include #include #include usingnamespacestd; #definelsonl,m,rt>1)); sum[rt>1); add
zyx520ytt
·
2015-08-25 15:00
POJ 3468 A Simple Problem with Integers
id=3468题意:给出n个数,2种操作,一种将[l,r]中得数同时加上val,一种是查询[l,r]所有数之和思路:又是
区间更新
和查询(树状数组就可以很好的解决),也是典型的线段树,lazy标志用法和之前有些不一样
csdn364988181
·
2015-08-24 18:00
数据结构
ACM
POJ 3468 A Simple Problem with Integers(
区间更新
+区间求和)
ASimpleProblemwithIntegersTimeLimit:5000MS MemoryLimit:131072KTotalSubmissions:78622 Accepted:24231CaseTimeLimit:2000MSDescriptionYouhaveNintegers,A1,A2,...,AN.Youneedtodealwithtwokindsofoperations.On
helloiamclh
·
2015-08-24 15:00
CodeForces 35E Parade(线段树
区间更新
+离散化)
解析:这题可以用线段树的
区间更新
来做,线段树的每个节点,用于维护X轴区间最高的点,而不是X点上最高的点。由于数据范围比较大[−1e9,1e9],可以先将X轴坐标,离散化。
HelloWorld10086
·
2015-08-24 10:53
线段树
CodeForces 35E Parade(线段树
区间更新
+离散化)
解析:这题可以用线段树的
区间更新
来做,线段树的每个节点,用于维护X轴区间最高的点,而不是X点上最高的点。由于数据范围比较大[−1e9,1e9],可以先将X轴坐标,离散化。
HelloWorld10086
·
2015-08-24 10:00
codeforces
35e
fzu 2105 Digits Count (线段树
区间更新
)
题意:给你N个数,有四种操作。(1)”ANDopnLR”,表示对区间[L,R]内的数全部与opn进行且(&)操作。(2)”ORopnLR”,表示对区间[L,R]内的数全部与opn进行或(|)操作。(3)”XORopnLR”,表示对区间[L,R]内的数全部与opn进行异或(^)操作。(4)”SUMopnLR”,求出区间[L,R]的数的和。解析:这题思路想到,经过多次操作之后的区间应该是一个数字很多相
HelloWorld10086
·
2015-08-23 17:00
FZU
2105
CodeForces 276E Little Girl and Problem on Trees(线段树
区间更新
)
题意:给出一颗树,每次对树进行两种操作。第一种操作:给节点v及距离节点v,d个单位长度以内的节点加x第二种操作:询问节点v当前的值。注意:给出的树中,除了节点1以为,其他节点的度都不会超过2。解析:有了上面这个条件后可以发现,这种树肯定是节点1拖着很多直链的。看了网络上面的题解,理解了可以用两颗线段树来做这题。一棵线段树来维护每层加了多少次,另外一棵线段树来维护每条链加了多少次。首先,做一遍dfs
HelloWorld10086
·
2015-08-22 14:00
codeforces
276e
HDOJ 1698 Just a Hook(
区间更新
)
JustaHookTimeLimit:4000/2000MS(Java/Others) MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):23067 AcceptedSubmission(s):11551ProblemDescriptionInthegameofDotA,Pudge’smeathookisactuallyth
helloiamclh
·
2015-08-21 20:00
hdu1698Just a Hook
线段树
区间更新
菜鸟之伤__int64!!!!
efine_dxq
·
2015-08-21 16:00
C++
线段树
ACM
HDU
HDU1698 Just a Hook
pid=1698题意:给出一段1~n的区间,区间内所有数初始为1,现在可以修改区间内任意一段,问m次修改后区间的和思路:
区间更新
以及区间询问,一个一个点进行修改复杂度太高,这里就使用了lazy标记,当整个区间都更改为
csdn364988181
·
2015-08-20 19:00
数据结构
ACM
POJ——3468A Simple Problem with Integers(
区间更新
)
ASimpleProblemwithIntegersTimeLimit:5000MS MemoryLimit:131072KTotalSubmissions:78332 Accepted:24139CaseTimeLimit:2000MSDescriptionYouhaveNintegers,A1,A2,...,AN.Youneedtodealwithtwokindsofoperations.On
Litter_Limbo
·
2015-08-20 14:00
线段树
poj
HDOJ 1556 Color the ball (线段树+
区间更新
)
ColortheballTimeLimit:9000/3000MS(Java/Others) MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):13040 AcceptedSubmission(s):6519ProblemDescriptionN个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数ab(a
helloiamclh
·
2015-08-20 13:00
上一页
8
9
10
11
12
13
14
15
下一页
按字母分类:
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
其他