建两颗线段树分别存最大和最小值,模板题~

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=1e6+;
struct node {
int l;
int r;
int sum;
}segTree1[maxn*],segTree2[maxn*];
int a[maxn];
int N;
int Q;
int x,y;
void build1 (int i,int l,int r) {
segTree1[i].l=l;
segTree1[i].r=r;
if (l==r) {
segTree1[i].sum=a[l];
return;
}
int mid=(l+r)>>;
build1(i<<,l,mid);
build1(i<<|,mid+,r);
segTree1[i].sum=max(segTree1[i<<].sum,segTree1[i<<|].sum);
}
int query1 (int i,int l,int r) {
if (l==segTree1[i].l&&r==segTree1[i].r) return segTree1[i].sum;
int mid=(segTree1[i].l+segTree1[i].r)>>;
if (r<=mid) return query1(i<<,l,r);
else if (l>mid) return query1(i<<|,l,r);
else return max(query1(i<<,l,mid),query1(i<<|,mid+,r));
}
void build2 (int i,int l,int r) {
segTree2[i].l=l;
segTree2[i].r=r;
if (l==r) {
segTree2[i].sum=a[l];
return;
}
int mid=(l+r)>>;
build2(i<<,l,mid);
build2(i<<|,mid+,r);
segTree2[i].sum=min(segTree2[i<<].sum,segTree2[i<<|].sum);
}
int query2 (int i,int l,int r) {
if (l==segTree2[i].l&&r==segTree2[i].r) return segTree2[i].sum;
int mid=(segTree2[i].l+segTree2[i].r)>>;
if (r<=mid) return query2(i<<,l,r);
else if (l>mid) return query2(i<<|,l,r);
else return min(query2(i<<,l,mid),query2(i<<|,mid+,r));
}
int main () {
scanf ("%d %d",&N,&Q);
for (int i=;i<=N;i++) scanf ("%d",&a[i]);
build1(,,N);
build2(,,N);
for (int i=;i<Q;i++) {
scanf ("%d %d",&x,&y);
printf ("%d\n",query1(,x,y)-query2(,x,y));
}
return ;
}

POJ3264 Balances Lineup的更多相关文章

  1. POJ3264 Balanced Lineup —— 线段树单点更新 区间最大最小值

    题目链接:https://vjudge.net/problem/POJ-3264 For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000 ...

  2. poj3264 - Balanced Lineup(RMQ_ST)

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 45243   Accepted: 21240 ...

  3. POJ3264 Balanced Lineup

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 44720   Accepted: 20995 ...

  4. poj3264 balanced lineup【线段树】

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

  5. POJ3264 Balanced Lineup 【线段树】+【单点更新】

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 32778   Accepted: 15425 ...

  6. kuangbin专题七 POJ3264 Balanced Lineup (线段树最大最小)

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

  7. poj3264 Balanced Lineup(树状数组)

    题目传送门 Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 64655   Accepted: ...

  8. POJ-3264 Balanced Lineup(区间最值,线段树,RMQ)

    http://poj.org/problem?id=3264 Time Limit: 5000MS     Memory Limit: 65536K Description For the daily ...

  9. POJ3264 Balanced Lineup [RMQ模板]

    题意:有n头牛,输入他们的身高,求某区间身高的极值的差(max-min), 用RMQ模板,同时构造求极大值和极小值的两个数组. //poj3264 #include <iostream> ...

随机推荐

  1. vue-cli的版本查看及vue2.x和vue3.0的区别

    链接:https://www.cnblogs.com/wyongz/p/11505048.html 链接2:https://blog.csdn.net/weixin_37745913/article/ ...

  2. 调用原生硬件 Api 实现照相机 拍照和相册选择 以及拍照上传

    一.Flutter image_picker 实现相机拍照和相册选择   https://pub.dev/packages/image_picker   二.Flutter 上传图片到服务器   ht ...

  3. 后端——框架——日志框架——logback——《官网》阅读笔记——第一章节

    第一章节搭建了logback日志框架的环境,演示了Hello World的示例,并详细分析了示例. 搭建日志框架的过程非常简单,只需要在项目的classpath上添加以下三个jar包,logback- ...

  4. alibaba-java-style-guide

    (一) 命名规约 1.[强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name / __name / $Object / name_ / name$ / O ...

  5. 百炼OJ - 1002 - 方便记忆的电话号码

    题目链接 思路 开个一千万的数组计数,最后遍历即可. #include<stdio.h> #include<string.h> #include<algorithm> ...

  6. Can't bind to 'ngModel' since it isn't a known property of 'input'.

    angular项目启动报错 Can't bind to 'ngModel' since it isn't a known property of 'input'. 原因:当前module模块未引入 ' ...

  7. import matplotlib.pyplot as plt出错

    >>>import matplotlib.pyplot as plt /usr/lib/python2.7/dist-packages/matplotlib/font_manager ...

  8. .h头文件 .lib库文件 .dll动态链接库文件关系

    .h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和lib就够 ...

  9. Euler Sums系列(六)

    \[\Large\displaystyle \sum_{n=1}^{\infty}\frac{H_{2n}}{n(6n+1)}\] \(\Large\mathbf{Solution:}\) Let \ ...

  10. Chinese Window Lattice And CSS

    谁向云端着此亭,檐前树木映窗棂.-- 释绍嵩<陪赵知府登桃岭山亭> (image from 中国窗棂) The traditional Chinese window lattice has ...