
线段树
文章平均质量分 78
byijie
这个作者很懒,什么都没留下…
展开
-
poj2777 线段树+位+小总结
做了这道题才稍微理解了线段树中的两个重要操作,即PushDown传递标记和合并子区间这两个操作,也理解了标记的用途和正确使用方式。总结一下,正常情况下线段树有两个重要数据,一个是信息一个是标记,信息要支持区间合并,而标记则要支持区间划分(下放操作PushDown)。当我们更新区间的时候,当找到最大的被完全覆盖的区间时,只需更新这个区间的信息,然后做一个标记,表示这个区间的子区间有待于更新,当我原创 2013-02-18 00:21:57 · 2769 阅读 · 0 评论 -
POJ 2528 区间端点离散化,线段树区间更新
这是经典的染色问题吧?!第一次写离散化,第一次写线段树,写的时候挺迷茫,AC之后很兴奋...说一下这道题的小trick,大家如果仔细看一下这道题的discuss后会发现,我们在离散化的时候不能只考虑顺序相邻,还要考虑位置相邻,也就是说在顺序相邻而位置不相邻的两个坐标之间,我们要加一个虚拟点,保证离散化后的顺序相邻关系和位置相邻关系都和离散化之前相同。由于poj数据弱了,不考虑这个trick不影原创 2013-02-17 14:08:19 · 916 阅读 · 0 评论 -
POJ 2828 && 2886 线段树?二分?
暂且叫它空位模型= =|||,我觉得这个模型往线段树上想的话有点儿牵强...往二分上想更简单点儿,因为这个模型的更新查询操作分不太清楚...POJ 2828 :倒序操作...POJ 2886 :简单的模型..涉及到了反素数的知识...(借鉴了wff学长的代码,copy了一份反素数表),百度百科里有段求反素数的程序..DFS实现的...代码:POJ2828:#include#i原创 2013-02-18 17:16:42 · 771 阅读 · 0 评论 -
hdoj 4339 线段树 单点更新,区间查询
http://acm.hdu.edu.cn/showproblem.php?pid=4339题意: 给两个字符串,Q组操作,更新操作时更改某个字符串的某个字符,查询操作是询问从某个点i开始两个字符串最长的公共子串。解题思路: 线段树,Tree[rt] 存放的是l-r这个区间从最左边开始的公共子串的长度。 分两种情况,case1,左子区间的串完全匹配,那么Tree[rt]=Tree[rt原创 2013-03-10 22:36:03 · 884 阅读 · 0 评论 -
POJ2482 Stars in Your Window 线段树 二维转换一维 STL
解题思路: 首先注意到最优解肯定是窗子的右上角(或其他角)在某个星星位置处(这里的在是模糊的在,略微比星星的位置大一点,能包含这个星星就行)。这样就将问题变成离散空间上的问题了。然后问题关键就是将二维问题变成一维问题,先只考虑x轴方向的一维,可以想到一个星星的起到的作用是一条长度为w的线段,然后答案就是找到被最多线段覆盖的某点,就是区间最值问题了。那么再考虑y轴这一维,这一维可以认为是线段的存活时原创 2013-04-02 17:17:44 · 921 阅读 · 0 评论 -
hdu1542 线段树 矩形面积并
这题和poj2482还有“蛇”那题差不多,也是二维转一维,存活时间(时间点思想)。另外通过做这题发现一个这类题的一个特点,就是每次的删除操作肯定是删除之间已经插入的一些线段,这样我们发现这类线段树和之间写的线段树有些许不同,更加像"线段树",每次更新这颗"线段树"里的一些线段(节点),并作一些统计,是用不到PushDown操作的。#include#include#include#incl原创 2013-04-04 23:34:24 · 779 阅读 · 0 评论 -
hdu4604 Deque
枚举第一个不drop的点,然后就是从这个点向后找一个不升子序列和一个不降子序列,使得两者的和减去其重复的元素获得最大值。设当前处理的是i,显然两者重复的值只能是a[i],且只能是前面连续的一段是重复的。即两个子序列的形式这这样的:a1+b1a2+b2b1是当前选的不降子序列中第一个大于a[i]的元素开始的最长不降子序列的长度。a1是前面重复的a[i]的长度。b2,a2同理可知。原创 2013-07-24 16:48:36 · 1107 阅读 · 0 评论 -
hdu4630&&hdu4638 线段树离线操作
两题都是朴素想法枚举两个端点O(n^2)超时,那么枚举其中一个端点用线段树维护另一个端点。关键在于没插入一个端点后都是成段更新,否则又会退化到O(N^2)。ps:两题用c++交都比g++快500ms以上。4630//#include#include#include#include#include#includeusing namespace std;#define lso原创 2013-08-03 21:37:10 · 1358 阅读 · 0 评论