http://poj.org/problem?id=3264

初学线段可以做的水题,也是线段树的基础运用。也是我的第一个线段树的题。

题意:在区间范围内的最大值减去最小值

思路:线段树记录下每个区间内的最大值以及最小值,然后查询。

我也是第一次做,然后耗时比较多。

 #include <stdio.h>
#include <string.h>
#define maxn 500500 int max(int x,int y)
{
return x > y? x : y ;
}
int min(int x,int y)
{
return x > y? y : x;
} struct note{ int Min,Max; }segtree[ maxn * ]; int arra[ maxn ]; void build(int root , int arr[] , int instart , int iend)
{
if(instart == iend)
{
// segtree[ root ].val = arr[ instart ];
segtree[ root ].Max = arr[ instart ];
segtree[ root ].Min = arr[ instart ];
}
else
{
int mid = (instart+iend)/;
build( root * , arr , instart , mid );
build( root * + , arr , mid + , iend );
segtree[ root ].Max = max(segtree[ root * ].Max,segtree[ root * + ].Max);
segtree[ root ].Min = min(segtree[ root * ].Min,segtree[ root * + ].Min);
}
} int remin(int root ,int nstart , int nend , int qstart , int qend)
{
if(qstart > nend || qend < nstart)
return maxn*;
if( qstart <= nstart && qend >= nend )
return segtree[ root ].Min;
int mid =( nstart + nend ) / ;
return min(remin(root * ,nstart,mid,qstart,qend),
remin(root * + , mid + , nend , qstart , qend ));
}
int reMax(int root , int nstart , int nend , int qstart , int qend)
{
if(qstart > nend || qend < nstart)
return ;
if(qstart <= nstart && qend >= nend )
return segtree [ root ].Max;
int mid = ( nstart + nend ) / ;
return max(reMax(root * , nstart , mid , qstart , qend ),
reMax(root * + , mid + , nend , qstart , qend ) );
} int main()
{
// freopen("in.txt","r",stdin);
int m,n,a,b,ma,mi;
scanf("%d%d",&m,&n);
for( int i = ; i <= m ; i++ )
scanf("%d",&arra[ i ]);
build(,arra,,m);
while(n--)
{
scanf("%d%d",&a,&b);
ma = reMax(,,m,a,b);
mi = remin(,,m,a,b);
printf("%d\n",ma-mi);
}
return ;
}

poj 3264(线段树)的更多相关文章

  1. POJ——3264线段树

    题目: 输入两个数(m,n),m表示牛的头数,n表示查询的个数.查询时输入两个数(x,y),表示查询范围的起始值和终止值,查询结果是,这个区间内牛重量的最大值减去牛重量的最小值,数量级为1000,00 ...

  2. poj 3264 线段树 求区间最大最小值

    Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same ...

  3. POJ - 3264 线段树模板题 询问区间最大最小值

    这是线段树的一个模板题,给出一串数字,然后询问区间的最大最小值. 这个其实很好办,只需把线段树的节点给出两个权值,一个是区间的最小值,一个是区间的最大值,初始化为负无穷和正无穷,然后通过不断地输入节点 ...

  4. POJ 3264 线段树入门解题报告

    题意:给n个值, Q次询问, 每次询问给定一个区间, 要求输出该区间最大最小值之差 思路:暴力的话每次询问都要遍历多次for循环一定会超时, 用线段树记录区间的信息(左边界右边界, 该区间最大值最小值 ...

  5. poj 3264 线段树

    题目意思:给定Q(1<=Q<=200000)个数A1,A2,```,AQ, 多次求任一区间Ai-Aj中最大数和最小数的差 线段树太弱了,题目逼格一高连代码都读不懂,今天开始重刷线段树,每天 ...

  6. POJ 3264 线段树 ST

    题意:给你一个数列,从中挑一段,问你这段数的最大值减最小值是多少. 思路:线段树. // by Sirius_Ren #include <cstdio> #include <algo ...

  7. G - Balanced Lineup POJ - 3264 线段树最大最小值区间查询模版题

    题意 给出一个序列  每次查询区间的max-min是多少 思路:直接维护max 和min即可  写两个query分别查最大最小值 #include<cstdio> #include< ...

  8. poj 2886 线段树+反素数

    Who Gets the Most Candies? Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 12744   Acc ...

  9. poj 3468(线段树)

    http://poj.org/problem?id=3468 题意:给n个数字,从A1 …………An m次命令,Q是查询,查询a到b的区间和,c是更新,从a到b每个值都增加x.思路:这是一个很明显的线 ...

  10. POJ 2828 线段树(想法)

    Buy Tickets Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 15422   Accepted: 7684 Desc ...

随机推荐

  1. [网络安全] [视频分享]KaLi Linux基础培训2016 最新的哦【福吧资源网】

    最新的教程同时针对kali linux2016最新版本的多个问题解决办法还有一些实例利用. 下载地址:http://www.fu83.cn/thread-310-1-1.html

  2. win7 装了VB虚拟机 开始挺好用 后来突然就打不开了 提示如下错误:(如图)创建 COM 对象失败.

    创建 COM 对象失败. 应用程序将被中断. Start tag expected, '<' not found. Location: 'C:\Users\Mike/.VirtualBox\Vi ...

  3. 【原】关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化

    一.标准化(Z-Score),或者去除均值和方差缩放 公式为:(X-mean)/std  计算时对每个属性/每列分别进行. 将数据按期属性(按列进行)减去其均值,并处以其方差.得到的结果是,对于每个属 ...

  4. 图片加载框架Fresco与V4包冲突解决方法

  5. 教你一招:EXCEL单元格随机生成字母

    =CHAR(RANDBETWEEN(1,4)+65) 65代表大写字母A,依次类推 1代表从A开始 4代表到D结束

  6. 给td添加滚动条

    <td><div style="overflow-y:scroll;height:330px;">test</div></td>

  7. 区间第K大(一)

    Problem: 给定无序序列S:[b, e),求S中第K大的元素. Solution 1.裸排序 2.现将区间均分成两段,S1, S2,对S1,S2分别排序,然后

  8. ionic ios 友盟多渠道/自动签名/加固之腾讯云。乐固

    之前写了一篇文章主要是介绍使用gradle进行多渠道分发处理的文章--链接:http://www.cnblogs.com/happen-/p/6029387.html 最近在做app上线的处理,发现某 ...

  9. 分享:录制gif小图片工具

    今天博主分享一个录制gif小图片的工具[LICEcap]: 有的时候,图片解释起来不够直观,如果是一段小动画,别人一看就懂了. 工具我放在百度网盘上面,当然也可以自己在网上下载. 下载地址:http: ...

  10. C# 的tcp Socket设置自定义超时时间

    简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP ...