POJ 3264
来源:互联网 发布:数据科学入门 pdf 编辑:程序博客网 时间:2024/04/29 10:24
/*Balanced Lineup区间最值的查询*/#include<cstdio>#include<cstring>#include<vector>#include<algorithm>using namespace std;#define lson (pos<<1)#define rson (pos<<1|1)const int maxn = 55555;int min_v[maxn << 2],max_v[maxn << 2];void pushup(int pos){ min_v[pos] = min(min_v[lson],min_v[rson]); max_v[pos] = max(max_v[lson],max_v[rson]);}void build(int l,int r,int pos){ if(l == r){ int v; scanf("%d",&v); min_v[pos] = max_v[pos] = v; return; } int mid = (l + r) >> 1; build(l,mid,lson); build(mid + 1,r,rson); pushup(pos);}void query(int L,int R,int l,int r,int pos,int& min_size,int& max_size){ if(l <= L && R <= r){ min_size = min(min_size,min_v[pos]); max_size = max(max_size,max_v[pos]); return; } int mid = (L + R) >> 1; if(l <= mid) query(L,mid,l,r,lson,min_size,max_size); if(r > mid) query(mid + 1,R,l,r,rson,min_size,max_size);}int main(){ int n,m; while(scanf("%d%d",&n,&m) != EOF){ build(1,n,1); for(int i = 0; i < m; i++){ int max_value = -1,min_value = 10000000; int x,y; scanf("%d%d",&x,&y); query(1,n,x,y,1,min_value,max_value); printf("%d\n",max_value - min_value); } } return 0;}
0 0
- poj 3264
- POJ 3264
- POJ 3264
- poj 3264
- POJ 3264
- poj 3264
- poj 3264
- poj 3264
- poj 3264
- POJ 3264
- poj 3264
- poj-3264
- poj 3264
- POJ-3264
- poj-3264
- POJ 3264
- POJ 3264
- poj 3264
- Go 编译过程分析(一) -- 编译脚本
- ios8分割线左边不到头,显示全的方法
- IOS UIGraphicsBeginImageContext 截图不清晰
- IOS打包脚本思路
- SetDll把Dll文件注入到.exe应用程序中
- POJ 3264
- 谈谈陌陌争霸在数据库方面踩过的坑
- 记一次android的cookie使用历程
- MQTT协议简介
- localStorage接口的使用心得
- 华为oj之字符个数统计
- IOS 学习九 Navigation Controller 的使用示例
- C程序内存分配
- iOS 画线