POJ 3264 Balanced Lineup(RMQ)
Time Limit: 5000MS | Memory Limit: 65536K | |
Total Submissions: 24349 | Accepted: 11348 | |
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 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 3 1 7 3 4 2 5 1 5 4 6 2 2
Sample Output
6 3 0
Source
#include<stdio.h> #include<iostream> #include<math.h> #include<string.h> using namespace std; const int MAXN=50050;int dpmax[MAXN][20]; int dpmin[MAXN][20];void makeMaxRmq(int n,int b[]) {for(int i=0;i<n;i++)dpmax[i][0]=b[i];for(int j=1;(1<<j)<=n;j++)for(int i=0;i+(1<<j)-1<n;i++)dpmax[i][j]=max(dpmax[i][j-1],dpmax[i+(1<<(j-1))][j-1]); } int getMax(int u,int v) {int k=(int)(log(v-u+1.0)/log(2.0));return max(dpmax[u][k],dpmax[v-(1<<k)+1][k]); } void makeMinRmq(int n,int b[]) {for(int i=0;i<n;i++)dpmin[i][0]=b[i];for(int j=1;(1<<j)<=n;j++)for(int i=0;i+(1<<j)-1<n;i++)dpmin[i][j]=min(dpmin[i][j-1],dpmin[i+(1<<(j-1))][j-1]); } int getMin(int u,int v) {int k=(int)(log(v-u+1.0)/log(2.0));return min(dpmin[u][k],dpmin[v-(1<<k)+1][k]); }int a[MAXN]; int main() {int n,Q;int u,v;while(scanf("%d%d",&n,&Q)!=EOF){for(int i=0;i<n;i++)scanf("%d",&a[i]);makeMaxRmq(n,a);makeMinRmq(n,a);while(Q--){scanf("%d%d",&u,&v);u--;v--;int t1=getMax(u,v);int t2=getMin(u,v);printf("%d\n",t1-t2);}}return 0; }
POJ 3264 Balanced Lineup(RMQ)相关推荐
- poj 3264 Balanced Lineup RMQ问题 线段树
For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One d ...
- POJ 3264 Balanced Lineup (RMQ)
Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same ...
- POJ 3264 Balanced Lineup
POJ 3264 Balanced Lineup 题目链接 Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,00 ...
- POJ 3264 Balanced Lineup【线段树区间查询求最大值和最小值】
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 53703 Accepted: 25237 ...
- POJ 3264 Balanced Lineup
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 53629 Accepted: 25223 ...
- POJ 3264 Balanced Lineup 【线段树】
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 50004 Accepted: 23434 Cas ...
- 【RMQ】POJ 3264 Balanced Lineup
前言 这题出现在RMQRMQRMQ的WordWordWord文档中,我就直接把以前ACACAC过的程序交上去,结果WAWAWA了,然后才发现这道题还要求最小值... 链接 http://poj.org ...
- POJ 3264: Balanced Lineup
2019独角兽企业重金招聘Python工程师标准>>> 题目在此 解题思路:查询区间最大值/最小值之差,最基础的线段树应用. 代码: #include <cstdio>/ ...
- poj Balanced Lineup RMQ
Balanced Lineup Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line ...
最新文章
- CUDA Samples: approximate prior vbox layer
- MATLAB安装相机驱动
- Jenkins系统上的时间不正确问题
- 96. (GO)不同的二叉搜索树
- Shell的sort、uniq、tr、cut、命令和 正则表达式
- JAVAEE框架之SpringMVC基础
- JDK1.6历史版本的下载
- java高并发临时表_不适用临时表进行分页,筛选,查询,避免高并发的方法。...
- 多个java文件编译并打成jar包经典方法
- SQL Server中的报表–结合T-SQL和DAX查询以生成有效的报表
- @程序员,你的 996,可能是给公司无能的管理背锅
- pagerank数据集_机器学习十大经典算法-PageRank(附实践代码)
- Spring中整合Quartz插件【一】基于MethodInvokingJobDetailFactoryBean实现任务管理
- (七)线程的优先级Priority和关键词:synchronized
- 企业级客户端病毒清除工具 Damage Cleanup Service
- java代码从初始化到具象执行
- 亲测有效:解决inkscape转换的svg图标,上传到阿里图标库不显示问题
- html数据线如何使用,揭秘数据线DIY详细步骤
- 图片加载失败替代文字_替代艺术:为图像编写出色的描述性文字
- 详解如何使用代码进行音频合成
热门文章
- Install OpenStack Kilo Dashboard wiht Nginx + uWSGI On RHEL7.1
- 修复 XE7 , XE8 Frame 内 PopupMenu 快捷键失效问题
- Linux 复习重点目录
- ScrollView中使用ListView
- 镭波笔记本安装linux,镭波笔记本windows7旗舰版系统下载与安装教程
- matlab colorbar采用对数,matlab colorbar的使用 | 學步園
- docker删除本地已下载的镜像
- 10个超级好用的快捷键技巧,知道的都是大神!
- 程序员需要了解的十个高级SQL概念
- 前大灯是近光灯还是远光灯_汽修案例:长安福特翼博前大灯间歇自动点亮