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&poj2892Tunnel Warfare(线段树
单点更新
)
->题目请戳这 和这->题目大意,给n个点表示n个村庄,一开始都是相连的,现在有3种操作:Qx,查询第与第x个村庄相连的村庄个数;Dx,摧毁掉第x个村庄;R 恢复刚摧毁的村庄。题目分析:每个点用2个状态表示,0表示被摧毁,1表示存在,因为有恢复操作,并且每次恢复上一个被摧毁的村庄,所以用一个栈存储所有被摧毁的村庄,每次R操作恢复栈顶村庄。这题关键是查询操作,如果查询的村庄x不存在,则没有村庄与之相
ophunter
·
2013-06-09 13:00
线段树
Hdu 1754 I Hate It
pid=1754线段树处理
单点更新
,区间最值问题模型。。
niuox
·
2013-06-05 12:00
Hdu 1166 排兵布阵
单点更新
,区间查找。本题可以用树状数组做,但是线段树除了处理区间求和问题外,还可以处理区间极值问题,所以虽然ZKW树状数组可以取代线段树的求和部分,但是并不能却带线段树在其他领域的功用。
niuox
·
2013-06-04 16:00
线段树题集
/** *
单点更新
,区间查询 **/ ///hrb1752(单点替换,查询区间最大值及下标) ///代码: #defineLSONl,m,rtmaxn[rt>1; build(LSON)
丘小Z
·
2013-05-28 18:00
线段树
成段更新
单点查询
区间查询
单点更新
hdu4521之线段树
单点更新
http://acm.hdu.edu.cn/showproblem.php?pid=4521#include #include #include #include #include #include #include #include #include #defineINF99999999 usingnamespacestd; constintMAX=100000+10; intsum[MAX>
xingyeyongheng
·
2013-05-28 13:00
poj2481之线段树
单点更新
CowsTimeLimit:3000MSMemoryLimit:65536KTotalSubmissions:9813Accepted:3214DescriptionFarmerJohn'scowshavediscoveredthattheclovergrowingalongtheridgeofthehill(whichwecanthinkofasaone-dimensionalnumberlin
xingyeyongheng
·
2013-05-28 09:00
hdu4288之线段树
单点更新
ProblemDescriptionInmathematicsandcomputerscience,analgorithmdescribesasetofproceduresorinstructionsthatdefineaprocedure.Thetermhasbecomeincreasingpopularsincetheadventofcheapandreliablecomputers.Many
xingyeyongheng
·
2013-05-21 16:00
hdu2886之线段树
单点更新
DescriptionN childrenaresittinginacircletoplayagame.Thechildrenarenumberedfrom1to N inclockwiseorder.Eachofthemhasacardwithanon-zerointegeronitinhis/herhand.Thegamestartsfromthe K-thchild,whotellsallt
xingyeyongheng
·
2013-05-19 20:00
poj2828之线段树
单点更新
#include #include #include #include #include #include #include #include #include #defineINF99999999 usingnamespacestd; constintMAX=200000+10; intsum[MAX>1; BuildTree(n>1; if(sum[n=pos)returnUpdate(po
xingyeyongheng
·
2013-05-15 21:00
UVa 12299 - RMQ with Shifts 线段树
单点更新
RMQwithShifts InthetraditionalRMQ(RangeMinimumQuery)problem,wehaveastaticarray A.Thenforeachquery (L, R)(LR),wereporttheminimumvalueamong A[L], A[L +1],..., A[R].Notethattheindicesstartfrom1,i.e.the
cyendra
·
2013-05-14 15:00
题解
hdu 1689 我要做的足够 强大
线段树成段更新: 昨天看了一晚上,不太理解,自己感觉弱爆了,今早想了想,发现成段更新和
单点更新
差不多,区别在于
单点更新
时,往下更新一直更新到叶子节点,成段跟新时,不必更新到叶子节点,当对一个区间操作完成之后
wahaha1_
·
2013-05-14 10:00
线段树总结
一、
单点更新
1.hdu1166 敌兵布阵:有N个兵营,每个兵营都给出了人数ai(下标从1开始),有四种命令,(1)”Addij",表示第i个营地增加j人。
u010270403
·
2013-05-13 21:00
线段树
hdu 2795 Billboard 线段树
单点更新
BillboardTimeLimit:20000/8000MS(Java/Others) MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):6525 AcceptedSubmission(s):2957ProblemDescriptionAttheentrancetotheuniversity,thereisahugerec
cyendra
·
2013-05-12 20:00
题解
线段树模板
单点更新
,区间求最值#include #include #include #include #include #defineN222222 usingnamespacestd; intnum[N];
cyendra
·
2013-05-12 19:00
资料
【专题】线段树
单点更新
最最基础的线段树,只更新叶子节点,然后把信息用PushUP(intr)这个函数更新上来。
cyendra
·
2013-05-12 17:58
线段树&树状数组
专题
【专题】线段树
单点更新
最最基础的线段树,只更新叶子节点,然后把信息用PushUP(intr)这个函数更新上来。
cyendra
·
2013-05-12 17:00
计划
线段树 懒惰标记
单点更新
妙用
题意:把一组舰队看成是线段上的端点,有一种秘密武器,每次可以攻击一个区间上的船,然后他们的防御力x减低为sqrt(x).做法:最多只能有7次攻击有效。所以用带点更新吧,一遇到区间防御力总和为len(区间中含有舰船的个数),就停止更新,因为这个区间所有的船的防御力已经只剩1了,这么一来,最后的时间复杂度不会太高#include #include #include #definemax(a,b)((a
cqlf__
·
2013-04-28 20:00
线段树 hdu 1754 I Hate It
单点更新
区间求最值
IHateItTimeLimit:9000/3000MS(Java/Others) MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):23163 AcceptedSubmission(s):9257ProblemDescription很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学
cyendra
·
2013-04-18 16:00
题解
线段树 hdu 1166 敌兵布阵
单点更新
区间求和
敌兵布阵TimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):25659 AcceptedSubmission(s):11092ProblemDescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了
cyendra
·
2013-04-18 16:00
题解
算法
资料
线段树
单点更新
+反素数 poj-2886-Who Gets the Most Candies
题目链接:http://poj.org/problem?id=2886 题目意思:编号为1-n的n个人逆时针围成一圈玩游戏,每个人有一个非零的数的卡片,开始从第k个人开始,一次出圈,当第i个人出圈时,如果他的卡片上的数正数p,则他左边的第p个人下个出圈,如果他卡片上的数是负数p,则他右边的第p个人下个出圈。当第i个人出圈时,他获奖励是F(i),F(i)为i的正约数的个数。求获得的最大的奖励是哪个
cc_again
·
2013-04-04 22:00
hdu 3874 Necklace 线段树
单点更新
题意:求一个序列中所有数字的和,其中数值相同的只能计算一次。做法:可以先储存所有的请求,然后按照它们的右边界排序,在查询的同时更新区间。这里其实有一点点DP的味道,在它进行某个查询之前,保证所有的重复数字都被删除光了,并且有不能影响其他查询,所以呢,只能从最近的那个操作进行计算。1次query即可#include #include #include #defineleftl,m,x>1;
cqlf__
·
2013-03-30 20:00
hdu 1394 Minimum Inversion Number(线段树
单点更新
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 题目大意:给由0-n-1这n个数构成的n个数,定义一个逆序数(前面的比后面的大的数的个数)。把第一个数移到最后的位置,得到一个新的序列,得到一个新的逆序数。一共可以移动n-1次,得到n个逆序数,问这n个逆序数最小的是多少。 解题思路:1、先求出第一个序列的逆序数。 根据题目特点,建立一
cc_again
·
2013-03-30 10:00
hdu 4521 小明系列问题——小明序列(
单点更新
)
题意:有多组测试数据,每组数据的n和d表示,有n个数,求间距大于d的最长上升序列。(1 #include #include usingnamespacestd; constintN=1e5+5; #defineLL(x)(x>1)) inta[N],imx[N]; structSegtree { structnode { intlft,rht,mx; intmid(){returnMID(lft,
shiqi_614
·
2013-03-29 16:00
hdu 3950 Parking Log(
单点更新
)
题意: 有T组测试数据,每组数据的N和Q分别表示停车场有N个位置(下标从1开始),Q个操作。操作有两种(1)"AMLR",表示这个车队有M辆车,如果前面的空位,要求与前面的车的距离不超过L,如果后面有车,要求与后面的车的距离不超过R,如果前面或后面没有车,条件L,R的限制忽略,如果有满足条件的位置输出起点的下标,如果有多个满足条件的位置输出下标最小的一个,如果没有满足条件的位置,输出-1。(2)"
shiqi_614
·
2013-03-29 16:00
poj2828 线段树
单点更新
#include #include #definelsonl,m,rt>1; build(lson); build(rson); } voidupdate(intx,intl,intr,intrt) { sum[rt]--; if(l==r) { t=l; return; } intm=(l+r)>>1; if(sum[rt=x) update(x,lson); else { x-=sum[rt=
wahaha1_
·
2013-03-19 11:00
hdu2795 线段树
单点更新
#include #definelsonl,m,rtb?a:b; } voidPushUp(intrt) { MAX[rt]=cmp(MAX[rt>1; build(lson); build(rson); } intquery(intx,intl,intr,intrt) { if(l==r) { MAX[rt]-=x; returnl; } intm=(l+r)>>1; intret=MAX[rt
wahaha1_
·
2013-03-18 11:00
hdu1394求最小逆序数
线段树:
单点更新
#include #definelsonl,m,rtb?
wahaha1_
·
2013-03-06 18:00
线段树
单点更新
semluhiigubbqvq/item/be736a33a8864789f4e4ad18http://www.notonlysuccess.com/index.php/segment-tree-complete/ 经典
单点更新
qq415200973
·
2013-03-03 20:00
hdu1754
线段树
单点更新
,找出区间最大值和更改区间点的值。#include #include #definelsonl,m,rtb?
wahaha1_
·
2013-03-03 19:00
hdu1166
简单的线段树题目:
单点更新
。
wahaha1_
·
2013-03-03 19:00
线段树
单点更新
hdu1166敌兵布阵单点加减和区间求和#include #include #definemaxn50005 intsum[maxn>1; build(l,m,rt>1; if(p=r) { returnsum[rt]; } intv=0; intm=(l+r)>>1; if(zm) v+=query(z,y,m+1,r,rt #include #definemaxn220005 intsum[m
yan_____
·
2013-02-27 18:00
hdu 1698 Just a Hook
点击打开链接hdu1698 思路:线段树成段更新 分析: 1 成段更新和
单点更新
是不同的,
单点更新
是要更新到叶子节点,但是对于成段更新是更新到某个区间即可,找个区间是当前需要的更新的区间的最大的子区间
从此醉
·
2013-02-27 12:00
HDU
hdu 1698 Just a Hook
点击打开链接hdu1698思路:线段树成段更新分析:1成段更新和
单点更新
是不同的,
单点更新
是要更新到叶子节点,但是对于成段更新是更新到某个区间即可,找个区间是当前需要的更新的区间的最大的子区间2成段更新需要维护一个
cgl1079743846
·
2013-02-27 12:00
POJ2886线段树 Joseph游戏(
单点更新
)
题目:WhoGetstheMostCandies? 题意:1.n个人进行Joseph游戏,游戏共p轮(p为思路:用相对坐标来处理,例如这一轮出局的是p,下一个要+m,则p出局时p+1就变成了p(因为是相对坐标),则下一个人应该是p+m-1,再注意循环和m的正负的处理,不要忘了取模。2.求解原始序号时维护一棵线段树,类似上一题插队的方法建树,每个节点为该区间段的人数,则要在(l,r)区间踢出第p个人
ACdreamers
·
2013-02-09 16:00
POJ2828线段树 插队(
单点更新
)
题目:BuyTickets#include #defineN200010 #definelsonl,m,rt>1; Build(lson); Build(rson); } voidUpdate(intp,intl,intr,intrt) { tree[rt]--; if(l==r) { id=r; return; } intm=(l+r)>>1; if(tre
ACdreamers
·
2013-02-09 16:00
线段树空间容纳且最上边的数(
单点更新
)
题目:HDU2795Billboard#include #definemaxn222222 #definelsonl,m,rtb?a:b; } voidPushUP(intrt) { MAX[rt]=max(MAX[rt>1; Build(lson); Build(rson); } intQuery(intx,intl,intr,intrt) { if(l==r
ACdreamers
·
2013-02-09 14:00
线段树求逆序数(
单点更新
)
题目:HDU1394MinimumInversionNumber 若abcde...的逆序数为k,那么bcde...a的逆序数是多少?我们假设abcde...中小于a的个数为t,那么大于a的个数就是n-t-1,当把a移动最右位时,原来比a大的现在都成了a的逆序对,即逆序数增加n-t-1,但是原来比a小的构成逆序对的数,现在都变成了顺序,因此逆序对减少t,所以新序列的逆序数为k+=n-t-t-1,即
ACdreamers
·
2013-02-09 11:28
数据结构
线段树求逆序数(
单点更新
)
题目:HDU1394MinimumInversionNumber 若abcde...的逆序数为k,那么bcde...a的逆序数是多少?我们假设abcde...中小于a的个数为t,那么大于a的个数就是n-t-1,当把a移动最右位时,原来比a大的现在都成了a的逆序对,即逆序数增加n-t-1,但是原来比a小的构成逆序对的数,现在都变成了顺序,因此逆序对减少t,所以新序列的逆序数为k+=n-t-t-1,即
ACdreamers
·
2013-02-09 11:00
线段树求区间最大值RMQ(
单点更新
)
题目:HDU1754#include#definemaxn222222#definelsonl,m,rtb?a:b;}voidPushUP(intrt){MAX[rt]=max(MAX[rt>1;Build(lson);Build(rson);PushUP(rt);}voidUpdate(intp,intadd,intl,intr,intrt){if(l==r){MAX[rt]=add;retur
ACdreamers
·
2013-02-09 00:48
数据结构
线段树求区间最大值RMQ(
单点更新
)
题目:HDU1754#include #definemaxn222222 #definelsonl,m,rtb?a:b; } voidPushUP(intrt) { MAX[rt]=max(MAX[rt>1; Build(lson); Build(rson); PushUP(rt); } voidUpdate(intp,intadd,intl,intr,intrt
ACdreamers
·
2013-02-09 00:00
hdu - 1754 - I Hate It(线段树(
单点更新
))
题意:在每个测试的第一行,有两个正整数N和M(0>线段树点修改,幸运,这次递归建树没有超时,437MS过!#include #include usingnamespacestd; constintmaxn=200000+10,INF=-214748364; inta[maxn],maxv[4*maxn],A,B;//a为输入数组,maxv为线段树结点数组,存该相应区间的最大值 voidupd
SCNU_Jiechao
·
2013-02-06 15:00
Splay解决区间问题[
单点更新
,区间最值询问]
pid=1754*/ /*
单点更新
,区间询问 splay实现*/ /*注意写rotateTo的时候。。
Coco_young
·
2013-01-31 21:00
play
POJ 2828 Buy Tickets 线段树
单点更新
题意:夜里排队买车票,每个人都有自己的id号。排队买票时会插队,输入n对数字,每对包括了他想插入的位子,和自己的id号,后插入的人会把先插入的人挤下去做法:把先到的人挤下去真心难模拟,那么就倒过来思考。逆序查找序列对,后查到的要往后排,这个思想我以后要记住了然后建立树时,每个节点的值为当前的空余数,然后就可以模拟了,模拟的时候要小心...#include #include #defineleftl
cqlf__
·
2013-01-02 23:00
hdu 1754 Minimum Inversion Number 线段树
单点更新
题意:输入一串数字,对其进行一次操作:把潜m个数放到末尾,问最少的pair(i,j)(ia[j]),输入的数字各不相同,且在[0,n-1]内做法:先用线段树的手法求出原始序列的pair数,然后在移动时,可以发现一个规律,设每当进行某次操作,位于序列中的第m个数为X,此时序列中的pair数为p,有一个操作移动了m-1个数,最终的pair数为p,在形成的序列中x为与序列的顶部,要计算的那个移动m个数的
cqlf__
·
2013-01-02 23:00
hdu 1754 线段树
单点更新
水
题意:求一段区间内的最大值,和对原来的数组进行改变做法:入门级的线段树...#include #include #include #defineLMT200002 #defineleftl,m,xb?a:b; } voidbuild(intl,intr,intx) { if(l==r) { scanf("%d",&smax[x]); return; } intm=(l+r)>>1; build(l
cqlf__
·
2013-01-02 23:00
poj 2481 Cows
点击打开链接poj2481思路:线段树+
单点更新
分析:1题目给定n头牛所在的区间,然后问每头牛都有几头牛比它强壮2根据题目如果牛i的区间是[Si,Ei],牛j的区间是[Sj,Ej]那么牛i要比牛j强壮的话那么就有
cgl1079743846
·
2012-12-30 22:00
hdu 2689 Sort it
点击打开链接hdu2689思路:线段树+
单点更新
分析:1题目给定n个数要求最少的交换次数使得序列有序2显然两个数要交换肯定是满足inum[j]。
cgl1079743846
·
2012-12-27 17:00
hdu 2795 Billboard
点击打开hdu2795思路:线段树+
单点更新
分析:1题目的意思是给定一个h*w的广告牌h为高,w为宽,现在有n个高为1宽为wi的小广告要放上去,原则是最先放最上面和最左边的位置2题目的h和w的最大值为10
cgl1079743846
·
2012-12-26 12:00
hdu 1754 I Hate It
点击打开链接hdu1754思路:线段树+
单点更新
分析:1线段树的水题代码: /************************************************ *By:chenguolin
cgl1079743846
·
2012-12-22 14:00
hdu 1166 敌兵布阵
点击打开链接hdu1166思路:线段树
单点更新
分析:1题目给定n个兵营的人数,现在有三种操作 (1)Addij,i和j为正整数,表示第i个营地增加j个人(j不超过30) (2)Subij,i和j为正整数
cgl1079743846
·
2012-12-21 22:00
上一页
12
13
14
15
16
17
18
19
下一页
按字母分类:
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
其他