![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM之线段树
文章平均质量分 79
noname40
这个作者很懒,什么都没留下…
展开
-
poj 3264 RMQ 线段树模版题
题意:输入N,Q,然后输入N个数,询问N次,每次输入询问区间,输出区间内最大值和最小值之差。思路:线段树 暴力搞TLE。。。参考地址:http://hi.baidu.com/z917912363/blog/item/d3ad56d571effe2c9a502740.html#includeusing namespace std;struct node{ int lv,rv原创 2012-03-07 22:56:14 · 455 阅读 · 0 评论 -
hdu 1166 临兵布阵 线段树[hh]
题意:很清晰。。。不解释。昨天学习了下hh的线段树,学完了顿时石化,产生了对我的代码风格无比的鄙视。。 看了hh的线段树,不仅感觉到这个模版灰常的实用美观,而且我也刻意的改变了下我的代码书写的习惯,多加些tab和空格之类的东西,会使你的代码异常美观!!#includeusing namespace std;#define lson l , m , rt << 1#define rso原创 2012-03-12 09:15:28 · 985 阅读 · 0 评论 -
hdu 1754 线段树 求区间内最值
直接上代码!#include#includeusing namespace std;#define lson l , m , rt << 1#define rson m + 1, r , rt << 1 | 1const int maxn=200005;int MAX[maxn<<2];void PushUP(int rt) { MAX[rt] = max(MAX原创 2012-03-12 09:17:57 · 419 阅读 · 0 评论 -
hdu 2795 线段树(贴广告)
题意:给出h , w , n 在h*w的地方贴n张1*wi的广告,广告尽量网上贴,其次尽量往左贴。可以贴的话输出行号。思路:建立min(h,n)长度的线段树,可以这样想,如果h>n 那么需要贴n次,最坏的情况也就是每一次占一行,需要n个叶子节点;如果h#includeusing namespace std;#define lson l , m , rt << 1#define rso原创 2012-03-12 12:44:50 · 341 阅读 · 0 评论 -
hdu 1698 线段树 成段更新
题意:输出T是case数,然后输入N,代表1~N 默认的value是1,然后输入区间[a,b] 和 value c ,把 a~b 的价值更新为c ,最后输出1~N的价值即可思路:线段树 成段更新 最后输出线段树的sum[1]就行。#includeusing namespace std;#define lson l , m , rt << 1#define rson m + 1 , r原创 2012-03-16 22:22:51 · 419 阅读 · 0 评论 -
poj 2828 插队买票
题意:输入人占的位置,和这个人对应的value,最后输出队伍的排列情况。思路:第一感觉像链表。。。但是我是找的线段树的题啊,而且数据量非常大,还是乖乖的想线段树吧,估计链表我也敲不出来。想了很久,哎,无奈还得找解题报告。这题是倒过来想的,最后一个插入队伍的人位置一定是确定的,这点容易想,但是他上一个插队的人的位置怎么确定呢,这就用到了线段树,线段树存储了这段区间内还有多少个"可以插的空",然后原创 2012-03-16 22:43:51 · 500 阅读 · 0 评论 -
poj 3468 线段树 区间内的线段和(成段更新)
题意:基本从题目可以知道了吧~思路:直接线段树搞TLE,后来看了这个报告http://hi.baidu.com/lewutian/blog/item/95421b828f63f19df603a6a2.html知道了,在插入线段的时候不需要一直插到叶子节点,而是用一个“score”来标记某一段区间内的增值。 比如要在 【3 6】 区间插个 3 在找到【 4 5 】 区间的时候就可原创 2012-03-10 22:22:45 · 503 阅读 · 0 评论 -
hdu 1394 线段树 求逆序数
题意:一个排列a1 a2 ... an ,把a1 放到最后会形成 a2 a3 ... an a1, 接着把 a2 放到最后会形成 a3 a4 ... an a1 a2 ,依次类推,会有n - 1种变换。求这些变换中最小的逆序数。当前元素的逆序数就是看当前的元素前面有多少个比它大的元素,把这个排列所有元素的逆序数加和,就是这个排列的逆序数。 思路:先初始化线段树,因为区间是0--n -原创 2012-03-12 09:45:44 · 460 阅读 · 0 评论 -
poj 2528 贴海报
题意:有一面墙,然后在上面贴海报,最后看一共能看到几张海报。思路:本来以为是简单的线段树,但是搞了许久未果。。。 然后上网看了看,才知道这是离散化+hash+线段树因为题给的,长度的范围比较大,但是给出的海报张数却不是很多。。。离散化我也是第一次看,我感觉就是把一些数换一种映射方式,但是数据之间的关系(比如:大小)是不变的。这道题就是把海报的范围,进行排序,去重,映射成了X数组的原创 2012-03-16 22:59:15 · 475 阅读 · 0 评论