【线段树查询区间最值】poj 3264 Balanced Lineup

 1 #include<cstdio>
 2 #include<algorithm>
 3 using namespace std;
 4
 5 const int maxn=50005;
 6 struct Seg
 7 {
 8     int l,r,mi,ma;
 9 }tree[maxn*4];
10 int val[maxn];
11
12 void build(int l,int r,int i=1)
13 {
14     tree[i].l=l;
15     tree[i].r=r;
16     if (l==r)
17     {
18         tree[i].mi=val[l];
19         tree[i].ma=val[l];
20     }
21     else
22     {
23         int mid=l+r>>1;
24         build(l,mid,i<<1);
25         build(mid+1,r,i<<1|1);
26         tree[i].mi=min(tree[i<<1].mi,tree[i<<1|1].mi);
27         tree[i].ma=max(tree[i<<1].ma,tree[i<<1|1].ma);
28     }
29 }
30
31 int querymi(int l,int r,int i=1)
32 {
33     if (tree[i].l==l && tree[i].r==r) return tree[i].mi;
34     int mid=tree[i].l+tree[i].r>>1;
35     if (r<=mid) return querymi(l,r,i<<1);
36     if (l>mid) return querymi(l,r,i<<1|1);
37     return min(querymi(l,mid,i<<1),querymi(mid+1,r,i<<1|1));
38 }
39
40 int queryma(int l,int r,int i=1)
41 {
42     if (tree[i].l==l && tree[i].r==r) return tree[i].ma;
43     int mid=tree[i].l+tree[i].r>>1;
44     if (r<=mid) return queryma(l,r,i<<1);
45     if (l>mid) return queryma(l,r,i<<1|1);
46     return max(queryma(l,mid,i<<1),queryma(mid+1,r,i<<1|1));
47 }
48
49 int main()
50 {
51     int n,m;
52     scanf("%d%d",&n,&m);
53     for (int i=1;i<=n;i++) scanf("%d",&val[i]);
54     build(1,n);
55     for (int i=0;i<m;i++)
56     {
57         int l,r;
58         scanf("%d%d",&l,&r);
59         printf("%d\n",queryma(l,r)-querymi(l,r));
60     }
61     return 0;
62 }

时间: 2024-10-17 19:29:50

【线段树查询区间最值】poj 3264 Balanced Lineup的相关文章

LightOJ Array Queries 1082【线段树求区间最值】

1082 - Array Queries PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limit: 64 MB Given an array with N elements, indexed from 1 to N. Now you will be given some queries in the form I J, your task is to find the minimum value from index

poj 3264 Balanced Lineup(线段数求区间最大最小值)

链接:http://poj.org/problem?id=3264 Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 32772   Accepted: 15421 Case Time Limit: 2000MS Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order.

Super Mario(线段树离线区间k值)

以前见过这题,没做出来,知道是离线处理,这次仔细想了下, 首先把出现的高度都map离散化一下,以离散化出来的数目g建树,把每个位置都开俩个vector,一个存以这个位置为L的询问,一个存以这个位置为R的询问. 然后从1-g 进行更新,假如当前i是以第j个区间的开始位置,那么这时就可以询问一下<=p[j].h的个数s,显然这时第J个区间多加的,需要减掉,p[j].sum-=s; 然后更新第i个数,update(a[i],1,g,1);再找到某第k区间是以i结尾的,那么依旧询问一下,得出s,p[k]

【题解】CODEVS 1217 借教室 zkw线段树(区间最值)

捣鼓了好长时间才终于把zkw线段树的区间最值修改给A掉了 = =zkw神犇的课件里竟然有错! (╯▽╰)下面的伪代码里被注释的是我修改的>< Func Add_x(s,t,x) for (s=s+M-1,t=t+M+1;s^t^1;s>>=1,t>>=1) { if (~s&1) T[s^1]+=x; if ( t&1) T[t^1]+=x; A=min(T[s],T[s^1]),T[s]-=A,T[s^1]-=A, T[s>>1]+=A;

HDU6447 YJJ&#39;s Salesman-2018CCPC网络赛-线段树求区间最值+离散化+dp

目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门 ?原题目描述在最下面. ?1e5个点,问从(0,0)走到(1e9,1e9)的最大收益. ?当你从(u-1,v-1)走到(u,v)时,你可以获得点(u,v)的权值. Solution: ?十分详细了. ?直接线段树区间最值.当然也可以树状数组,不能st表. ?\(dp[i] = max(query\_max(0,dp[i]-1,1)+val[i] ,

POJ 3264 Balanced Lineup ST表

链接:http://poj.org/problem?id=3264 题意:给一串数字,多次询问,求区间最大值和区间最小值的差. 思路:RMQ问题,可以用O(N^2)的预处理,然后每次O(1)的查询,可以用线段树,O(N)的建树,O(logN)的查询,可以用ST表记录,O(NlogN)的预处理,O(1)的查询. 实际上ST表的预处理过程也是一个DP的过程dp[i][j]表示从第i位开始连续2^j位的区间最值. 预处理:dp[i][j]=min(dp[i][j],dp[i+2^j][j]),查询:q

poj 3264 Balanced Lineup

题目链接:http://poj.org/problem?id=3264 题目大意:就是给你一串数,问你最大数和最小数的差值....... 思路:最基本的线段树,只需要建树和查询,修改都省啦,但是查询要写两个,一个查询最大值,一个查询最小值......然后就能AC掉.....但是话说poj把它分类到RMQ中.... code: #include<cstdio> #include<cmath> #include<algorithm> #include<iostream

[POJ] 3264 Balanced Lineup [ST算法]

Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 34306   Accepted: 16137 Case Time Limit: 2000MS Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer Joh

2016年湖南省第十二届大学生计算机程序设计竞赛---Parenthesis(线段树求区间最值)

原题链接 http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1809 Description Bobo has a balanced parenthesis sequence P=p1 p2…pn of length n and q questions. The i-th question is whether P remains balanced after pai and pbi  swapped. Note that questions ar