POJ3264 Balances Lineup
建两颗线段树分别存最大和最小值,模板题~
#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的更多相关文章
- POJ3264 Balanced Lineup —— 线段树单点更新 区间最大最小值
题目链接:https://vjudge.net/problem/POJ-3264 For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000 ...
- poj3264 - Balanced Lineup(RMQ_ST)
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 45243 Accepted: 21240 ...
- POJ3264 Balanced Lineup
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 44720 Accepted: 20995 ...
- 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 ...
- POJ3264 Balanced Lineup 【线段树】+【单点更新】
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 32778 Accepted: 15425 ...
- 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 ...
- poj3264 Balanced Lineup(树状数组)
题目传送门 Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 64655 Accepted: ...
- POJ-3264 Balanced Lineup(区间最值,线段树,RMQ)
http://poj.org/problem?id=3264 Time Limit: 5000MS Memory Limit: 65536K Description For the daily ...
- POJ3264 Balanced Lineup [RMQ模板]
题意:有n头牛,输入他们的身高,求某区间身高的极值的差(max-min), 用RMQ模板,同时构造求极大值和极小值的两个数组. //poj3264 #include <iostream> ...
随机推荐
- C++-POJ1018-Communication System
贪心算法:先排序,再枚举最小带宽(B),每次更新当前最小花费(P)和以及答案(ans) #include <cstdio> #include <algorithm> using ...
- 修正_typora文档复制到博客图片失效
开始 今天开始尝试使用 Typora 写markdown 然后复制到博客园,不过会有一个问题 那就是 typroa 插入的图片都是本地的,md文档复制到博客园之后,图片都失效了 通过百度,有工具可以直 ...
- [IOI2005]河流
Description Luogu3354 Solution 一道树形dp的题. 首先考虑转移,很简单,就是这个点做不做伐木场.为了方便转移,我们定义状态为\(f_{i,j,k}\)表示点\(i\)及 ...
- Java传(1)
____________________________去告诉世界,我已经横空出世了! 你好丫,世界! public class HelloWorld{ public static void main ...
- Python requests库模拟浏览器行为的一些技巧记录
如下都是一些经验之谈,不定期更新,喜欢可以关注哦. 忽略ssl报错 一些证书问题会导致程序报错,解决方法为在发送请求的时候,带上verify=False参数即可: result = requests. ...
- 用python实现网络文件共享
第一步:打开命令行 第二步:切换到要共享的文件夹目录 第三步:运行命令 python -m http.server 端口号 然后在浏览器输入显示的路径即可访问文件夹下的文件,点击即可下载,手机端亦可访 ...
- CentOS7服务器状态下安装xampp
遇到的问题 1.远程不能访问phpmyadmin,只能在本地访问,但是本地为命令行模式. 需要修改一下服务器端的配置,我们找到 /opt/lampp/etc/extra/httpd-xampp.con ...
- 版本控制gitlab
目录 1. 版本控制介绍 2. gitlab部署 3. gitlab管理 1. 版本控制介绍 版本控制是指对软件开发过程中各种程序代码.配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一 ...
- 无源汇有上下界可行流(ZQU 1590)
无源汇有上下界可行流(也就是循环流) 模型:一个网络,求出一个流,使得每条边的流量必须>=Li且<=Hi, 每个点必须满足总流入量=总流出量(流量守恒)(这个流的特点是循环往复,无始无终) ...
- 数据库程序接口——JDBC——功能第二篇——数据源之C3P0数据源
综述 C3P0由三部分内容组成.实例化对象,各配置项的含义,以及加载配置项的方式. 实例化对象的方式有三种,第一种方式直接new ComboPooledDataSource,第二种方式使用工厂类Dat ...