[kuangbin带你飞]专题七 线段树 G POJ 3264
来源:互联网 发布:linux 使用ftp 编辑:程序博客网 时间:2024/05/21 00:47
求区间最大最小值差.
#include <cstdio>#include <algorithm>using namespace std;const int maxn=5e5+10;#define inf 0x3f3f3f3f#define lid (id<<1)#define rid (id<<1|1)int a[maxn];struct node{ int l,r,Max,Min;}tr[maxn*4];void push_up(int id){ tr[id].Max=max(tr[lid].Max,tr[rid].Max); tr[id].Min=min(tr[lid].Min,tr[rid].Min);}void build(int id,int l,int r){ tr[id].l=l,tr[id].r=r; if(l==r) tr[id].Max=tr[id].Min=a[l]; else{ int mid=(l+r)>>1; build(lid,l,mid); build(rid,mid+1,r); push_up(id); }}int ans1,ans2;void query(int id,int l,int r){ if(l==tr[id].l &&r==tr[id].r) ans1=max(ans1,tr[id].Max),ans2=min(ans2,tr[id].Min); else{ int mid=(tr[id].l+tr[id].r)>>1; if(r<=mid) query(lid,l,r); else if(l>mid) query(rid,l,r); else { query(lid,l,mid); query(rid,mid+1,r); } }}int main(){ int n,q; scanf("%d%d",&n,&q); for(int i=1;i<=n;i++) scanf("%d",&a[i]); build(1,1,n); for(int i=1;i<=q;i++) { int x,y; scanf("%d%d",&x,&y); ans1=-1,ans2=inf; query(1,x,y); // printf("%d %d\n",ans1,ans2); printf("%d\n",ans1-ans2); }}
阅读全文
0 0
- [kuangbin带你飞]专题七 线段树 G POJ 3264
- [kuangbin带你飞]专题七 线段树 G POJ 3264
- [kuangbin带你飞]专题七 线段树 【A、B、C、E、G、H】
- [kuangbin带你飞]专题七 线段树
- [kuangbin带你飞]专题七 线段树 H HDU4027
- [kuangbin带你飞]专题七 线段树 B
- [kuangbin带你飞]专题七 线段树 A
- [kuangbin带你飞]专题七 线段树 C
- [kuangbin带你飞]专题七 线段树 E
- [kuangbin带你飞]专题七 线段树 F
- [kuangbin带你飞]专题七 线段树 C POJ 3468
- [kuangbin带你飞]专题七 线段树 D POJ 2528
- [kuangbin带你飞]专题七 线段树 ABCDE 题解,持续更新
- [kuangbin带你飞]专题七 线段树 A HDU 1166
- [kuangbin带你飞]专题七 线段树 B HDU 1754
- [kuangbin带你飞]专题七 线段树 E HDU 1698
- [kuangbin带你飞]专题七 线段树 I HDU 1540
- [kuangbin带你飞]专题七 线段树 J HDU 3974
- 剑指offer---二叉树中和为某一值的路径
- 机器学习经典书籍
- eclipse的一些常用快捷键
- java深入学习十一之IO流
- office-word使用技巧——常见问题
- [kuangbin带你飞]专题七 线段树 G POJ 3264
- Spring Cloud学习--容错机制(Hystrix之服务降级)
- 数字特征值
- The Skyline Problem解题心得
- angualr2 下载文件的两种方式
- color space
- pip加速器
- Valid Sudoku
- web移动端页面性能优化方案