题目来源:URAL 1019. Line Painting
题意:求最长的一段全部为白色的区间
思路:线段树成段更新 区间合并 离散化 这里对应的是一段区间 所以每次不是m+1 而是 l m 和 m r 了 另外我加上了0 和 10^9 这两个点
每一段区间(l, r)我记录的是l和r之间有多少条线段
#include
#include
#include
using namesp...
分类:
其他好文 时间:
2014-08-25 17:12:12
阅读次数:
229
POJ 2104 这题说的是给了一个区间求区间的第K大的数, 这点利用 函数式线段树的前缀式线段是的 长处 解决, 我们将 每个数字离散一下, 然后线段树存的是他的孩子个数,然后利用函数式线段树的前缀思想 两个前缀相减便得到了我们想要的 区间中的点的个数#include #include #incl...
分类:
其他好文 时间:
2014-08-25 16:53:04
阅读次数:
167
Codeforces Round #254 (Div. 2)E题这题说的是给了一个一段连续的区间每个区间有一种颜色然后一个彩笔从L画到R每个区间的颜色都发生了 改变然后 在L和R这部分区间里所用的颜色变成了x 然后每个区间的 色度加上abs(x-Yi) Yi 为原位置的颜色,还有一个操作就是求 L ...
分类:
其他好文 时间:
2014-08-25 16:39:14
阅读次数:
273
题意:给出矩形两对角点坐标,求矩形面积并。解法:线段树+离散化。每加入一个矩形,将两个y值加入yy数组以待离散化,将左边界cover值置为1,右边界置为2,离散后建立的线段树其实是以y值建的树,线段树维护两个值:cover和len,cover表示该线段区间目前被覆盖的线段数目,len表示当前已覆盖的...
分类:
其他好文 时间:
2014-08-25 16:30:44
阅读次数:
293
题目链接:uva 1232 - SKYLINE
题目大意:就是n次修改维护最大值,如果一个位置的最大值被修改了,覆盖值就+1,问说总的覆盖值。
解题思路:线段树的区间修改,每次修改后返回修改到的区间长度即可。
#include
#include
#include
using namespace std;
const int maxn = 100000;
#define lso...
分类:
其他好文 时间:
2014-08-25 15:02:10
阅读次数:
210
一个线段树问题节点记录这样几个值,sum(这个区间的总和),best(这个区间中的最大值),lazy(翻倍的lazy标记)这里的[a,b]区间代表数为a与b之间的那些东西,因为无论怎么弄这些相同数字的都是连续的 1 #include 2 #include 3 #include 4 #i...
分类:
其他好文 时间:
2014-08-25 11:28:34
阅读次数:
242
http://poj.org/problem?id=2750
有n个数围成一个圈,每次可以将a位置上的数变为b,对每个操作,输出区间的最大连续子段和,连续的子段长度不能超过n。
区间合并问题,因为是求连续子段的和。先把圈从1和n之间断开,变为一条链,先在链上求最长连续的和。这个最长连续的和取左节点最长连续和,右节点最长连续和,左节点从右边数最大连续和加上右节点从左边数最大连续和...
分类:
其他好文 时间:
2014-08-25 10:03:54
阅读次数:
191
题目大意:
给出各个房子阴影的长度(以区间表示)和高度,求阴影的总面积。
解题思路:矩形面积并。
下面是代码:
#include
#include
#include
//#include
#include
#include
#include
#include
#include
#include
#include
#define eps 1e-8
#d...
分类:
其他好文 时间:
2014-08-25 08:46:44
阅读次数:
227
题目链接:uva 11235 - Frequent values
题目大意:给定一个非降序的整数数组,要求计算对于一些询问(i,j),回答ai,ai+1,…,aj中出现最多的数出现的次数。
解题思路:因为序列为非降序的,所以相同的数字肯定是靠在一起的,所以用o(n)的方法处理处每段相同数字的区间。然后对于每次询问:
num[i]=num[j]:j?i+1numi≠numj:max...
分类:
其他好文 时间:
2014-08-24 23:53:23
阅读次数:
317
题目链接:uva 1400 - "Ray, Pass me the dishes!"
题目大意:给定一个长度为n个整数序列,对m次询问作出回答,对于每次询问(a,b),找到两个下标x,y使得x到y的连续和为区间a,b中最大的连续和,如果存在多解优先x小,然后y小。
解题思路:线段树,对于每个节点维护三个线段值:
max_sub:区间连续最大和max_prefix:区间连续前缀最大...
分类:
其他好文 时间:
2014-08-24 23:52:43
阅读次数:
405