这个题应该算是比较简单的线段树问题吧,还可以用RMQ做,不过现在还不太熟悉就用线段树做了,直接附代码了!

#include <stdio.h>#define M 50000#define OX 0x7fffffffstruct node{int r,l;int Max,Min;};node elem[4*M+50];int num[4*M+50],m_max,m_min;int max(int a,int b){if (a>=b) return a;elsereturn b;}int min(int a,int b){if (a>=b) return b;elsereturn a;}void creat(int l,int r,int id){    elem[id].l=l;    elem[id].r=r;if (l==r){        elem[id].Max=elem[id].Min=num[l];return ;    }    int mid=(l+r)>>1;    creat(l,mid,id<<1);    creat(mid+1,r,(id<<1)+1);    elem[id].Max=max(elem[id<<1].Max,elem[(id<<1)+1].Max);    elem[id].Min=min(elem[id<<1].Min,elem[(id<<1)+1].Min);}void sre(int l,int r,int id){if (elem[id].l==l && elem[id].r==r){        m_max=max(m_max,elem[id].Max);        m_min=min(m_min,elem[id].Min);return ;    }if (l<=elem[id<<1].r){int mid=min(r,elem[id<<1].r);            sre(l,mid,id<<1);    }if (r>=elem[(id<<1)+1].l){int mid=max(l,elem[(id<<1)+1].l);        sre(mid,r,(id<<1)+1);    }}int main(){int N,Q;int i,t1,t2;    scanf("%d %d",&N,&Q);for (i=1 ; i<=N ; i++)        scanf("%d",&num[i]);    creat(1,N,1);for (i=1 ; i<=Q ; i++){        m_max=-OX;        m_min=OX;        scanf("%d %d",&t1,&t2);        sre(t1,t2,1);//printf("%d %d %d\n",m_max,m_min,m_max-m_min);        printf("%d\n",m_max-m_min);    }return0;}

转载于:https://www.cnblogs.com/Soul-ice-ACM/archive/2011/08/12/2136408.html

训练(线段树+树状数组) poj——3264相关推荐

  1. 树状数组 poj 2352

    #include<algorithm> #include<iostream> using namespace std;int C[32001];//数状数组 int Out[1 ...

  2. #树状数组#poj 2828 Buy Tickets

    题目 输入插队的人和插队的位置,求最终所有人的位置. 分析 树状数组,从后往前(倒推),然后就是要让在前面的次序-1. 代码 #include <cstdio> #include < ...

  3. poj 2352 Stars 线段树(先建后查/边建边查)/树状数组三种方法思路详解,带你深入了解线段树难度⭐⭐⭐★

    poj 2352 Stars 目录 poj 2352 Stars 1.树状数组 2.线段树,先建树后查找 3.线段树,边建树边查找 Description Astronomers often exam ...

  4. Housewife Wind POJ - 2763 倍增LCA+树状数组 或 树链剖分+线段树

    题目 链接:http://poj.org/problem?id=2763 Language:Default Housewife Wind Time Limit: 4000MS   Memory Lim ...

  5. POJ - 2352 Stars(线段树/树状数组)

    题目链接:点击查看 题目大意:给出n个星星的坐标,规定每个星星的等级为在它左下方的星星的个数,输出0~n-1每个等级共有多少个星星 题目分析:裸的线段树,因为x坐标和y坐标都已经给排好序了,是按照y升 ...

  6. A Simple Problem with Integers POJ - 3468(线段树+区间查询+区间修改+建树+懒惰标记模板)+(树状数组)

    题意: 有一个数组,有两种操作.1: Q a b 求[a,b]的和 2:C a b c 给[a,b] 的所有元素都加上c. 题目: You have N integers, A1, A2, ... , ...

  7. 【POJ - 3321】 Apple Tree(dfs序 + 线段树维护 或 dfs序 + 树状数组维护)

    题干: There is an apple tree outside of kaka's house. Every autumn, a lot of apples will grow in the t ...

  8. 【POJ - 3468 】 A Simple Problem with Integers (线段树模板 区间更新 + 区间和查询)(不能树状数组或差分数组)

    题干: You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type o ...

  9. 8.8线段树和树状数组

    题目链接   http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28619#overview 密码 acmore 还是感觉不怎么会线段树,还是 ...

  10. POJ-2155 Matrix 二维线段树 | 树状数组

    题目链接:http://poj.org/problem?id=2155 比较典型的二维线段树题目,直接永久更新即可,在询问的时候,要询问每个x区间的子树,复杂度O(log(n)^2). 也可以用树状数 ...

最新文章

  1. VS 2017显示“高级保存选项”命令操作方法
  2. xcode4 语法高亮和自动补全失效的解决办法
  3. Python中最常用的字符串方法!
  4. java基础---流程控制
  5. linux文本运行层次,Linux基础知识之---文件系统层级结构
  6. 心跳超时时间设置_定时器实现之时间轮算法
  7. react周期函数介绍
  8. 安卓蓝牙BluetoothBLE开发JDY-10M
  9. PHP从入门到精通 第二版pdf
  10. 怎么样计算机械功率,电功率与机械功率的换算公式
  11. python3 判断.xlsl表的两列是否一致
  12. gmail邮箱注册成功流程
  13. 翟菜花:她经济的营销攻坚战,4C的用户导向才是破局之法
  14. JavaScript 判断手机号码格式 正则表达式 亲测
  15. 新概念英语第二册61-96课(转)
  16. ZZULIOJ:1016: 银行利率
  17. Java面向对象笔记 • 【第10章 Swing编程初级应用】
  18. [MRCTF2020]套娃
  19. #Python #2022卡塔尔世界杯 #FIFA World Cup Qatar 2022 # 机器学习 #数据分析 用Python预测世界杯决赛
  20. 手绘 | 深入解析风控8大场景中的机器学习应用

热门文章

  1. 红外传感器型号和参数_红外传感器参数|热释电红外传感器参数
  2. python安装缺少api怎么办_请问缺少win32api模块该如何解决?
  3. 停车场管理系统代码_jsp19109商场商铺停车场服务系统-SSM-Mysql
  4. macos安装低版本php,mac下安装多个版本PHP及切换
  5. centos路由查看命令_CentOS下使用Route命令添加路由
  6. Unity项目代码书写规范
  7. 打造“神犇”是教育的未来吗?
  8. Java生鲜电商平台-微服务入门与服务的拆分架构实战
  9. 点击跳转到QQ聊天界面
  10. 标准C++类std::string的内存共享和Copy-On-Write(写时拷贝)