数据结构(RMQ):POJ 3624 Balanced Lineup

Balanced Lineup

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 ≤ ABN), 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 3
1
7
3
4
2
5
1 5
4 6
2 2

Sample Output

6
3
0

  这题是一个裸的RMQ问题。
 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 using namespace std;
 5 const int maxn=50010;
 6 int mm[maxn],Min[maxn][20],Max[maxn][20],a[maxn];
 7 int main(){
 8 #ifndef ONLINE_JUDGE
 9     //freopen(".in","r",stdin);
10     //freopen(".out","w",stdout);
11 #endif    
12     
13     int n,Q;
14     scanf("%d%d",&n,&Q);
15     for(int i=1;i<=n;i++)
16         scanf("%d",&a[i]);
17     mm[0]=-1;
18     for(int i=1;i<=n;i++){
19         mm[i]=(i&(i-1))?mm[i-1]:mm[i-1]+1;
20         Max[i][0]=a[i];
21         Min[i][0]=a[i];
22     }
23     for(int k=1;k<=mm[n];k++)
24         for(int i=1;i+(1<<(k-1))<=n;i++){
25             Max[i][k]=max(Max[i][k-1],Max[i+(1<<(k-1))][k-1]);
26             Min[i][k]=min(Min[i][k-1],Min[i+(1<<(k-1))][k-1]);
27         }
28         
29     int a,b;
30     while(Q--)
31     {
32         scanf("%d%d",&a,&b);
33         printf("%d\n",max(Max[a][mm[b-a+1]],Max[b-(1<<mm[b-a+1])+1][mm[b-a+1]])-min(Min[a][mm[b-a+1]],Min[b-(1<<mm[b-a+1])+1][mm[b-a+1]]));
34     }    
35     return 0;
36 }

 

转载于:https://www.cnblogs.com/TenderRun/p/5277449.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373432.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache Thrift快速入门教程

Thrift是一种跨语言RPC框架&#xff0c;最初是在Facebook上开发的&#xff0c;现在作为Apache项目开源。 这篇文章将描述如何以不同的模式&#xff08;例如阻塞&#xff0c;非阻塞和异步&#xff09;编写Thrift服务和客户端。 &#xff08;我觉得后两种模式的文档较少&#xff…

数组拆分为新数组

package com.classes;//已知数组a&#xff0c;将奇数位置元素存到b数组中&#xff0c;偶数位置元素存到c数组中public class Shuzu1118_4 { public static void main(String[] args) { int [] a{3,6,9,1,4,7,2,5,8}; int [] b; //定义数组b int [] c; //定义数组c//先找出数组…

java数组交集_java数组的交集和并集

前两天给我出了一道题&#xff0c;求数组的并集和交集&#xff0c;然后我试着写一下&#xff0c;很尴尬&#xff0c;由于长时间没有写过代码&#xff0c;一开始数组是如何定义的给忘了。当时我说了我的思路&#xff0c;不过也是很low的做法&#xff0c;查阅网上的一些资料&…

ADF声明性组件示例

在我以前的文章中&#xff0c;我答应展示如何为智能值列表创建ADF声明性组件。 因此&#xff0c;我将创建一个包含三个元素的组件&#xff1a;标签&#xff0c;输入文本和值的组合框列表。 那很容易。 我在工作空间中创建了一个单独的ADF ViewController项目&#xff1a; 在此项…

VS2015 安装包缺失(联网安装失败)问题解决

Win7 x86 测试可行 * 如果前面有尝试过安装不成功, 一定要用卸载程序删除已安装的部分,否则会出乱子. 1. 或者是用虚拟光驱加载ISO, 或者是解压到硬盘上, 都没有关系. 2. 用管理员权限启动CMD控制台, 进入VS2015 安装盘的根目录 (vs_enterprise.exe 所在的目录). 3. 执行命令 …

java蓝桥暑假班_Java实现 蓝桥杯VIP 算法提高 班级排名

算法提高 班级排名时间限制&#xff1a;1.0s 内存限制&#xff1a;256.0MB问题描述达达在陶陶的影响下&#xff0c;也对学习慢慢的产生了兴趣。他在每次考试之后&#xff0c;都会追着老师问&#xff0c;自己在班级的总名次是多少。考试一多&#xff0c;老师也不耐烦了&#xff…

$.ajax所犯的错误。success后面不执行

