poj 3264 Balanced Lineup
来源:互联网 发布:as3 转 js 编辑:程序博客网 时间:2024/06/14 11:50
题目链接:http://poj.org/problem?id=3264
题目大意:就是给你一串数,问你最大数和最小数的差值。。。。。。。
思路:最基本的线段树,只需要建树和查询,修改都省啦,但是查询要写两个,一个查询最大值,一个查询最小值。。。。。。然后就能AC掉。。。。。但是话说poj把它分类到RMQ中。。。。
code:
#include<cstdio>#include<cmath>#include<algorithm>#include<iostream>#define Max 50010using namespace std;struct Node{ int l,r; int minn,maxx;}node[Max*4];int num[Max];void BuildTree(int i,int l,int r){ node[i].l=l; node[i].r=r; if(l==r) { node[i].maxx=node[i].minn=num[l]; return ; } int mid=(l+r)/2; BuildTree(i*2,l,mid); BuildTree(i*2+1,mid+1,r); node[i].maxx=max(node[i*2].maxx,node[i*2+1].maxx); node[i].minn=min(node[i*2].minn,node[i*2+1].minn);}int Query(int i,int l,int r) //查询最大值{ if(node[i].l==l&&node[i].r==r) { return node[i].maxx; } int mid=(node[i].l+node[i].r)/2; if(r<=mid) return Query(i*2,l,r); else if(l>mid) return Query(i*2+1,l,r); else { return max(Query(i*2,l,mid),Query(i*2+1,mid+1,r)); }}int Query1(int i,int l,int r) //查询最小值{ if(node[i].l==l&&node[i].r==r) { return node[i].minn; } int mid=(node[i].l+node[i].r)/2; if(r<=mid) return Query1(i*2,l,r); else if(l>mid) return Query1(i*2+1,l,r); else { return (min(Query1(i*2,l,mid),Query1(i*2+1,mid+1,r))); }}int main(){ int n,q; while(scanf("%d%d",&n,&q)==2) { int i; for(i=1;i<=n;i++) { scanf("%d",&num[i]); } BuildTree(1,1,n); for(i=1;i<=q;i++) { int a,b; scanf("%d%d",&a,&b); int m1=Query(1,a,b); int m2=Query1(1,a,b); printf("%d\n",m1-m2); } } return 0;}
0 0
- POJ 3264 Balanced Lineup
- POJ 3264 Balanced Lineup
- poj 3264 Balanced Lineup
- poj 3264 Balanced Lineup
- poj 3264 Balanced Lineup
- poj 3264 Balanced Lineup
- Poj 3264 Balanced Lineup
- poj 3264 Balanced Lineup
- POJ-3264-Balanced Lineup
- poj 3264 Balanced Lineup
- poj 3264 Balanced Lineup
- POJ 3264-Balanced Lineup
- poj 3264 Balanced Lineup
- POJ 3264 Balanced Lineup
- POJ-3264-Balanced Lineup
- POJ 3264 Balanced Lineup
- POJ 3264 Balanced Lineup
- poj 3264 Balanced Lineup
- struts2学习笔记(二) 初识Struts2
- JMS五种消息的发送/接收的例子
- 如何在内核中读取用户空间数据
- hdu 4891 The Great Pan(模拟)
- 偶数求和
- poj 3264 Balanced Lineup
- HAProxy日志配置详解
- HDU 4885 Bestcoder#2-1003 TIANKENG’s travel 【判断三点共线建图 + 最短路bfs】
- 循环队列
- hdu 1241--入门DFS
- kara组合图片
- 正确的Swizzle方法
- MongoDB基本管理命令
- 关于jsoup的理解