[kuangbin带你飞]专题七 线段树 G POJ 3264
来源:互联网 发布:三国志9威力加强版mac 编辑:程序博客网 时间:2024/05/20 23:37
题目地址:https://vjudge.net/contest/66989#problem/G
思路:求区间最大值和最小值的差。模板题,拍个模板就过了,没发现有什么坑。
AC代码:
#include<cstring>#include<cstdio>#include<iostream>using namespace std;const int maxn=5e5+10;struct seq{ int n1,n2,l,r;//n1最大,n2最小}T[maxn*4];void build(int l,int r,int k){ T[k].l=l,T[k].r=r; if(l==r) { scanf("%d",&T[k].n1); T[k].n2=T[k].n1; return; } int mid=(l+r)>>1; build(l,mid,k<<1); build(mid+1,r,k<<1|1); T[k].n1=max(T[k<<1].n1,T[k<<1|1].n1); T[k].n2=min(T[k<<1].n2,T[k<<1|1].n2);}int ans1,ans2;void search(int l,int r,int k){ if(T[k].l==l && T[k].r==r) { ans1=max(ans1,T[k].n1); ans2=min(ans2,T[k].n2); return; } //printf("%d\n",k); int mid=(T[k].l+T[k].r)>>1; if(r<=mid) search(l,r,k<<1); else if(l>mid) search(l,r,k<<1|1); else { search(l,mid,k<<1); search(mid+1,r,k<<1|1); }}int main(){ int n,q; scanf("%d%d",&n,&q); build(1,n,1); while(q--) { int a,b; scanf("%d%d",&a,&b); ans1=-1,ans2=0x3f3f3f3f; search(a,b,1); 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
- 3.41
- 第四周项目2-长方形面积
- DOM和BOM区别展示图:
- HashMap和HashTable的区别
- Parajumpers Jacke damen jacke long bear
- [kuangbin带你飞]专题七 线段树 G POJ 3264
- Spring @RequestParam必须要加上参数名
- iOS监听屏幕旋转的几种方法
- java向微信服务器上传永久图片素材
- 遇到的mysql bug
- CSU1323: ZZY and his little friends
- Centos7 安装Git2.9.3
- Swift开发tips
- 第四周项目三计算并联电阻