POJ 3264 Balanced Lineup(RMQ)

Balanced Lineup
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

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

Source

USACO 2007 January Silver
#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;
}

 

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

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

相关文章

.NET 开源免费图表组件库,Winform,WPF 通用

大家好, 我是等天黑, 今天给大家介绍一个功能完善, 性能强悍的图表组件库 ScottPlot, 当我第一次在 github 上看到这个库, 我看不懂&#xff0c;但我大受震撼, 这么好的项目当然要分享出来了。https://github.com/ScottPlot/ScottPlotScottPlot 是一个 .NET 图表组件, 主要有以…

物理学上最厉害的54个男人!2400年来难以超越,没想到聚在一起后这么震撼......

全世界只有3.14 % 的人关注了爆炸吧知识19世纪的最后一天电子的发现者汤姆生发表了新年祝词&#xff1a;“晴朗的天空远处&#xff0c;有两朵令人不安的乌云令物理学的优美性和明晰性黯然失色”也似乎就是从这一天开始经典力学的地位被撼动了原子的大门打开了这场微观世界的探险…

linux主线程结束 子线程还能运行么,linux主线程和子线程

"读了三遍&#xff0c;愣是没读懂楼主想说啥。######java_zf 我现在在做的一个项目用到了多线程&#xff0c;我就在项目中子线程调用的一个函数中加了个sleep。你可以写个简单的代码试一下&#xff0c;应该比较简单。你试验的结果不一样吗&#xff1f;我这个项目是Linux下…

Android插件化开发基础之Java反射机制研究

