1699: [Usaco2007 Jan]Balanced Lineup排队

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 1514  Solved: 960
[Submit][Status][Discuss]

Description

每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置连续的牛来进行比赛. 但是为了避免水平悬殊,牛的身高不应该相差太大. John 准备了Q (1 <= Q <= 180,000) 个可能的牛的选择和所有牛的身高 (1 <= 身高 <= 1,000,000). 他想知道每一组里面最高和最低的牛的身高差别. 注意: 在最大数据上, 输入和输出将占用大部分运行时间.

Input

* 第一行: N 和 Q. * 第2..N+1行: 第i+1行是第i头牛的身高.

* 第N+2..N+Q+1行: 两个整数, A 和 B (1 <= A <= B <= N), 表示从A到B的所有牛.

Output

*第1..Q行: 所有询问的回答 (最高和最低的牛的身高差), 每行一个.

Sample Input

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

Sample Output

6
3
0

看完题目之后

果断掏出了雪藏多年的RMQ模板

因为题目中说输入占用大部分时间

于是又掏出了刚学的输入挂

然后就过了

#include<stdio.h>
#include<algorithm>
using namespace std;
typedef struct
{int min;int max;
}Res;
Res dp[50005][24];
int Read()
{int x = 0, f = 1;char ch;ch = getchar();while(ch<'0' || ch>'9'){if(ch=='-')  f = -1;ch = getchar();}while(ch>='0' && ch<='9')x = x*10+ch-'0', ch = getchar();return x*f;
}
int main(void)
{int n, m, i, j, x, y, p, ans;while(scanf("%d%d", &n, &m)!=EOF){for(i=1;i<=n;i++)dp[i][0].min = dp[i][0].max = Read();for(j=1;(1<<j)<=n;j++){for(i=1;i+(1<<j)-1<=n;i++){dp[i][j].max = max(dp[i][j-1].max, dp[i+(1<<(j-1))][j-1].max);dp[i][j].min = min(dp[i][j-1].min, dp[i+(1<<(j-1))][j-1].min);}}while(m--){x = Read(), y = Read();p = 0;while((1<<p)<=y-x+1)p++;p--;ans = max(dp[x][p].max, dp[y-(1<<p)+1][p].max)-min(dp[x][p].min, dp[y-(1<<p)+1][p].min);printf("%d\n", ans);}}return 0;
}

bzoj 1636 bzoj 1699: [Usaco2007 Jan]Balanced Lineup排队(RMQ)相关推荐

  1. bzoj 1699: [Usaco2007 Jan]Balanced Lineup排队【st表||线段树】

    要求区间取min和max,可以用st表或线段树维护 st表 #include<iostream> #include<cstdio> using namespace std; c ...

  2. bzoj1699[Usaco2007 Jan]Balanced Lineup排队

    Description 每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置 ...

  3. [BZOJ] 1637: [Usaco2007 Mar]Balanced Lineup

    1637: [Usaco2007 Mar]Balanced Lineup Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 697  Solved: 463 ...

  4. bzoj 1637: [Usaco2007 Mar]Balanced Lineup

    1637: [Usaco2007 Mar]Balanced Lineup Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 689  Solved: 456 ...

  5. bzoj 1637: [Usaco2007 Mar]Balanced Lineup【瞎搞】

    我是怎么想出来的-- 把种族为0的都变成-1,按位置x排升序之后,s[i]表示种族前缀和,想要取(l,r)的话就要\( s[r]-s[l-1]==0 s[r]==s[l-1] \),用一个map存每个 ...

  6. 【差分+前缀和】BZOJ1637: [Usaco2007 Mar]Balanced Lineup

    Description Farmer John 决定给他的奶牛们照一张合影,他让 N (1 ≤ N ≤ 50,000) 头奶牛站成一条直线,每头牛都有它的坐标(范围: 0..1,000,000,000 ...

  7. bzoj 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列

    1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 821   ...

  8. [BZOJ] 1634: [Usaco2007 Jan]Protecting the Flowers 护花

    1634: [Usaco2007 Jan]Protecting the Flowers 护花 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 827  S ...

  9. BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划

    题目 1613: [Usaco2007 Jan]Running贝茜的晨练计划 Time Limit: 5 Sec  Memory Limit: 64 MB Description 奶牛们打算通过锻炼来 ...

最新文章

  1. 商品和服务税收分类编码导出_谨慎选择加拿大商标的商品和服务分类!否则支付额外费用...
  2. 每天一个linux命令(49):at命令
  3. springmvc进阶(5):mvc:default-servlet-handler详解
  4. Ubuntu 安装 Qt 开发环境(转)
  5. LYNC2013部署系列PART4:群聊部署
  6. 华为鸿蒙mota30手机多少钱,华为Mate30系列基本确认:麒麟985、鸿蒙系统、5G,价格满意!...
  7. 像msn那样的message提示
  8. 微信公众号开发系列教程一(调试环境部署)
  9. [Java] 蓝桥杯ALGO-146 算法训练 4-2找公倍数
  10. 连通域的原理与Python实现
  11. CS5211|EDP转LVDS方案介绍|CS5211电路设计
  12. 新浪十年路 新浪的触角 新浪成年
  13. 网页中使用阿里图标iconfont
  14. Flutter系列(二)flutter项目打安装包
  15. 亿图图示---信息图和数据库模型图
  16. Python条件语句和循环
  17. 字符串转时间(time_t)
  18. VMware Workstation安装Win7系统
  19. MATLAB学习笔记 函数记录(三)
  20. HTML 基本选择器

热门文章

  1. 学python能做什么-学习python后能做哪方面的工作
  2. python和java学哪个好-Python和Java学哪个更好?
  3. python编程入门必备知识-Python快速编程入门,打牢基础必须知道的11个知识点
  4. 【原创】3大主流的移动应用方式APP开发姿势解读
  5. 独家:中国电信提出建产业统一开发平台 避免个人与政企业务脱节
  6. python的文本编辑geny_android模拟器(genymotion)+appium+python 框架执行基本原理(目前公司自己写的)...
  7. Table 点击单元格编辑并获取对应的行列
  8. java8 foreach 伟参_【java8】为java8的foreach正名
  9. 【二分法】剑指offer:二维数组中的查找
  10. python3 将列表中元素转化为字典_软件测试学Python(七):Python中的变量和标准数据类型...