线段树
韦我独尊-德天独厚
这个作者很懒,什么都没留下…
展开
-
HDU1754 I Hate It 线段树 区间更新 区间查找 最大值
一看基本就是线段树的题目,考察的是区间更新 和区间查找,#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define eps 1e-7#define原创 2014-01-17 20:45:39 · 1059 阅读 · 0 评论 -
Codeforces Round #250 (Div. 1) D 线段树
看看type = 2的操作,对于区间[l,r]内的元素对x取模,由于取模肯定不能和取模,所以只能每个元素取模,看上去不是区间更新,但是仔细一看,若区间[l,r]内所有的元素都小于x,那么这一区间不需要管,所以还是存在区间整段操作,所以需要lazy,这里也算是一个剪枝了,剩下的就是type = 3的 单点更新,还有type = 1的区间求和,整体操作不难int n,m;ll nnum原创 2014-09-02 21:39:48 · 929 阅读 · 0 评论 -
ZOJ3632 线段树+DP
买西瓜吃,每个西瓜有两个参数,一个是p代表价格,一个是t代表能吃几天,要求n天每天都能吃西瓜,而且如果你今天买了,以前买的还没吃完 那么都得扔了,求最小花费,还真想不到用线段树+DP,最后看了一下别人的标题,想了一下,DP方程挺好推的,线段树也只是单点查询,#include#include#include#include#include#include//#include原创 2014-07-04 21:36:31 · 754 阅读 · 0 评论 -
POJ 2528 Mayor's posters 线段树离散化+区间更新
http://www.douban.com/note/273509745/ 这文章真不错,原来豆瓣不仅仅有影评啊,真是肤浅啊我题目就是一张墙上贴海报,先贴的会被后贴的覆盖,问最后可以看到多少张海报题目给的数据 1 i 这样直接来超时先不说肯定内存都受不了的,离散化处理,映射的时候没写好,弄了挺久的,太搓了#include#include#in原创 2014-07-03 19:01:32 · 866 阅读 · 0 评论 -
FZU1608 Huge Mission 线段树lazy区间更新+求和
就这破题目坑了我一个大晚上,直到今天一觉醒过来才搞定,原因之一:这题目的题意真的是太狗了,还不如直接看着案例猜来的快啊,题意:给了你一些区间,x,y,第三个参数w是效率,代表这段时间他的单位时间效率,效率总和就是 (y-x)*w,然后有的时间段会被重复啊,比如前面给了1,4,1,后面又给了2,4,3他们为了是的时间段1,4的效率总和最大肯定是选择 2,4区间的效率值选择3,意思就是后面出现更原创 2014-07-03 10:03:19 · 830 阅读 · 0 评论 -
ZOJ1610 Count the Colors 经典线段树染色问题
题意,给你n个 x,y,c,意思就是区间[x,y]被染成C色,但是颜色会被覆盖的,染色操作完成以后 问你每种颜色有多少个 并输出颜色编号id跟个数cnt经典问题,不过写的有点撮吧,没去看别人的,这个方法应该是最传统的最普通的,常规的开数组记录,也许大神们有更高端的方法#include#include#include#include#include#inc原创 2014-07-02 19:20:38 · 854 阅读 · 0 评论 -
POJ2777 Count Color 线段树区间更新
题目描述:长度为L个单位的画板,有T种不同的颜料,现要求按序做O个操作,操作分两种:1.“C A B C”,即将A到B之间的区域涂上颜色C2.“P A B”,查询[A,B]区域内出现的颜色种类出现操作2时,请输出答案PS:初始状态下画板颜色为1一开始没有想那么好,用int整型位移来代替颜色,还是使用了最传统的bool color[来记录,可是不知道错在了哪里,原创 2014-06-30 20:58:01 · 799 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number 树状数组&&线段树
题目给了你一串序列,然后每次 把最后一个数提到最前面来,直到原来的第一个数到了最后一个,每次操作都会产生一个新的序列,这个序列具有一个逆序数的值,问最小的你逆序数的值为多少逆序数么 最好想到的是树状数组,敲了一把很快,注意把握把最后一个数提上来对逆序数的影响即可,#include#include#include#include#include#includ原创 2014-06-30 19:26:48 · 655 阅读 · 0 评论 -
NOJ1042 线段树区间最值
中文题啊,由于一次比赛线段树查不出错误,外加自己博客没有留几篇,现在重新刷一遍线段树,无论简单难的都留下,以后偶尔看看,先由简单的开始回顾起来!这题不难,很裸的寻找区间最值,连更新都没有,就是建树然后寻找最值题目:http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1042原创 2014-06-29 10:26:16 · 679 阅读 · 0 评论 -
HDU4027 Can you answer these queries 线段树区间求和+剪枝
给了你n,然后n个数字在一个数组中,接下来m个询问,每个询问三个数字 t,x,y,若t==0,那么修改区间[x,y]的每一个值,变为原来每个位置上的数 开根号取整,若t==1,那么对区间[x,y]求和由于n,m,很大,所以树状数组铁定超时,若直接用线段树来做区间修改,那么也是超时,这类题目没别的方法了,静心剪枝,发现题目给的数据范围为2^63,有没有发现,2^63开根号 绝对不需要开1原创 2014-05-11 21:53:05 · 829 阅读 · 0 评论 -
HDU1556 Color the ball 树状数组 修改区间值 查找单点值
以前记得看到过树状数组能做的 线段树肯定可以做,反过来不行 这句话,所以没去学树状数组,现在补一下吧看到这道题,还是手痒敲了一把线段树,可是不知道为什么超时了,改了几把还是超时,真心不知道哪里出问题了,后来看了别人的题解,发现没什么他们的跟我的没什么大区别,后来复制了他们的去交了一把,发现大家的都超时了,可能题目的数据范围被被修改了,不过还是贴出超时,代码希望路过有大神可以指点一原创 2014-04-21 20:27:26 · 936 阅读 · 0 评论 -
UVA12299 RMQ with Shifts 线段树查询 单点更新
线段树的题目,不是特别难,掌握单点更新 和 区间查找 即可,给一个数组,下标1到n,有一个shift操作,就是把它给你的下标 最前面一个放到最后面一个,相应位置的值也发生改变,然后有询问query(l,r)求出闭区间[l,r]的最小值,因为shift这一命令语句 题目说不超过30个字符,除去括号shift字符串 还有逗号,数字部分 最多也就13个,所以可以把这个强行用单点更新来做,有点暴力,总原创 2014-03-23 19:36:15 · 826 阅读 · 0 评论 -
POJ3067 Japan 线段树 || 树状数组
多数人使用了树状数组,这道题目其实还可以暴力打表,题意就是日本东边有N个城市,西边有M个,左右之间需要高速公路连起来,连接题目已经给出,问高速公路的交点个数,题目已经声明 三条及三条以上的高速路 绝对不会相交于同一点打表举个例子:1,2,3,4表示东边城市标号,1,2,3,4,5,表示西边的,如果题目给出东边3与西边3相连,下面表中的 ** 号表示已经连接,那么影响高速交点 个数的 连接原创 2014-01-18 21:44:58 · 948 阅读 · 0 评论 -
POJ3468 A Simple Problem with Integers 线段树 区间成段更新+区间求和
很明显的线段树,果然比用伸展树舒服多了,没有太多的思路,就是区间成段的更新 还有 区间 求和操作,直接看代码#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long原创 2014-01-17 22:31:31 · 922 阅读 · 0 评论 -
Codeforces Round #225 (Div. 1) C 树状数组 || 线段树
看到这题很开心啊,有印象跟以前做过的很像,貌似最近就做过一个,以时间戳为区间来建立树状数组,然后一开始我以为题意是,给x点加val,它以下的所有节点都加-val;所以一开始就以 加 和 减 建立了两个树状数组,最后 减去就是答案,写完发现跟案例对不上啊,读了题目也没发现读错了,对于那句话 我理解错了,后来看了 这个:http://blog.csdn.net/keshuai19940722/ar原创 2014-11-22 21:40:51 · 826 阅读 · 0 评论