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
hdu1540
第三周 线段树入门
文章目录内容概括涉及算法线段树区间更新查询ZOJ1610线段树+延迟更新区间更新+区间查询(延迟标记)(简单)HDU4027线段树唯一修改(区间开根)暴力区间单点更新+区间查询
HDU1540
线段树应用单点更新
心夏心冬
·
2020-09-15 15:00
每周(→∞)记录?
HDU1540
Tunnel Warfare(线段树:维护最大连续子串)
HDU1540TunnelWarfare(线段树:维护最大连续子串)http://acm.hdu.edu.cn/showproblem.php?pid=1540分析:首先先来分析题目中的3种操作:1.Dx:该操作就是单点更新2.Qx:该操作可以分解为查区间[1,x]的最大连续0后缀长L和区间[x,n]的最大连续0前缀长R,则R+L-1即为所求.有关前缀查询和后缀查询可以参考:http://blog
focus_best
·
2020-08-25 04:12
practice
again
数据结构--线段树
★★★
ACM--题解汇总
注意!
ACM算法竞赛入门经典题解
hdu1540
poj2892 Tunnel Warfare 线段树端点更新 SBT
题目大意,给n个点表示n个村庄,一开始都是相连的,现在有3种操作:Qx,查询第与第x个村庄相连的村庄个数;Dx,摧毁掉第x个村庄;R恢复刚摧毁的村庄。题目分析:每个点用2个状态表示,0表示被摧毁,1表示存在,因为有恢复操作,并且每次恢复上一个被摧毁的村庄,所以用一个栈存储所有被摧毁的村庄,每次R操作恢复栈顶村庄。这题关键是查询操作,如果查询的村庄x不存在,则没有村庄与之相连通,如果存在x村庄,那么
WJSZMRX
·
2020-08-20 22:24
SBT
线段树
poj
hdu
hdu1540
Tunnel Warfare 线段树区间合并
题意:n个城镇在一条直线上,初始状态相邻的城镇都相邻。有三种操作:(1)Dx摧毁x城镇(2)R修复上次摧毁的城镇(3)Qx查询与x相连的没有被摧毁的城镇。思路:线段树维护2个变量:ls存区间左端向右连续完好城镇的个数,rs存区间右端向左连续玩好城镇的个数。对于D相当于单点更新。对于R需要用个栈存之前摧毁的城镇。对于Q稍微麻烦点。要判断p是否在区间的ls、rs里。如果在,那么需要将另一端的与它相连的
Excelsior_kereo
·
2020-08-18 09:45
线段树
hdu1540
线段树维护左右第一个0的位置
线段树维护村庄状态。1表示未摧毁0表示摧毁。问最大连续村庄,只需要求左右最近摧毁村庄位置相减即可。//包括自身的村庄以上过程也可以用set进行维护,即:set存被摧毁村庄id。用二分快速查找。//KX#includeusingnamespacestd;typedeflonglongll;typedefdoubledb;//unordered_mapmp;constintM=1e5+7;#defin
夕林山寸
·
2020-08-18 08:07
hdu1540
(线段树区间合并)
这题是个很恶心的题,区间合并是比较裸的。但这题有的东西没有叙述清楚,题目上说的是一组数据,但测试数据却是多组数据,这题还有几点需要注意的,一是一个村庄可以被摧毁多次,当然如果你代码写得好,这点也是没关系的。我当时用b^=1来表示每次变化,但如果;连续摧毁两次,我的结果就相当于重建了,后来只有老老实实的写了。所以大家得注意到类似多多次摧毁的问题。后来都改过来了却一直1000多mswa,我想可能是有些
爱生活的程序猿
·
2020-08-18 07:54
线段树
数据结构
hdu1540
Tunnel Warfare(线段树)
TunnelWarfareTimeLimit:4000/2000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):6052AcceptedSubmission(s):2340ProblemDescriptionDuringtheWarofResistanceAgainstJapan,tunnelwarfar
随心丶而遇
·
2020-08-18 07:16
ACM-线段树
ACM—图论
各OJ刷题专栏
hdu1540
题解思路用set维护把每个被破坏的点当做边界然后求左右边界就可以了题目链接#include#include#include#include#includeusingnamespacestd;setst;intmain(){intn,m,x;chars[30];while(scanf("%d%d",&n,&m)!=EOF){stacksk;st.clear();st.insert(n+1);st.i
最菜的acmer
·
2020-08-18 07:37
数据结构
HDU - 1540 Tunnel Warfare(线段树连续区间)
**题目链接:
HDU1540
题意:开始给你1→n1→n1→n的连续村庄,后面给你mmm个操作,DDD表示销毁XXX村庄(如果XXX被销毁那么XXX和谁都不连续),RRR表示修复最后销毁的那个XXX村庄,
ChaseNo1
·
2020-08-15 15:02
线段树
hdu1540
Tunnel Warfare(线段树)(好题)
题目链接:点击链接题意:有n个村庄,连成一条线,有三个操作。操作一,将指定的一个村庄摧毁;操作二,查询指定村庄所在的线段上有多少个没有被摧毁的连续的村庄(即连续区间的长度);操作三,将上次被摧毁的村庄重建。思路:操作一和操作三是基础的单点更新。操作二的查询,需要查询连续区间的长度,建树的时候要对每个节点对应的区间[l,r]记录从l开始向右的最大连续区间,长度为prefix,从r开始向左的最大连续区
刘荣浩
·
2020-08-15 15:59
数据结构
hdu1540
(线段树)
题意是跟新查找不同的时候要输出这个字符位置最长字符串,用ls表示从这个区间左端开始的最长字符串,rs表示从右边开始,ms是中间最长(a[i].ms=max(a[i*2].ms,max(a[i*2+1].ms,(a[i*2].rs+a[i*2+1].ls)));注意查找的时候if(t#include#include#include#includeusingnamespacestd;constintm
Polya_Xue
·
2020-08-15 15:48
线段树
hdu1540
(线段树维护连续区间模型)
/*translation:打地道战,n个村庄用地道连成一条直线,鬼子有时破坏掉一个村庄,这时八路军要修好这个据点。现在要求询问任意一个村庄,得出这个村庄现在与几个村庄相连,包括它本身。solution:线段树维护连续子区间将村庄抽象成一个点,正常下值为1,被破坏后变成0,即可将题目抽象成一个求目标节点所在的最长连续1序列的区间的长度。所以在线段树里面维护3个信息,前缀最长1序列,后缀最长1序列,
林伏案
·
2020-08-15 15:39
=====数据结构=====
线段树
HDU1540
Tunnel Warfare
比较简单的线段树的区间合并(比旅馆的稍微要考虑的东西要多一点)。先放代码:#include#include#include#include#includeusingnamespacestd;constintmaxn=50010;structstuff{ intl,r; //左子,右子 intmm,rm,lm; //区间最大长度,区间左最大长度,区间右最大长度}a[maxnstk;
WangJunchengno2
·
2020-08-15 13:29
ACM
HDU1540
http://acm.hdu.edu.cn/showproblem.php?pid=1540这题明摆着是线段树的区间合并但是我感觉二分更优雅所以我二分加树状数组配上读入挂700msA了#includeusingnamespacestd;typedeflonglongll;constintN=1e5;inlinevoidread(int&x){charch;boolok;for(ok=0,ch=ge
Gipsyu
·
2020-08-15 13:09
数据结构
hdu1540
之线段树单点更新+区间合并
TunnelWarfareTimeLimit:4000/2000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):3318AcceptedSubmission(s):1280ProblemDescriptionDuringtheWarofResistanceAgainstJapan,tunnelwarfar
星天93
·
2020-08-15 12:46
线段树
HDU1540
:Tunnel Warfare(线段树区间合并)
ProblemDescriptionDuringtheWarofResistanceAgainstJapan,tunnelwarfarewascarriedoutextensivelyinthevastareasofnorthChinaPlain.Generallyspeaking,villagesconnectedbytunnelslayinaline.Exceptthetwoattheends
键盘上的舞者
·
2020-08-15 12:18
线段树
hdu1540
(线段树求连续区间最大和)
题意:最初1-2-3-…-n按照顺序每个点与相邻的和两点相连成一条链。三种操作D:毁掉xR:恢复上次毁掉的Q:查询与x直接相连或者间接相邻的数量(包括自己)题目类型:线段树求区间连续最大和的模板题目思路:维护区间从左端点开始最大连续个数lsum,以及当前区间从右端点开始最大连续的个数rsum。重点push_up()函数的写法。查询的时候查看当前点是否在子区间的rsum和lsum范围内,是的话答案就
So_weak_yx
·
2020-08-13 23:28
【日记】12.6
12.6日记线段树
HDU1540
:单点修改+单点所在最长连续区间思路:昨天用了set(平衡树)做的,发现简单的一批,还是学了一下线段树的做法。
diorvh
·
2019-12-07 12:00
hdu1540
Tunnel Warfare 线段树区间合并
TunnelWarfareTimeLimit:4000/2000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):6565 AcceptedSubmission(s):2527ProblemDescriptionDuringtheWarofResistanceAgainstJapan,tunn
EventQueue
·
2016-04-15 15:00
线段树
hduoj
HDU1540
Tunnel Warfare(线段树+set)
题目链接:
HDU1540
题意:题意是一条线上的点,Dx是破坏这个点,Qx是表示查询以x所在的最长的连续的点的个数,R是恢复上一次破坏的点。
chaiwenjun000
·
2016-01-01 23:00
线段树
set大发
hdu1540
Tunnel Warfare(线段树)
TunnelWarfareTimeLimit:4000/2000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):6052AcceptedSubmission(s):2340ProblemDescriptionDuringtheWarofResistanceAgainstJapan,tunnelwarfar
d_x_d
·
2015-12-15 15:00
线段树
hdu1540
(线段树)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1540 题意:是一条线上的点,D x是破坏这个点,Q x是表示查询以x所在的最长的连续的点的个数,R是恢复上一次破坏的点。 线段树功能:单点修改,区间求值。 分析: pre数组记录区间左端点开始的最大连续个数, suf数组记录区间右端点开始往左的最大
·
2015-11-13 07:09
HDU
hdu1540
之线段树单点更新+区间合并
Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3318 Accepted Submission
·
2015-11-13 02:27
HDU
HDU1540
- Tunnel Warfare(单点修改&&区间合并)
题目大意 给定一个长度为n的全部为1的序列,可以对其进行以下三种操作: 1、D x 把第x个元素修改为02、Q x 查询包含第x个元素的全部为1的最长连续序列长度3、R: 把最后一次修改的元素还原为1 题解 比较水的区间合并问题~~O(∩_∩)O~~。维护两个域即可,即包含节点左端的全部为1的最长连续序列长度lsum,包含节点右端的全部为1的最长连续序列长度rsum,对于某个查询,假设m为节
·
2015-11-11 17:16
HDU
Tunnel Warfare(
hdu1540
线段树)
Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3412 Accepted Submission(s): 1323 Problem De
·
2015-10-27 14:46
HDU
hdu 1540/POJ 2892 Tunnel Warfare 【线段树区间合并】
MemoryLimit:65536/32768K(Java/Others) 链接:
hdu1540
ACMore_Xiong
·
2015-08-10 13:00
数据结构
线段树
合并
poj
HDU
hdu1540
&& POJ2892 Tunnel Warfare
【比赛提醒】BestCoder你报名了吗?(点击报名)【科普】什么是BestCoder?如何参加?TunnelWarfareTimeLimit:4000/2000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):4513 AcceptedSubmission(s):1725ProblemDes
Guard_Mine
·
2015-01-11 12:00
线段树
HDU1540
Tunnel Warfare(线段树:维护最大连续子串)
HDU1540TunnelWarfare(线段树:维护最大连续子串)http://acm.hdu.edu.cn/showproblem.php?pid=1540分析: 首先先来分析题目中的3种操作:1.Dx:该操作就是单点更新2.Qx:该操作可以分解为查区间[1,x]的最大连续0后缀长L和区间[x,n]的最大连续0前缀长R,则R+L-1即为所求.有关前缀查询和后缀查询可以参考:http:
u013480600
·
2014-03-29 19:00
ACM
HDU1540
:Tunnel Warfare(线段树区间合并)
ProblemDescriptionDuringtheWarofResistanceAgainstJapan,tunnelwarfarewascarriedoutextensivelyinthevastareasofnorthChinaPlain.Generallyspeaking,villagesconnectedbytunnelslayinaline.Exceptthetwoattheends
libin56842
·
2013-11-03 15:00
线段树
HDU
hdu1540
之线段树单点更新+区间合并
TunnelWarfareTimeLimit:4000/2000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):3318 AcceptedSubmission(s):1280ProblemDescriptionDuringtheWarofResistanceAgainstJapan,tunn
xingyeyongheng
·
2013-09-12 22:00
HDU1540
(线段树)
TunnelWarfareTimeLimit:4000/2000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):3047 AcceptedSubmission(s):1162ProblemDescriptionDuringtheWarofResistanceAgainstJapan,tunn
xj2419174554
·
2013-06-03 20:00
线段树
hash
上一页
1
下一页
按字母分类:
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
其他