一、获得Class对象 Class<?> c Class.forName("classname"); 抛出ClassNotFoundException 二、获得实现接口 Class<?> inters[] c.getInterfaces(); for(int i0;i<inters.length;i){System.out.print(inters[i].getName()" "); …

[MySQL]关于amd.dll后门病毒入侵3306端口的临时解决方案

为什么80%的码农都做不了架构师&#xff1f;>>> amd.dll入侵事宜&#xff1a; 由于MySQL 5.1.30以上版本的一个漏洞&#xff08;当然是不是因为漏洞的原因&#xff0c;目前暂未知&#xff09;&#xff0c;导致一个后门程序会通过3306端口的MySQL服务获取到Windows…

微软将终止免费的条码标签服务

本文转自&#xff1a;慧都控件网 http://***/zh-CN/info/catalog/19420.html 在纽约时间2013年8月19号&#xff0c;Scanbuy——这个手机软件巨头&#xff0c;手机移动设备的条形码解决方案提供商&#xff0c;被微软选中成为微软条码标签的授权使用者。在购买了微软条码标签技术…

Spring Security3源码分析-http标签解析(转)

为什么80%的码农都做不了架构师&#xff1f;>>> 在FilterChainProxy初始化的过程中&#xff0c;大概描述了标签解析的一些步骤&#xff0c;但不够详细 <http auto-config"true"> <remember-me key"workweb" token-validity-se…

Android之React Native 中组件的生命周期

React Native 中组件的生命周期 概述 就像 Android 开发中的 View 一样&#xff0c;React Native&#xff08;RN&#xff09; 中的组件也有生命周期&#xff08;Lifecycle&#xff09;。所谓生命周期&#xff0c;就是一个对象从开始生成到最后消亡所经历的状态&#xff0c;理解…

当女朋友学会「监视」男朋友......

1 日本网友拍到两只水母互殴&#xff01;▼2 打印机也会生气&#xff1f;&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 现在你们可以互换卡槽了~&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 有什么适合整蛊朋友的恶作剧▼5 哈哈哈哈哈&#xff…

使用.NET5、Blazor和Electron.NET构建跨平台桌面应用

Electron.NET是一个嵌入了ASP.NET Core的Electron的封装&#xff0c;通过Electron.NET可以构建基于.NET5的跨平台的桌面应用&#xff0c;使得开发人员只需要使用ASP.NET Core和 Blazor就可以胜任桌面应用的开发工作。开发环境操作系统Windows/macOS/Linux.NET5.0npm创建新项目创…

蜗蜗 Linux内核芬妮下,201402 - 蜗窝科技

作者&#xff1a;wowo 发布于&#xff1a;2014-2-27 17:01分类&#xff1a;统一设备模型在“Linux内核的整体架构”中&#xff0c;蜗蜗有提到&#xff0c;由于Linux支持世界上几乎所有的、不同功能的硬件设备(这是Linux的优点)&#xff0c;导致Linux内核中有一半的代码是设备驱…

linux内核分析作业3:跟踪分析Linux内核的启动过程

内核源码目录 1、 arch:录下x86重点关注 2、 init&#xff1a;目录下main.c中的start_kernel是启动内核的起点 3、 ipc&#xff1a;进程间通信的目录 实验 使用实验楼的虚拟机打开shell cd LinuxKernel/ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 使…

图表中各个参数的应用( AChartEngine XMultipleSeriesRenderer

图表中各个参数的应用&#xff08; AChartEngine XMultipleSeriesRenderer 运行demo可以发现&#xff0c;它的所有chart都是可以移动&#xff0c;背景色为黑。。。。不过我们有时候会希望chart不动或者改变背景色等一些样式。 这节就介绍一些demo中没有使用的但有很常见的一些关…

用正则匹配多行文本

如果有这样一个字符串 $var "src arr.c build.c eval.c field.c \ missing.c msg.c re.c version.c" 用一般的^\w\s*\s*.*$只能匹配上面的那句&#xff0c;而下面的那一句就无法匹配了 方法一&#xff1a;使用的是perl $var "src arr.c build.c eval.c fiel…

Android之用HttpURLConnection参数以XML形式封装的部分关键代码

HttpURLConnection参数以XML形式封装 //得到连接public static HttpURLConnection setRequest(String urlStr) {HttpURLConnection con = null;try {URL url = new URL(urlStr);try {con = (HttpURLConnection) url.openConnection();con.setDoOutput(true);con.setDoInput(tru…

linux安装定制添加输入,Arch Linux--定制自己的Linux操作系統(乙-國際化桌面安裝篇)...

Arch Linux&#xff0d;&#xff0d;定制自己的Linux操作系統&#xff0d;&#xff0d;&#xff0d;&#xff0d;乙&#xff0d;國際化&桌面安裝篇相信大家看了《甲-安裝篇》之後&#xff0c;Arch Linux系統已經可以正常運行了吧&#xff1f;不過&#xff0c;Arch Linux默認…

ToLookup 和 GroupBy 到底有什么不同?

咨询区 Shlomo&#xff1a;.ToLookup<TSource, TKey> 返回的是 ILookup<TKey, TSource>, 但我发现 ILookup<TKey, TSource> 同时也实现了 IEnumerable<IGrouping<TKey, TSource>> 接口。.GroupBy<TSource, TKey> 直接返回的是 IEnumerabl…

这几部经典纪录片,竟然还有人没看过?

全世界只有3.14 % 的人关注了爆炸吧知识看纪录片&#xff0c;既可以追溯上下数千年的历史文化&#xff0c;也可以欣赏从宇宙到地心深处的奇妙境界&#xff0c;而及其超级精彩的画面即使定格&#xff0c;也是一幅摄影佳作。纪录片题材广泛、制作精良&#xff0c;观看起来算的上是…

Android之获取屏幕和视图高和宽

在android中&#xff0c;画布Canvas的高宽其实是屏幕的高宽。 1. WindowManager windowManager getWindowManager(); Display display windowManager.getDefaultDisplay(); screenWidth display.getWidth(); screenHeight display.getHeight(); 2DisplayMetrics d…

Html5 Video 节点

1、支持的视频格式 当前&#xff0c;video 元素支持三种视频格式&#xff1a;格式 IE Firefox Opera Chrome Safari Ogg No 3.5 10.5 5.0 No MPEG4 9.0 No No 5.0 3.0 WebM No 4.0 10.6 6.0 NoO…