RMQ——[USACO Jan07] 均衡队形题解
题目:[USACO Jan07] 均衡队形
描述:
题目描述
农夫约翰的 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 该题较水,还是果的RMQ算法,只是多加了一个数组存储而已,并没有难度,一遍AC木有了。
AC代码:
{
program zht;
var
i,j,n,m,q,w,l,r,x:longint;
a:array[0..50000] of longint;
f1,f2:array[0..50000,0..20] of longint;
function max(a,b:longint):longint;
begin
if a>b then max:=a else max:=b;
end; function min(a,b:longint):longint;
begin
if a<b then min:=a else min:=b;
end; begin
assign(input,'lineup.in');
assign(output,'lineup.out');
reset(input);
rewrite(output); readln(n,m); fillchar(f1,sizeof(f1),0); for i:=1 to n do
begin
read(a[i]);
f1[i,0]:=a[i];
f2[i,0]:=a[i];
end; for j:=1 to trunc(ln(n)/ln(2)) do
for i:=1 to n+1-(1 shl j) do
begin
f1[i,j]:=min(f1[i,j-1],f1[i+1 shl (j-1),j-1]);
f2[i,j]:=max(f2[i,j-1],f2[i+1 shl (j-1),j-1]);
end;
for i:=1 to m do
begin
readln(l,r);
x:=trunc(ln(r-l+1)/ln(2));
q:=min(f1[l,x],f1[r+1-(1 shl x),x]);
w:=max(f2[l,x],f2[r+1-(1 shl x),x]);
writeln(w-q);
end; close(input);
close(output);
end.
}
<Marvolo原创,严禁转载>
RMQ——[USACO Jan07] 均衡队形题解的更多相关文章
- COGS182 [USACO Jan07] 均衡队形[RMQ]
182. [USACO Jan07] 均衡队形 ★★ 输入文件:lineup.in 输出文件:lineup.out 简单对比时间限制:4 s 内存限制:128 MB 题目描述 农夫约翰 ...
- cogs 182. [USACO Jan07] 均衡队形 线段树
182. [USACO Jan07] 均衡队形 ★★☆ 输入文件:lineup.in 输出文件:lineup.out 简单对比时间限制:4 s 内存限制:128 MB 题目描述 农夫约 ...
- COGS 182. [USACO Jan07] 均衡队形
★★ 输入文件:lineup.in 输出文件:lineup.out 简单对比时间限制:4 s 内存限制:128 MB 题目描述 农夫约翰的 N (1 ≤ N ≤ 50,000) 头奶牛 ...
- 177. [USACO Jan07] 有限制的素数
177. [USACO Jan07] ★ 输入文件:qprime.in 输出文件:qprime.out 简单对比 时间限制:1 s 内存限制:128 MB Farmer John 开始 ...
- cogs 181. [USACO Jan07] 最高的牛
181. [USACO Jan07] 最高的牛 ★★ 输入文件:tallest.in 输出文件:tallest.out 简单对比时间限制:1 s 内存限制:32 MB FJ's N ( ...
- 【cogs182】【USACO Jan07】均衡队形【st表】
题目描写叙述 农夫约翰的 N (1 ≤ N ≤ 50,000) 头奶牛,每天挤奶时总会按相同的顺序站好. 一日.农夫约翰决定为奶牛们举行一个"终极飞盘"比赛.为简化问题.他将从奶牛 ...
- USACO Section 1.3 题解 (洛谷OJ P1209 P1444 P3650 P2693)
usaco ch1.4 sort(d , d + c, [](int a, int b) -> bool { return a > b; }); 生成与过滤 generator&& ...
- 洛谷p1091合唱队形题解
题目 合唱队形首先要满足的是从1这个位置到中间任意的位置为单增的,从中间任意的位置到最后是单减的,且长度最长.这样才能满足出列的同学最少. 如果要满足这个条件那么我们可以先预处理出每个点的从前找的最长 ...
- P1091 合唱队形题解(洛谷,动态规划LIS,单调队列)
先上题目 P1091 合唱队形(点击打开题目) 题目解读: 1.由T1<...<Ti和Ti>Ti+1>…>TK可以看出这题涉及最长上升子序列和最长下降子序列 2 ...
随机推荐
- 使用HTML5 WebDataBase设计离线数据库
基于HTML5的Web DataBase 可以让你在浏览器中进行数据持久地存储管理和有效查询,假设你的离线应用程序有需要规范化的存储功能,那么使用Web DataBase,可以使你的应用程序无论是在离 ...
- Android实现网络多线程断点续传下载(转)
本示例介绍在Android平台下通过HTTP协议实现断点续传下载. 我们编写的是Andorid的HTTP协议多线程断点下载应用程序.直接使用单线程下载HTTP文件对我们来说是一件非常简单的事.那么,多 ...
- 9.5noip模拟试题
题目名称 正确答案 序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer.o ...
- HUD2087
#include<iostream> #include<cstdio> #include<cstring> #define maxn 1010 using name ...
- Entity Framework 6 学习笔记
自引用 public class PictureCategory { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] publi ...
- 使用Cxf发布Webservice服务,如果待发布的接口中有重载方法,怎么处理??
使用 @WebMethod(operationName="multiParamByName") 重新指定名字. http://bbs.csdn.net/topics/270059 ...
- UIImageView添加边框和阴影
- (void)viewDidLoad { [super viewDidLoad]; //添加显示 UIImage *image = [UIImage imageNamed:@"0_wang ...
- 四、C#方法和参数
方法是一种组合一系列语句以执行一个特定操作或计算一个特殊结果的方式. 它能够为构成程序的语句提供更好的结构和组织. 在面向对象的语言中,方法总是和类关联在一起的,我们用类将相关的方法分为一组. 方 ...
- http请求的cookie
Cookie的作用: Cookie是用于维持服务端会话状态的,通常由服务端写入,在后续请求中,供服务端读取. HTTP请求,Cookie的使用过程 1.server通过HTTP Response中的& ...
- JavaScript_ECMA5数组新特性
var arr = [ 1, 2, 3, 4, 5, 4, 3, 2, 1 ]; 新加位置的方法: indexOf lastIndexOf1.1个参数的时候表示传值 返回索引位置(index从0开始) ...