【线段树查询区间最值】poj 3264 Balanced Lineup
#include<cstdio>
#include<algorithm>
using namespace std; const int maxn=;
struct Seg
{
int l,r,mi,ma;
}tree[maxn*];
int val[maxn]; void build(int l,int r,int i=)
{
tree[i].l=l;
tree[i].r=r;
if (l==r)
{
tree[i].mi=val[l];
tree[i].ma=val[l];
}
else
{
int mid=l+r>>;
build(l,mid,i<<);
build(mid+,r,i<<|);
tree[i].mi=min(tree[i<<].mi,tree[i<<|].mi);
tree[i].ma=max(tree[i<<].ma,tree[i<<|].ma);
}
} int querymi(int l,int r,int i=)
{
if (tree[i].l==l && tree[i].r==r) return tree[i].mi;
int mid=tree[i].l+tree[i].r>>;
if (r<=mid) return querymi(l,r,i<<);
if (l>mid) return querymi(l,r,i<<|);
return min(querymi(l,mid,i<<),querymi(mid+,r,i<<|));
} int queryma(int l,int r,int i=)
{
if (tree[i].l==l && tree[i].r==r) return tree[i].ma;
int mid=tree[i].l+tree[i].r>>;
if (r<=mid) return queryma(l,r,i<<);
if (l>mid) return queryma(l,r,i<<|);
return max(queryma(l,mid,i<<),queryma(mid+,r,i<<|));
} int main()
{
int n,m;
scanf("%d%d",&n,&m);
for (int i=;i<=n;i++) scanf("%d",&val[i]);
build(,n);
for (int i=;i<m;i++)
{
int l,r;
scanf("%d%d",&l,&r);
printf("%d\n",queryma(l,r)-querymi(l,r));
}
return ;
}
【线段树查询区间最值】poj 3264 Balanced Lineup的更多相关文章
- xdoj-1324 (区间离散化-线段树求区间最值)
思想 : 1 优化:题意是覆盖点,将区间看成 (l,r)转化为( l-1,r) 覆盖区间 2 核心:dp[i] 覆盖从1到i区间的最小花费 dp[a[i].r]=min (dp[k])+a[i]s; ...
- hdu 1754 I Hate It (线段树求区间最值)
HDU1754 I Hate It Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u D ...
- Poj 3264 Balanced Lineup RMQ模板
题目链接: Poj 3264 Balanced Lineup 题目描述: 给出一个n个数的序列,有q个查询,每次查询区间[l, r]内的最大值与最小值的绝对值. 解题思路: 很模板的RMQ模板题,在这 ...
- 滑动窗口(poj,线段树维护区间最值)
题目描述 现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口.现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值. 例如: The array i ...
- POJ 3264 Balanced Lineup(zkw线段树)
[题目链接] http://poj.org/problem?id=3264 [题目大意] 求区间最大值和最小值的差值 [题解] 线段树维护区间极值即可 [代码] #include <cstdio ...
- 2016年湖南省第十二届大学生计算机程序设计竞赛---Parenthesis(线段树求区间最值)
原题链接 http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1809 Description Bobo has a balanced parenthes ...
- POJ 3264 Balanced Lineup 【ST表 静态RMQ】
传送门:http://poj.org/problem?id=3264 Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total S ...
- hdu1754 I hate it线段树模板 区间最值查询
题目链接:这道题是线段树,树状数组最基础的问题 两种分类方式:按照更新对象和查询对象 单点更新,区间查询; 区间更新,单点查询; 按照整体维护的对象: 维护前缀和; 维护区间最值. 线段树模板代码 # ...
- POJ 3264 Balanced Lineup 【线段树/区间最值差】
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 62103 Accepted: 29005 Cas ...
随机推荐
- Kubenetes里pod和service绑定的实现方式
我之前的文章 如何在Kubernetes里创建一个Nginx service介绍了如何创建一个Kubernetes pod和service,使用的方法是命令kubectl run. 本文介绍另一种方式 ...
- Google Colab的一些注意事项
1.执行命令行前面加! 当我们使用python解释器时,我们需要不停地在命令行和IDE 之间切换,当我们需要使用命令行工具时.不过,Jupyter Notebook给了我们在notebook中运行sh ...
- 给我说说你能想到几种分布式session实现
附录: https://mp.weixin.qq.com/s/8Hh4j0CjfF5S8zM29JZl2w # 面试官心理分析 面试官问了你一堆 dubbo 是怎么玩儿的,你会玩儿 dubbo 就可以 ...
- 量化投资,你需要了解的A股财务数据
摘要:基本面量化是应用量化研究领域的重头戏,财务数据的整理和加工是基本面量化的第一步.本文梳理了财务数据的基本知识,包括报表类型.数据来源.调整更正和使用原则等,并给出了单季度和TTM数据的计算流程. ...
- redux是全局状态(数据)的管理机制,局部数据没有意义
redux是全局状态(数据)的管理机制,局部数据没有意义
- EOF与feof
在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file).在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件.在文本文件中,数据都是 ...
- syslog(),closelog()与openlog()--日志操作函数 (1)
文章出处:http://blog.csdn.net/xx77009833/archive/2010/07/30/5776383.aspx 为了满足某些目的,进行日志记录是很有必要的. 在典型的 LIN ...
- luogu愚人节比赛划水记
先放链接:愚人节比赛 说好的 不毒瘤 呢?题目都太神奇了吧! 管理员的脑洞orz T1 这个可以说是蒙数据蒙出来的,直接输出"0",AC T2 本机房dalao成功发现" ...
- Greenplum/Deepgreen(单机/伪分布)安装文档
Greenplum/Deepgreen数据库安装(单机/伪分布) 首先去官网下载centos7:https://www.centos.org/download/,选择其中一个镜像下载即可,网上随意下载 ...
- 组件开发中的Controller View模式
“Controller View”模式: 组件嵌套中,最顶层的组件只管理State 子组件为纯组件 顶层组件分配State给子组件,作为子组件的props 子组件接受顶层组件发来的State作为自身的 ...