★★   输入文件:lineup.in   输出文件:lineup.out   简单对比
时间限制:4 s   内存限制:128 MB

题目描述

农夫约翰的 N (1 ≤ N ≤ 50,000) 头奶牛,每天挤奶时总会按同样的顺序站好。一日,农夫约翰决定为奶牛们举行一个“终极飞盘”比赛。为简化问题,他将从奶牛队列中选出一个连续区间来进行游戏。不过,参加游戏的奶牛要玩的开心的话就不能在身高上差距太大。

农夫约翰制定了 Q (1 ≤ Q ≤ 200,000) 个预定的参赛组,给出它们的身高 (1 ≤ 身高 ≤ 1,000,000)。对每个参赛组,他需要你帮助确定组中最高牛和最低牛的身高差。

输入格式

  • 第 1 行: 两个空格隔开的整数,N 和 Q。
  • 第 2..N+1 行: 第 i+1 行包含一个整数表示第 i 头牛的身高。
  • 第 N+2..N+Q+1 行: 两个整数 A 和 B(1 ≤ A ≤ B ≤ N),表示一个从 A 到 B 的参赛组区间。

输出格式

  • 第 1..Q 行: 每行包含一个整数来表示区间上最大身高差。

样例输入

6 3
1
7
3
4
2
5
1 5
4 6
2 2

样例输出

6
3
0

裸ST表

屠龙宝刀点击就送

#include <cstdio>
#include <cmath>
#define N 50005 int n,q,a[N],maxv[N][],minv[N][];
inline int max(int a,int b) {return a>b?a:b;}
inline int min(int a,int b) {return a>b?b:a;}
void rmq_init()
{
for(int i=;i<=n;++i) maxv[i][]=minv[i][]=a[i];
int logn=(int)(log((double)n)/log(2.0));
for(int j=;j<=logn;++j)
{
for(int i=;i<=n;++i)
{
if(i+(<<j)-<=n)
maxv[i][j]=max(maxv[i][j-],maxv[i+(<<(j-))][j-]),
minv[i][j]=min(minv[i][j-],minv[i+(<<(j-))][j-]);
}
}
}
inline int rmq_max(int l,int r)
{
int logn=(int)(log((double)r-l+)/log(2.0));
return max(maxv[l][logn],maxv[r-(<<logn)+][logn]);
}
inline int rmq_min(int l,int r)
{
int logn=(int)(log((double)r-l+)/log(2.0));
return min(minv[l][logn],minv[r-(<<logn)+][logn]);
}
int main(int argc,char *argv[])
{
freopen("lineup.in","r",stdin);
freopen("lineup.out","w",stdout);
scanf("%d%d",&n,&q);
for(int i=;i<=n;++i) scanf("%d",&a[i]);
rmq_init();
for(int l,r;q--;)
{
scanf("%d%d",&l,&r);
printf("%d\n",rmq_max(l,r)-rmq_min(l,r));
}
return ;
}

