POJ 3264 Balanced Lineup(RMQ)
来源:互联网 发布:快手用户数据 编辑:程序博客网 时间:2024/06/02 03:03
#include<math.h>#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int maxn=5e4+5;int maps[maxn],n,q;int dpmax[maxn][20],dpmin[maxn][20];void init_rmq(){ for(int i=1; i<=n; i++) dpmax[i][0]=dpmin[i][0]=maps[i]; for(int j=1; (1<<j)<=n; j++) { for(int i=1; i+(1<<j)-1<=n; i++) { dpmax[i][j]=max(dpmax[i][j-1],dpmax[i+(1<<(j-1))][j-1]); dpmin[i][j]=min(dpmin[i][j-1],dpmin[i+(1<<(j-1))][j-1]); } }}int get_ans(int a,int b){ int ans1,ans2,k=(int)((double)(log(b-a+1)*1.0)/log(2.0)); ans1=max(dpmax[a][k],dpmax[b-(1<<k)+1][k]); ans2=min(dpmin[a][k],dpmin[b-(1<<k)+1][k]); return ans1-ans2;}int main(){ while(~scanf("%d%d",&n,&q)) { for(int i=1; i<=n; i++) { scanf("%d",&maps[i]); } init_rmq(); for(int i=1; i<=q; i++) { int a,b; scanf("%d%d",&a,&b); printf("%d\n",get_ans(a,b)); } }}
Balanced Lineup
Time Limit: 5000MS Memory Limit: 65536KTotal Submissions: 46898 Accepted: 21994Case 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 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
Line 1: Two space-separated integers, N and Q.
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.
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
Lines 1..Q: Each line contains a single integer that is a response to a reply and indicates the difference in height between the tallest and shortest cow in the range.
Sample Input
6 31734251 54 62 2
Sample Output
630
Source
USACO 2007 January Silver
0 0
- 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)
- POJ 3264 Balanced Lineup (RMQ)
- 怎样设置VMware虚拟机(Ubuntu)和主机Window文件共享
- IAR FOR AVR中精确软件延时方法
- Echarts使用心得
- tcp三次握手建立连接,四次握手关闭连接
- 百度云非 VIP如何作弊加速?
- POJ 3264 Balanced Lineup(RMQ)
- 暑期dp46道(34)--HDOJ 1203 01背包
- 51NOD1092—— 回文字符串(区间dp)
- 符号微积分
- android自定义对话框
- ROI与CPC、CPM有什么关系
- Palindrome Number_Leetcode_#9
- Expression表达式资料
- 数据结构实验之图论八:欧拉回路