$.ajax({ type: post, url: ../AshxHandler/HandlerAddPhoto.ashx, data: { clientPath: photoName }, dataType: text, cache: false, success: function (data) { alert(1); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert(上传图片出现错误&#xf…

WhateverOrigin –与Heroku和Play对抗相同的原产地政策! 构架

不久前&#xff0c;我在编码 Bitcoin Pie时发现需要克服臭名昭著的Same Origin Policy &#xff0c;该政策限制了运行在客户端浏览器上的javascript可以访问的域。 通过Stack Overflow&#xff0c;我找到了一个名为Any Origin的站点&#xff0c;这基本上是无需设置专用服务器即…

Solr集群更新配置的方式

solr集群中配置文件是经常更新的&#xff0c;频率最高的也就是schema.xml和solrconfig.xml这两个配置文件了&#xff0c;对于更新配置文件之前&#xff0c;我们先了解一下集群项目结构 由于在集群模式下&#xff0c;solrconfig.xml和schema.xml等配置文件都由Zookeeper集群管理…

java文本框双击可编辑_java swing 文本域双击变为可编辑

java swing如何实现文本域双击变为可编辑呢?给文本域添加鼠标事件监听程序即可:resultTA1new AssistPopupTextArea();resultTA1.setEditable(false);resultTA1.setLineWrap(true);resultTA1.setWrapStyleWord(true);resultTA1.addMouseListener(new MouseAdapter() {Overridep…

点击出现黑色背景的解决

-webkit-tap-highlight-color:rgba(0,0,0,0);转载于:https://www.cnblogs.com/luckyXcc/p/6085582.html

OSGi简介–模块化Java

OSGi联盟是这一搁浅的管理机构&#xff0c;它始于1999年。其最初目标是为网络设备创建开放搁浅。 基于此思想&#xff0c;此规范也针对Java引入。 Eclipse在Java中是第一个。 他们于2004年6月推出了基于OSGi的Eclipse IDE。 OSGi是在Java中定义动态模块的方法。 主要为Java实现…

HDU FatMouse's Speed 基本DP

题意&#xff1a;要求找到的体重递增&#xff0c;速度递减的老鼠&#xff0c;并且输出最长的长度数&#xff0c;而且输出各自的序列数。Special Judge 思路&#xff1a;先按体重由小到大排序&#xff0c;再找最长速度递减序列。 转移方程&#xff1a;mou[i].w>mou[j].w&am…

java xmpp openfire_搭建Xmpp服务器Openfire

step1、 安装java环境这里是检测是否安装java的网页如没有安装则进行以下步骤1、下载jdk7的mac版&#xff1a;jdk-7u79-macosx-x64.dmg2、安装好之后&#xff0c;在命令行进入以下路径查看#cd /Library/Java/JavaVirtualMachines/3、再查看你自己安装的版本#ls版本为jdk-8u171-…

JavaFX移动应用程序最佳实践,第1部分

到现在为止&#xff0c;所有对JavaFX感兴趣的人都会知道&#xff0c;JavaFX Mobile发行了不久 前。 可以肯定的是&#xff0c;这真是令人难以置信。 我感到筋疲力尽&#xff0c;在发行期间我什至没有精力去写博客…… 但是到目前为止&#xff0c;我感到很恢复&#xff0c;并且希…

Spark程序运行报错解决(1)

报错内容&#xff1a;System memory 259522560 must be at least 4.718592E8. Please use a larger heap size. 解决&#xff1a;Window——Preference——Java——Installed JREs——选中一个Jre 后 Edit 在Default VM arguments 里加入&#xff1a;-Xmx512M 转载于:https://w…

java setsolinger_java socket 的参数选项解读(转)

在MulticastSocket的源代码里有设置多播的方法&#xff1a;public void setInterface(InetAddress inf) throwsSocketException {if(isClosed()) {throw new SocketException("Socket is closed");}checkAddress(inf, "setInterface");synchronized(infLoc…

【转】Linux终端下 dstat 监控工具

转自https://linux.cn/article-3215-1.html dstat 是一个可以取代vmstat&#xff0c;iostat&#xff0c;netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能&#xff0c;增加了监控项&#xff0c;也变得更灵活了。dstat可以很方便监控系统…

Tomcat和IntelliJ –在webapps文件夹之外部署war文件

目前&#xff0c;我正在开发一个Android应用程序&#xff0c;该应用程序需要云中托管的大量REST服务来支持。 我基于对Java&#xff0c;Groovy以及最重要的Spring的支持选择了Google App Engine 。 我开发了一个基于Spring MVC的REST应用程序&#xff0c;并使用ContentNegotiat…

[HDU1232] 畅通工程 (并查集 or 连通分量)

Input 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数&#xff0c;分别是城镇数目N ( < 1000 )和道路数目M&#xff1b;随后的M行对应M条道路&#xff0c;每行给出一对正整数&#xff0c;分别是该条道路直接连通的两个城镇的编号。为简单起见&#xff0c;城镇…