POJ 题目3264 Balanced Lineup(RMQ)
来源:互联网 发布:场景化数据营销服务商 编辑:程序博客网 时间:2024/06/05 13:03
Description
For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decides to organize a game of Ultimate Frisbee with some of the cows. To keep things simple, he will take a contiguous range of cows from the milking lineup to play the game. However, for all the cows to have fun they should not differ too much in height.
Farmer John has made a list of Q (1 ≤ Q ≤ 200,000) potential groups of cows and their heights (1 ≤ height ≤ 1,000,000). For each group, he wants your help to determine the difference in height between the shortest and the tallest cow in the group.
Input
Lines 2..N+1: Line i+1 contains a single integer that is the height of cow i
Lines N+2..N+Q+1: Two integers A and B (1 ≤ A ≤ B ≤ N), representing the range of cows from A to B inclusive.
Output
Sample Input
6 31734251 54 62 2
Sample Output
630
Source
USACO 2007 January Silver
ac代码
#include<stdio.h>#include<string.h>#include<math.h>#define max(a,b) (a>b?a:b)#define min(a,b) (a>b?b:a)int minv[50050][20],maxv[50050][20];int a[50050];void init(int n){int i,j,k;for(i=1;i<=n;i++){maxv[i][0]=minv[i][0]=a[i];}for(j=1;(1<<j)<=n;j++){for(k=1;k+(1<<j)-1<=n;k++){minv[k][j]=min(minv[k][j-1],minv[k+(1<<(j-1))][j-1]);maxv[k][j]=max(maxv[k][j-1],maxv[k+(1<<(j-1))][j-1]);}}}int q_max(int l,int r){int k=(int)(log((double)(r-l+1))/(log(2.0)));return max(maxv[l][k],maxv[r-(1<<k)+1][k]);}int q_min(int l,int r){int k=(int)(log((double)(r-l+1))/(log(2.0)));return min(minv[l][k],minv[r-(1<<k)+1][k]);}int main(){int n,m;while(scanf("%d%d",&n,&m)!=EOF){int i;for(i=1;i<=n;i++){scanf("%d",&a[i]);}init(n);while(m--){int l,r;scanf("%d%d",&l,&r);printf("%d\n",q_max(l,r)-q_min(l,r));}}}
- POJ 题目3264 Balanced Lineup(RMQ)
- poj 3264 Balanced Lineup (RMQ))
- poj 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(简单RMQ)
- Balanced Lineup(RMQ)(POJ 3264)
- POJ 3264--Balanced Lineup(RMQ问题)
- POJ 3264 Balanced Lineup(RMQ详解)
- POJ 3264 Balanced Lineup(RMQ模板)
- poj 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- poj 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- POJ - 3264 - Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup (RMQ)
- 将结构体变量中的字符串元素赋值为空
- Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
- iOS- 多线程技术的概述及优点
- Android 开源框架Universal-Image-Loader完全解析(三)---源代码解读
- C++数据类型的熟悉
- POJ 题目3264 Balanced Lineup(RMQ)
- 2.4 VM-Entry & VM-Exit
- C51 中断接收 查询发送
- 复杂计算器的实现,没有界面
- 黑马程序员—Java基础知识--常量、变量、运算符、循环、数组
- JSP之param动作
- 2.5 cpu虚拟化情景分析
- I NEED A OFFER! hdu1203
- 智慧北京---笔记