poj3264 线段树维护最大值最小值
来源:互联网 发布:企业数据库管理系统 编辑:程序博客网 时间:2024/06/05 11:48
用线段树来维护区间的最大值最小值
建好线段树,就可以针对查询来查出最大值最小值
建好线段树,就可以针对查询来查出最大值最小值
从而求出其差值
<span style="white-space:pre"></span>#include <set>#include <map>#include <queue>#include <stack>#include <deque>#include <math.h>#include <string>#include <vector>#include <stdio.h>#include <iostream>#include <string.h>#include <algorithm>#include <functional>#define mem(a) memset(a,0,sizeof(a));#define mem_1(a) memset(a,-1,sizeof(a));#define sf(a) scanf("%d",&a)#define sff(a,b) scanf("%d%d",&a,&b)#define sfff(a,b,c) scanf("%d%d%d",&a,&b,&c)#define lson l,mid,i<<1#define rson mid+1,r,i<<1|1const int INF = 0x7FFFFFFF;const int MAXN = 50100;const double PI = acos(-1.0);const double esp = 1e-10;using namespace std;struct node{int l,r,Max,Min;}Tree[MAXN<<2];int xx;int MAX,MIN;void build_tree(int l,int r,int i){Tree[i].l = l;Tree[i].r = r;if(l == r){sf(xx);Tree[i].Max = Tree[i].Min = xx;return ;}int mid = (l+r)>>1;build_tree(lson);build_tree(rson);Tree[i].Max = max(Tree[i<<1].Max,Tree[i<<1|1].Max);Tree[i].Min = min(Tree[i<<1].Min,Tree[i<<1|1].Min);}void Query(int l,int r,int i){if(Tree[i].l == l && Tree[i].r ==r){MAX = max(MAX,Tree[i].Max);MIN = min(MIN,Tree[i].Min);return ;}int mid = (Tree[i].l + Tree[i].r) >>1;if(r <= mid) Query(l,r,i<<1);else if(mid < l) Query(l,r,i<<1|1);else{Query(lson);Query(rson);}}int main(){int n,m,x,y;sff(n,m);build_tree(1,n,1);while(m--){sff(x,y);MAX = -1;MIN = INF;Query(x,y,1);printf("%d\n",MAX - MIN);}}
0 0
- poj3264 线段树维护最大值最小值
- poj3264 线段树求最大值,最小值
- POJ3264(线段树求区间最大值和最小值)
- 线段树区间修改 懒惰标记 维护和、最大值、最小值
- POJ3264_Balanced Lineup_线段树维护最大值和最小值
- poj3264——Balanced Lineup(线段树+区间最大值与最小值)
- 【POJ3264】【线段树】【维护多个值】【*4】
- POJ 3264 Balanced Lineup 线段树 维护区间最大值和最小值 建树
- poj3264线段树---区间最大最小值查询(RMQ)
- poj3264(线段树求区间最大最小值)
- Balanced Lineup(线段树+最大值,最小值)
- hdu5861 维护最大最小值线段树
- hdu1754线段树维护区间最大值
- 线段树维护区间最大值hdu1754
- 二维线段树维护最大值hdu1823
- spojGSS1 线段树维护区间和最大值
- 线段树之Poj3264
- poj3264线段树运用
- 我的第一个博客
- GObject入门教程
- ubuntu安装oracle-jdk,切换jdk版本
- Parcelabel序列化详细使用
- BCS和ECCS等合并系统简单对比
- poj3264 线段树维护最大值最小值
- Semaphore 实现 互斥
- 各种常见的排序,冒泡排序,选择排序,插入排序,希尔排序,堆排序,快速排序,基数排序,桶排序
- Android实现左右滑动指引效果
- Linux内核Socket参数调优
- 403错误
- tomcat搭建服务器
- 黑马程序员-设计模式
- GdiplusFlat(5)画图片