bzoj1636: [Usaco2007 Jan]Balanced Lineup
来源:互联网 发布:徕卡ts02plus导出数据 编辑:程序博客网 时间:2024/05/24 02:16
线段树维护区间最大最小值。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int mi(int x,int y){ return x<y?x:y;}int ma(int x,int y){ return x>y?x:y;}int n,a[50005],tot=1;struct segtree{ int ls; int rs; int maxx; int minn;}tree[100005];void build(int p,int l,int r){ int mid=l+r>>1; if(l==r) { tree[p].minn=tree[p].maxx=a[mid]; return; } tree[p].ls=++tot; tree[p].rs=++tot; build(tree[p].ls,l,mid); build(tree[p].rs,mid+1,r); tree[p].minn=mi(tree[tree[p].ls].minn,tree[tree[p].rs].minn); tree[p].maxx=ma(tree[tree[p].ls].maxx,tree[tree[p].rs].maxx);}int qmax(int p,int x,int y,int l,int r){ int mid=l+r>>1; if(x==l&&r==y) return tree[p].maxx; if(y<=mid) return qmax(tree[p].ls,x,y,l,mid); if(x>mid) return qmax(tree[p].rs,x,y,mid+1,r); return ma(qmax(tree[p].ls,x,mid,l,mid),qmax(tree[p].rs,mid+1,y,mid+1,r)); }int qmin(int p,int x,int y,int l,int r){ int mid=l+r>>1; if(x==l&&r==y) return tree[p].minn; if(y<=mid) return qmin(tree[p].ls,x,y,l,mid); if(x>mid) return qmin(tree[p].rs,x,y,mid+1,r); return mi(qmin(tree[p].ls,x,mid,l,mid),qmin(tree[p].rs,mid+1,y,mid+1,r)); }int main(){ int T,x,y; scanf("%d%d",&n,&T); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } build(1,1,n); while(T--) { scanf("%d%d",&x,&y); printf("%d\n",qmax(1,x,y,1,n)-qmin(1,x,y,1,n)); }}
阅读全文
0 0
- 【bzoj1636】[Usaco2007 Jan]Balanced Lineup
- bzoj1636: [Usaco2007 Jan]Balanced Lineup
- bzoj1636&bzoj1699【Usaco2007 Jan】Balanced Lineup
- bzoj1636: [Usaco2007 Jan]Balanced Lineup ——by lethalboy
- 1636: [Usaco2007 Jan]Balanced Lineup
- bzoj1699[Usaco2007 Jan]Balanced Lineup排队
- BZOJ 1636: [Usaco2007 Jan]Balanced Lineup
- BZOJ 1699: [Usaco2007 Jan]Balanced Lineup排队
- bzoj 1699: [Usaco2007 Jan]Balanced Lineup排队
- 【BZOJ 1636】 [Usaco2007 Jan]Balanced Lineup
- [BZOJ1699][Usaco2007 Jan]Balanced Lineup排队
- BZOJ 1636: [Usaco2007 Jan]Balanced Lineup
- BZOJ 1699 [USACO2007 Jan] Balanced Lineup排队
- BZOJ 1636: [Usaco2007 Jan]Balanced Lineup
- 【bzoj 1699】[Usaco2007 Jan]Balanced Lineup排队
- 【bzoj1699】[Usaco2007 Jan]Balanced Lineup排队
- 【bzoj1699】[Usaco2007 Jan][Balanced Lineup排队]
- BZOJ 1636: [Usaco2007 Jan]Balanced Lineup
- 程序猿命名建议20条——20 Tips for Better Naming
- jQuery 表单事件
- bzoj3408: [Usaco2009 Oct]Heat Wave 热浪
- Linux五种IO模型性能分析
- 古生僻词语、成语
- bzoj1636: [Usaco2007 Jan]Balanced Lineup
- 省队集训Round3 DAY4
- 分布式文件系统-FastDFS
- Java写入文件
- Count and Say(tag:String)
- 二狗子的C语言学习之路(数组)
- 特征金字塔特征用于目标检测:Feature Pyramid Networks for Object Detection
- Windows20
- 收邮件NO Select Unsafe Login. Please contact kefu解决办法