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

#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. AcWing 907. 区间覆盖

    //1.将所有区间按照左端点从小到大排序 //2.从前往后依次枚举每个区间 //首先选择能够覆盖左端点的区间当中右端点最靠右的端点 //在所有能覆盖start的区间当中,选择右端点最大的区间 //选完 ...

  2. centos7 命令 对比 cenots6 命令

    1)  列出所有service开机启动项 centos 7 systemctl list-unit-files |grep enabled centos 6 chkconfig --list|grep ...

  3. HTML学习(9)头部

    HTML <head> 元素 <head> 元素包含了所有的头部标签元素.在 <head>元素中你可以插入脚本(scripts), 样式文件(CSS),及各种met ...

  4. sqlldr总结参数介绍

    有效的关键字: userid --    ORACLE username/password control -    控制文件 log -        记录的日志文件 *            表示 ...

  5. C#中如何将字符串或者字符串数组写入文本文件

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. 解决fences2.01在win8.1的状态下无法移动桌面图标问题

    Fences 2.01破解版      链接:http://pan.baidu.com/s/1eSH2tGI 密码:o7oe Fences 2.01 win8.1修复补丁(stardock2.11)  ...

  7. WKWebView 使用的坑

    WKWebView 简介: WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨重难用.内存泄漏的 UIWebView.WKWebView ...

  8. jmeter巧用自增长型变量

    实现目的 在进行性能测试时,某些请求中的参数值并不允许被重复使用,比如账号的创建.开通授权等服务,这时就需要在jmeter中构造一些自增长型的变量,供后续请求使用,以解决参数值重复的问题. 脚本实现 ...

  9. 瀑布流无限加载infinitescroll插件与masonry插件使用

    masonry官网地址http://masonry.desandro.com/,infinitescroll官网地址http://www.infinite-scroll.com/ 无限滚动原理:无限滚 ...

  10. 从游击队到正规军(三):基于Go的马蜂窝旅游网分布式IM系统技术实践

    本文由马蜂窝技术团队电商交易基础平台研发工程师"Anti Walker"原创分享. 一.引言 即时通讯(IM)功能对于电商平台来说非常重要,特别是旅游电商. 从商品复杂性来看,一个 ...