题面:P2880 [USACO07JAN]平衡的阵容Balanced Lineup

题解:

ST表板子

代码:

 #include<cstdio>
#include<cstring>
#include<iostream>
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
using namespace std;
const int maxn=,max_log=,maxlog=,inf=<<;
int Fmx[maxn][max_log],N,Q,Fmn[maxn][max_log],LOG[maxn],A,B;
int main(){
scanf("%d%d",&N,&Q);
for(int i=;i<=N;i++)
for(int j=;j<=maxlog;j++)
Fmn[i][j]=inf;
for(int i=;i<=N;i++){
scanf("%d",&Fmx[i][]);
Fmn[i][]=Fmx[i][];
}
LOG[]=-;
for(int i=;i<=N;i++)LOG[i]=LOG[i>>]+;
for(int j=;j<=maxlog;j++)//
for(int i=;i+(<<j)-<=N;i++){
Fmx[i][j]=max(Fmx[i][j-],Fmx[i+(<<(j-))][j-]);
Fmn[i][j]=min(Fmn[i][j-],Fmn[i+(<<(j-))][j-]);
}
while(Q--){
scanf("%d%d",&A,&B);
int x=LOG[B-A+],ans1,ans2;
ans1=max(Fmx[A][x],Fmx[B-(<<x)+][x]);
ans2=min(Fmn[A][x],Fmn[B-(<<x)+][x]);
printf("%d\n",ans1-ans2);
}
return ;
}

By:AlenaNuna

ST表 || RMQ问题 || BZOJ 1699: [Usaco2007 Jan]Balanced Lineup排队 || Luogu P2880 [USACO07JAN]平衡的阵容Balanced Lineup的更多相关文章

  1. Luogu P2880 [USACO07JAN]平衡的阵容Balanced Lineup (ST表模板)

    传送门(ST表裸题) ST表是一种很优雅的算法,用于求静态RMQ 数组l[i][j]表示从i开始,长度为2^j的序列中的最大值 注意事项: 1.核心部分: ; (<<j) <= n; ...

  2. 【洛谷】P2880 [USACO07JAN]平衡的阵容Balanced Lineup(st表)

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

  3. P2880 [USACO07JAN]平衡的阵容Balanced Lineup(RMQ的倍增模板)

    题面:P2880 [USACO07JAN]平衡的阵容Balanced Lineup RMQ问题:给定一个长度为N的区间,M个询问,每次询问Li到Ri这段区间元素的最大值/最小值. RMQ的高级写法一般 ...

  4. BZOJ 1699: [Usaco2007 Jan]Balanced Lineup排队( RMQ )

    RMQ.. ------------------------------------------------------------------------------- #include<cs ...

  5. BZOJ 1699: [Usaco2007 Jan]Balanced Lineup排队

    1699: [Usaco2007 Jan]Balanced Lineup排队 Description 每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. ...

  6. bzoj 1699: [Usaco2007 Jan]Balanced Lineup排队 分块

    1699: [Usaco2007 Jan]Balanced Lineup排队 Time Limit: 5 Sec  Memory Limit: 64 MB Description 每天,农夫 John ...

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

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

  8. BZOJ 1699 [Usaco2007 Jan]Balanced Lineup排队 线段树

    题意:链接 方法:线段树 解析: 题意即题解. 多次询问区间最大值与最小值的差.显然直接上线段树或者rmq维护区间最值就可以. 代码: #include <cstdio> #include ...

  9. [USACO07JAN]平衡的阵容Balanced Lineup BZOJ 1699

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

随机推荐

  1. python常用校验方法总结

    0x00 校验一个字符串是否是合法IP地址 ipv4举例:利用正则表达式来匹配 def checkip(ip): p = re.compile('^((25[0-5]|2[0-4]\d|[01]?\d ...

  2. HT for Web框架使用心得

    一.简单介绍 在HT for Web的官网首页写着,构建先进2D和3D可视化所需要的一切. 是的,只要你看过官网,你就会知道,这是一个企业的.并非开源的且需要收费的框架. 因为公司的业务需要,且公司使 ...

  3. spring事务源码分析结合mybatis源码(二)

    让我们继续上篇,分析下如果有第二个调用进入的过程. 代码部分主要是下面这个: if (isExistingTransaction(transaction)) { return handleExisti ...

  4. day02 解释器安装及初识变量

    今日内容: 1.解释器的安装 2.添加到环境变量 3.pip初识 4.变量初识 5.PyCharm安装及激活 今日重点: 1.将python及pip添加到环境变量 在将python解释器安装到计算机后 ...

  5. C#VS2017添加ReportViewer控件

    安装完vs2017之后我们进行添加Report Viewer控件: 1. 点击Tools -> Extensions and Updates... 2. 在新窗口搜索栏中输入rdlc后搜索,结果 ...

  6. [正则表达式]PCRE反向分组引用(语法)

    正则表达式中,凡出现圆括号(),括号中的匹配内容就会被认为是一个分组: 根据括号从左边出现的顺序命名分组代号,分组代号由1到n(代号0通常被一些语言用来引用整个表达式匹配的结果,即使这个表达式没有分组 ...

  7. 树·AVL树/平衡二叉树

    1.AVL树 带有平衡条件的二叉查找树,所以它必须满足条件: 1 是一棵二叉查找树 2 满足平衡条件 1.1 平衡条件: 1)严格的平衡条件:每个节点都必须有相同高度的左子树和右子树(过于严格而不被使 ...

  8. python小猪蹄儿

    夜的第七章,打字机继续向前推向,微亮! 请写一个栈 class Stack: #初始化栈(列表) def __init__(self): self.items=[] #栈的大小 def size(se ...

  9. 解决爬虫中遇到的js加密问题之有道登录js逆向解析

    具体实现在github上面(有详细的步骤): https://github.com/WYL-BruceLong/Spider_JS_ReverseParsin

  10. BsonJavaScript

    BsonJavaScript主要应用于mongodb驱动中 1.进行数据分组 MongoClient client = new MongoClient(host.ConnectionString); ...