COGS 182. [USACO Jan07] 均衡队形的更多相关文章

  1. cogs 182. [USACO Jan07] 均衡队形 线段树

    182. [USACO Jan07] 均衡队形 ★★☆   输入文件:lineup.in   输出文件:lineup.out   简单对比时间限制:4 s   内存限制:128 MB 题目描述 农夫约 ...

  2. COGS182 [USACO Jan07] 均衡队形[RMQ]

    182. [USACO Jan07] 均衡队形 ★★   输入文件:lineup.in   输出文件:lineup.out   简单对比时间限制:4 s   内存限制:128 MB 题目描述 农夫约翰 ...

  3. RMQ——[USACO Jan07] 均衡队形题解

    题目:[USACO Jan07] 均衡队形 描述: 题目描述 农夫约翰的 N (1 ≤ N ≤ 50,000) 头奶牛,每天挤奶时总会按同样的顺序站好.一日,农夫约翰决定为奶牛们举行一个“终极飞盘”比 ...

  4. cogs 181. [USACO Jan07] 最高的牛

    181. [USACO Jan07] 最高的牛 ★★   输入文件:tallest.in   输出文件:tallest.out   简单对比时间限制:1 s   内存限制:32 MB FJ's N ( ...

  5. 177. [USACO Jan07] 有限制的素数

    177. [USACO Jan07] ★   输入文件:qprime.in   输出文件:qprime.out   简单对比 时间限制:1 s   内存限制:128 MB Farmer John 开始 ...

  6. COGS 163 [USACO Mat07] 牛语

    COGS 163 [USACO Mat07] 牛语 输入文件:latin.in   输出文件:latin.out   简单对比 时间限制:1 s   内存限制:128 MB 奶牛们听说猪发明了一种秘密 ...

  7. 【cogs182】【USACO Jan07】均衡队形【st表】

    题目描写叙述 农夫约翰的 N (1 ≤ N ≤ 50,000) 头奶牛,每天挤奶时总会按相同的顺序站好. 一日.农夫约翰决定为奶牛们举行一个"终极飞盘"比赛.为简化问题.他将从奶牛 ...

  8. Cogs 309. [USACO 3.2] 香甜的黄油 dijkstra,堆,最短路,floyd

    题目:http://cojs.tk/cogs/problem/problem.php?pid=309 309. [USACO 3.2] 香甜的黄油 ★★   输入文件:butter.in   输出文件 ...

  9. COGS 144. [USACO Dec07] 魅力手镯【01背包复习】

    144. [USACO Dec07] 魅力手镯 ★   输入文件:charm.in   输出文件:charm.out   简单对比 时间限制:1 s   内存限制:8 MB 译 by CmYkRgB1 ...

随机推荐

  1. Canvas制作动态进度加载水球

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. codeforces-473D Mahmoud and Ehab and another array construction task (素数筛法+贪心)

    题目传送门 题目大意:先提供一个数组,让你造一个数组,这个数组的要求是 1 各元素之间都互质  2  字典序大于等于原数组  3 每一个元素都大于2 思路: 1.两个数互质的意思就是没有公因子.所以每 ...

  3. C:foreEach

    c:forEach用法   <c:foreach>用法   <c:foreach>类似于for和foreach循环   以下是我目前见过的用法:1.循环遍历,输出所有的元素.& ...

  4. testlink数据库访问密码修改

    testlink重启后数据库连接不上将会报错 错误:1045 - Access denied for user 'my_db '@'localhost' (using password: YES) 怎 ...

  5. 更新jdk

    1.从官网下载jdk-8u191-linux-x64.tar.gz,然后放在ubuntu里的Downloads文件夹里.然后解压到/usr/lib/jvm文件夹中. sudo tar -zxvf Do ...

  6. my.变身卡

    中级 1620 (4--6级) 高级 8323 (7--9级) 赤炎: 1.老鼠精 135 / 150 2.白骨精 750 3.情丝娘子 264 / 294 4.沙和尚 500 5.九头虫 1835 ...

  7. robot framework 的AutoItLibrary常用关键字

    1.run 的用法,以及激活当前窗口

  8. w3schools juerymobile

    http://www.w3schools.com/jquerymobile/jquerymobile_examples.asp <!DOCTYPE html> <html> & ...

  9. Missing artifact jdk.tools:jdk.tools:jar:1.6

    今天从svn上面下载了一个mavan项目,出现Missing artifact jdk.tools:jdk.tools:jar:1.6 这个错误. 怎么解决了,在我的根pom.xml 下加入这个依赖就 ...

  10. C#中StreamReader读取中文文本出现乱码的解决方法

    在编写文本文件读写程序的过程中,有如下代码 StreamReader sr = new StreamReader(FileName); 结果发现打开中文文本文件出现乱码. 究其原因,原来自从Windo ...