POJ 3264 Balanced Lineup 【线段树】
<题目链接>
题目大意:
求给定区间内最大值与最小值之差。
解题分析:
线段树水题,每个节点维护两个值,分别代表该区间的最大和最小值即可。
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define Lson rt<<1,l,mid #define Rson rt<<1|1,mid+1,r #define INF 0x3f3f3f3f +; int n,m; int a[N]; struct Tree{ int mn,mx; }tr[N<<]; void Pushup(int rt){ tr[rt].mx=max(tr[rt<<].mx,tr[rt<<|].mx); tr[rt].mn=min(tr[rt<<].mn,tr[rt<<|].mn); } void build(int rt,int l,int r){ if(l==r){ tr[rt].mn=tr[rt].mx=a[l]; return; } ; build(Lson); build(Rson); Pushup(rt); } int query(int rt,int l,int r,int L,int R,int c){ if(L<=l&&r<=R){ if(!c)return tr[rt].mn; else return tr[rt].mx; } ; int mxval=-INF,mnval=INF; if(L<=mid){ if(!c)mnval=min(mnval,query(Lson,L,R,c)); //注意这里最大和最小都是向左儿子递归 else mxval=max(mxval,query(Lson,L,R,c)); } if(R>mid){ if(!c)mnval=min(mnval,query(Rson,L,R,c)); else mxval=max(mxval,query(Rson,L,R,c)); } if(!c)return mnval; else return mxval; } int main(){ while(scanf("%d%d",&n,&m)!=EOF){ ;i<=n;i++){ scanf("%d",&a[i]); } build(,,n); ;i<=m;i++){ int u,v; scanf("%d%d",&u,&v); ,,n,u,v,); ,,n,u,v,); printf("%d\n",mx-mn); } } ; }
2018-09-23
POJ 3264 Balanced Lineup 【线段树】的更多相关文章
- [POJ] 3264 Balanced Lineup [线段树]
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 34306 Accepted: 16137 ...
- poj 3264 Balanced Lineup(线段树、RMQ)
题目链接: http://poj.org/problem?id=3264 思路分析: 典型的区间统计问题,要求求出某段区间中的极值,可以使用线段树求解. 在线段树结点中存储区间中的最小值与最大值:查询 ...
- POJ 3264 Balanced Lineup 线段树RMQ
http://poj.org/problem?id=3264 题目大意: 给定N个数,还有Q个询问,求每个询问中给定的区间[a,b]中最大值和最小值之差. 思路: 依旧是线段树水题~ #include ...
- POJ 3264 Balanced Lineup 线段树 第三题
Balanced Lineup Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line ...
- POJ 3264 Balanced Lineup (线段树)
Balanced Lineup For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the s ...
- POJ - 3264 Balanced Lineup 线段树解RMQ
这个题目是一个典型的RMQ问题,给定一个整数序列,1~N,然后进行Q次询问,每次给定两个整数A,B,(1<=A<=B<=N),求给定的范围内,最大和最小值之差. 解法一:这个是最初的 ...
- 【POJ】3264 Balanced Lineup ——线段树 区间最值
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 34140 Accepted: 16044 ...
- Poj 3264 Balanced Lineup RMQ模板
题目链接: Poj 3264 Balanced Lineup 题目描述: 给出一个n个数的序列,有q个查询,每次查询区间[l, r]内的最大值与最小值的绝对值. 解题思路: 很模板的RMQ模板题,在这 ...
- POJ 3264 Balanced Lineup【线段树区间查询求最大值和最小值】
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 53703 Accepted: 25237 ...
- POJ 3264 Balanced Lineup 【ST表 静态RMQ】
传送门:http://poj.org/problem?id=3264 Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total S ...
随机推荐
- JS打开新的窗口
一.使用JS打开新窗口 1. 超链接<a href="http://www.wumz.me" title="Mauger`s Blog">Welco ...
- input,select默认颜色修改
input::-webkit-input-placeholder{color: #7f7f7f;} select{color: #7f7f7f} option{color: #7f7f7f;}
- kafka架构浅显理解
Kafka的概念: 1. AMQP协议 Advanced Message Queuing Protocol (高级消息队列协议) The Advanced Message Queuing Protoc ...
- ionic3 点击输入 框弹出白色遮罩 并把 界面顶到上面
这个蛋疼 问题 ,在android 上面遇到这种情况 ,键盘弹出的时候 总有一个白色的遮罩在后面出现,网上查了很久都没发现原因. 偶然发现一个方法 ,试下了下 问题解决了. 代码如下: IonicMo ...
- Django框架之第三篇模板语法(重要!!!)
一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 一.模板语法之变量:语法为 {{ }}: 在 Django 模板中遍历复杂数据结构的关键 ...
- SSM文件下载
SSM框架文件下载比文件上传稍微麻烦一点,但这次还是写成最简朴的形式,哈哈~如下 参考:http://blog.csdn.net/lcx556224523/article/details/702076 ...
- Python作业之分页显示内容
#coding:utf8 user_list =[] for i in range(1,302): tmp = "{'user':'alex-%s,'email':'alex%s@email ...
- C#Enum用Tuple保存值绑定到前端的CheckBox
//把数字转成枚举 public static T[] NumStringsToEnums<T>(string enumNumString ) //where T:Enum { if (s ...
- PHP中self和this的用法区别
PHP支持类和面向对象结构,PHP的类的静态函数和变量不与任何特定类的实例相关联(换句话说,一个对象).请看:类与对象的区别. 相反,静态函数和变量与类定义本身相关联.换言之,一个类的所有实例都共享相 ...
- 微信jssdk分享功能开发
先理解下分享: 在app端 ,经常能看见 分享按钮的功能,(分享给朋友,分享到朋友圈,分享到QQ空间等等): https://open.weixin.qq.com/(微信开发平台),这需要到开放平台注 ...