
线段树
文章平均质量分 78
kk303
这个作者很懒,什么都没留下…
展开
-
线段树初步理解...
原本这两天在搞网络流的....但最近几次网赛多次遇到了线段树的题目...意识到线段树还是重要的...所以今天就初步的了解了线段树最简单的应用...单点更新...今天学习线段树主要是看NotOnlySuccess大牛的模板(http://www.notonlysuccess.com原创 2011-08-20 22:09:42 · 1252 阅读 · 1 评论 -
HDOJ 4366 - Successor 展开树为后序遍历,离线处理线段树..出现问题:读题错误..细节写错..爆栈..
题意: 有一个由上下级关系构成的树...如果开除一个人..那么从他的子树里找一个能力比他强..并且忠诚度最高的(注意..不是比她高)..问若开除谁,,谁来顶替(注意..不是连续的过程..都是单独的...) 题解: 完全2B了...读题各种错误..连ability和原创 2013-08-12 19:16:27 · 1208 阅读 · 0 评论 -
HDOJ 1156 - Color the ball 水题复习线段树..线段树与树状数组的对比..
题意: N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a 题解: 单纯复习线段树..同时做个小对比..上方树状数组..下方线段树: 无论从时间空间以及编码复杂度上..树状数组完爆线原创 2013-10-06 09:37:06 · 939 阅读 · 0 评论 -
HDOJ 1823 - Luck and Love 二维线段树...注意看清边界..
题意: 前段日子,枫冰叶子给Wiskey做了个征婚启事,聘礼达到500万哦,天哪,可是天文数字了啊,不知多少MM蜂拥而至,顿时万人空巷,连扫地的大妈都来凑热闹来了。―_―|||由于人数太多,Wiskey实在忙不过来,就把统计的事情全交给了枫冰叶子,自己跑回家休息去了。 这可够枫冰叶子忙的了,他要处理原创 2013-10-06 14:18:56 · 1227 阅读 · 0 评论 -
CodeForces 356A - Knight Tournament set or 线段树
题意: 现在有N个骑士进行M轮PK...现在告诉这M轮是谁站在台上...其将l~r所存在的骑士都打败..而若一个骑士被打败..就出局了..也就是不存在了...请输出每个骑士是被哪个骑士打败的(最后的胜利者输出0)...保证有解.. 题解: 比赛的时候就是没看懂原创 2013-10-16 14:58:10 · 1732 阅读 · 0 评论 -
UESTC 1501 - Defense Lines 离散化+线段树优化DP
题意: 给了一列N个数(N 题解: 很容易想到用dp[p][state]..当state =0表示以p结尾的连续串最长上升子串为多少..state=1表示以p结尾有一段被去掉的最长上升子串为多少.. state=0的时候很好维原创 2013-10-18 14:58:21 · 820 阅读 · 0 评论 -
POJ 3261 - Milk Patterns 求指定重复次数的最长子串,后缀数组+二分 or 线段树
题意: 给了一列N个数,(1 ≤ N ≤ 20,000),然后给一个正整数K(2 ≤ K ≤ N)...现在问这列数中重复K次的最长子串是多少(可以有重叠部分) 题解: 先用后缀数组求出height...由于有性质: LCP(i,j)=min(LCP(k,k+1),iPr原创 2013-11-15 14:39:32 · 1194 阅读 · 0 评论 -
HDOJ 4970 - Killing Monsters 水水线段树..
Program://#pragma comment(linker, "/STACK:1024000000,1024000000") #include#include#include#include#include#include#define MAXN 100005#define ll long long#define oo 1000000007using namespa原创 2014-09-10 08:55:03 · 746 阅读 · 0 评论 -
hiho一下 第十七周 最近公共祖先·三 更新RMQ在线解LCA
题意: 裸LCA 题解: RMQ解LCA,其中F[]原创 2014-10-27 09:05:19 · 1179 阅读 · 0 评论 -
hiho一下 第二十一周 离散化与线段树回顾
题意: yoProgram:#include#include#include#include#include#include#include#define MAXN 400005#define oo 1000000007#define ll long longusing namespace std; int P原创 2014-11-24 16:04:37 · 1100 阅读 · 0 评论 -
HDOJ 4578/2013年杭州邀请赛C题 - Transformation 线段树...比较蛋疼的维护PushDown
题意: 很裸....不解释... 题解: 要统计三种heProgram:#include#include#include#include#include#include#include#include#include#define oo 10007#defi原创 2013-08-11 18:22:03 · 1714 阅读 · 0 评论 -
HDOJ 4417 - Super Mario 线段树or树状数组离线处理..
题意: 同上 题解: 抓着这题作死的搞~~是因为今天练习赛的一道题.SPOJ KQUERY.直到我用最后一种树状数组通过了HDOJ这题后..交SPOJ的才没超时..看排名...时间能排到11名了..有些叼...看下时间效率..自下而上: 划分树、线段树、树状数组、优化后的树状数组...原创 2013-08-08 19:41:03 · 1086 阅读 · 0 评论 -
HDOJ 4614 - Vases and Flowers/2013多校联合第二场D 区间更新线段树+二分
题意: 有N个花瓶..每个花瓶至多放一朵花..每次的操作是1、从某个序号的花瓶开始..F朵花到空的花瓶..若后面的空花瓶不足F..则把剩下的花丢掉..当后面没有一个空花瓶..输出Can not put any one...2、把[ L,R ]范围内所有的花拿掉...并输出这个区间之前有多少花.. 题解: 用线段原创 2013-08-05 01:01:43 · 1164 阅读 · 0 评论 -
POJ2823 - 线段树求区间的最值..
本来想搞单调队列的....结果网上搜单调队你列的题...一搜搜到这道...一看...果断敲线段树..还没写过线段树求最值的....在求和上稍微修改下就可以了...而且这个题目没有修改的...所以一开始建好树后...不需要Updata...只要寻找答案就可以了...这个程序的主心部原创 2011-08-22 20:30:49 · 1798 阅读 · 0 评论 -
POJ - 3468 线段树成段更新
题意就是给了一序列的数...然后不断的问一段的值或者在一段上每个数加一个数...输出每次询问的值.... 初看这题感觉就是最一般的线段树成段更新的应用...但下手后发现很多细节...对于一向很粗心的我调了很久才给调出来...成段更新前一文已经提到过..这里再通过这一题原创 2011-08-22 16:11:51 · 1329 阅读 · 0 评论 -
HDOJ 2795 - Billboard 线段树单点更新找区间最值
看到数据吓尿了...h,w都是10^9...线段树无从下手!..看了大牛的分析..大彻大悟..因为一个announcement最多占一行...而announcement的总数n 构图..每个叶子节点代表每个行所剩下能用的格子数...非叶子节点表示其孩子中格子数最多为多少... 当要插入一个announcement时..从整个线段树的根节点开始..尽量往左边走(其子树的最大格子数原创 2013-07-20 19:02:24 · 958 阅读 · 0 评论 -
线段树初步应用(一段一段的更新) HDOJ - 1698
继续看NotOnlySuccess有关线段树的讲解...先头捣腾了一下线段树单位点更新的问题...刚才看了一段一段更新的问题..A了一道模板题(http://acm.hdu.edu.cn/showproblem.php?pid=1698).. 总的来说一段一段的更新和只更原创 2011-08-22 14:37:49 · 1138 阅读 · 0 评论 -
CodeForces 242E - XOR on Segment 二维线段树?
今天练习赛的题....又是线段树的变换..拿到题我就敲了个点更新区间查询的..果断超时...然后想到了可以将每个数与合表示成不进位的二进制数..这样就可以区间进行更新了..比赛的时候写搓了..刚重写了一遍过~~ 为了表示每位的二进制数...线段树开成二维的...第一维老样子~记事树中哪个点..第二维记当前段之和的不进位二进制数...因为最多到10^5...也就是不会超过2^20...原创 2013-07-29 14:27:04 · 981 阅读 · 0 评论 -
CodeForces 266E - More Queries to Array 拆解求和公式,线段树区间更新与求和
题意很裸...但做起来大有文章... 区间成段更新并求和..第一想到的应该是线段树...但是题目给的区间求和是无法直接下手 之所以不好直接下手..是因为不能成段的更新和统计和..由于k 只看右边括号..... k=0 : (i-l+1)^0 = 1 k=1 : (i-l+1)^1 =原创 2013-07-23 10:09:10 · 1210 阅读 · 0 评论 -
CodeForces Round #179 (295A) - Greg and Array 一个线段树做两次用
线段树的区间更新与区间求和...一颗这样的线段树用两次... 先扫描1~k...用线段树统计出每个操作执行的次数... 那么每个操作就变成了 op. l , op.r , op.c= times* op.c 清空线段树..将初始的a1,a2~~an放入..用每个操作来更新值~~Program:#include#include#include#i原创 2013-07-24 16:17:50 · 1227 阅读 · 0 评论 -
POJ 1151 - Atlantis 线段树+扫描线..
离散化: 将所有的x轴坐标存在一个数组里..排序.当进入一条线段时..通过二分的方式确定其左右点对应的离散值... 扫描线..可以看成一根平行于x轴的直线..至y=0开始往上扫..直到扫出最后一条平行于x轴的边..但是真正在做的时候..不需要完全模拟这个过程..扫描线的做法是从最下面的边开始扫到最上面的边. 线段树: 本题用于动态维护扫描线在往上走时..x哪些区域是有合法面积的..原创 2013-07-26 11:37:56 · 2515 阅读 · 1 评论 -
CodeForces 276E - Little Girl and Problem on Trees 区间更新..N+1个线段树
注意题目i的设定..除了根节点1外...其他的点至多两个度..而每个点又必须要有一个父亲..所以每个点至多一个孩子..说明题目所给的树一定是这样的: 对于一个点的上下范围更新...有两种情况发生...一个是在所在的线段内更新...一个是上界超过了线段...更新到其他的线段上去... 对于N个线段..可以用N个线段树来维护其区间更新...但是对于跨过1点更新到其他线段的情况.原创 2013-07-26 10:44:49 · 1447 阅读 · 0 评论 -
2016百度之星初赛Astar Round2B - 区间的价值
题意:定义一个区间的价值为区间的最大数*最小数。现给了n(1≤n≤100000)个数,问1~n长度的最大价值分别是多少。题解: 用两个线段树以及快排的思想可以在O(nlog(n))的时间解决该题。 首先用线段树找到一个区间[L,R]的最大值位置为a与最小值位置为b,L,R]中所有包含[a,b]的区间的价值都为A[a]*A[b]。然后对[L,a-1],[a+1,R]重复这原创 2016-05-23 09:58:25 · 1617 阅读 · 3 评论