原题大意:原题链接

给定元素无重复数组,查询给定区间内元素是否连续

解体思路:由于无重复元素,所以如果区间内元素连续,则该区间内的最大值和最小值之差应该等于区间长度(r-l)

解法一:线段树(模板题)

#include<cstdio>
#include<algorithm>
#define inf 0x3f3f3f3f
using namespace std;
const int maxn=1e5+;
int va,curmi,curma;
int mi[*maxn],ma[*maxn];
void Build(int p,int l,int r)
{
if(l==r){
scanf("%d",&va);
mi[p]=ma[p]=va;
return;
}
int mid=(l+r)/;
Build(*p,l,mid);
Build(*p+,mid+,r);
mi[p]=min(mi[*p],mi[*p+]);
ma[p]=max(ma[*p],ma[*p+]);
}
void Query(int p,int l,int r,int ll,int rr)
{
if(ll<=l&&r<=rr){
curmi=min(curmi,mi[p]);
curma=max(curma,ma[p]);
return;
}
int mid=(l+r)/;
if(ll<=mid)
Query(*p,l,mid,ll,rr);
if(rr>mid)
Query(*p+,mid+,r,ll,rr);
}
int main()
{
int n,m,q,l,r;
scanf("%d",&n);
Build(,,n);
scanf("%d",&q);
while(q--){
scanf("%d%d",&l,&r);
curmi=inf,curma=-inf;
Query(,,n,l,r);
if(curma-curmi==r-l) puts("YES");
else puts("NO");
}
}

解法二:RMQ(模板题)

#include<cmath>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=1e5+;
int n,q,l,r,va,curmi,curma;
int mi[maxn][],ma[maxn][]; void Rmq_Precede()
{
for(int j=;(<<j)<=n;j++){//长度最长为log2n
for(int i=;i+(<<j)-<=n;i++){//最后一个元素编号为i+(1<<j)-1
mi[i][j]=min(mi[i][j-],mi[i+(<<(j-))][j-]);
ma[i][j]=max(ma[i][j-],ma[i+(<<(j-))][j-]);
}
}
}
void Rmq_Query(int l,int r)
{
int k=log2(r-l+);
curmi=min(mi[l][k],mi[r-(<<k)+][k]);
curma=max(ma[l][k],ma[r-(<<k)+][k]);
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&va);
mi[i][]=ma[i][]=va;
}
Rmq_Precede();
scanf("%d",&q);
while(q--){
scanf("%d%d",&l,&r);
Rmq_Query(l,r);
if(curma-curmi==r-l) puts("YES");
else puts("NO");
}
}

Zeratul的完美区间(线段树||RMQ模板题)的更多相关文章

  1. hdu 1540 Tunnel Warfare (区间线段树(模板))

    http://acm.hdu.edu.cn/showproblem.php?pid=1540 Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others) ...

  2. HDU1828 Picture 线段树+扫描线模板题

    Picture Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  3. hdu 1754:I Hate It(线段树,入门题,RMQ问题)

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  4. BZOJ 3110 ZJOI 2013 K大数查询 树套树(权值线段树套区间线段树)

    题目大意:有一些位置.这些位置上能够放若干个数字. 如今有两种操作. 1.在区间l到r上加入一个数字x 2.求出l到r上的第k大的数字是什么 思路:这样的题一看就是树套树,关键是怎么套,怎么写.(话说 ...

  5. HDU 1754 I Hate It 线段树RMQ

    I Hate It Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=175 ...

  6. 【bzoj3110】[Zjoi2013]K大数查询 权值线段树套区间线段树

    题目描述 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c.如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数 ...

  7. 《白书》上线段树RMQ的实现

    白书上的线段树RMQ实现,自己重写了一遍: #include <bits/stdc++.h> using namespace std; const int MAXN=1<<17 ...

  8. hdu1698 Just a Hook 【区间修改】(模板题)

    题目链接:https://vjudge.net/contest/182746#problem/E 题目大意: 一段线段由n条小线段组成,每次操作把一个区间的小线段变成金银铜之一(金的价值为3,银为2, ...

  9. HDU 4578 Transformation --线段树,好题

    题意: 给一个序列,初始全为0,然后有4种操作: 1. 给区间[L,R]所有值+c 2.给区间[L,R]所有值乘c 3.设置区间[L,R]所有值为c 4.查询[L,R]的p次方和(1<=p< ...

随机推荐

  1. vim中快速定位到某行以及快捷删除多行

    vim filename 在命令行中直接输入 numberG 比如 100G直接定位到100行 输入 :set number即显示行号 : i,.d删除从第i行到目前所在行内容

  2. quick-cocos2d-x + Lua 开发

    quick-cocos2d-x + Lua 开发      quick-cocos2d-x + Lua 开发 首页在Eclipse中搭建quick-cocos2d-x的lua开发环境. 1. 首先需要 ...

  3. Linux系统——inode和block

    Linux文件属性 磁盘被分区并格式化为ext4文件系统后,会生成一定数量的inode和block Inode 索引节点 作用:存放文件的属性信息以及作为文件的索引(指向文件的实体block) Blo ...

  4. 150. Evaluate Reverse Polish Notation(逆波兰表达式)

    Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...

  5. (译)Windows Azure的7月更新:SQL数据库,流量管理,自动缩放,虚拟机

    Windows Azure的7月更新:SQL数据库,流量管理,自动缩放,虚拟机 今早我们释出一些很棒的Windows Azure更新.这些新的提升包括:SQL数据库:支持SQL自动导出和一个新的高级层 ...

  6. iOS 个人所得税 app 基础解析实践

    前言:2019年 新个税实施在即,全国几乎所有在职员工都会下载“个人所得税”app来使用,并且 注册使用过程需要填写身份证号等相当私密重要的个人信息. 至今,各大app平台应用下载榜首仍然“无人能出其 ...

  7. 20145316《Java程序设计》第七周学习总结

    20145316<Java学习程序设计>第七周学习总结 教材学习知识总结 1.在只有Lambda表达式的情况下,参数的类型必须写出来. 2.Lambda表达式本身是中性的,同样的Lambd ...

  8. FileSystemWatcher监听文件是否有被修改

    作用:监听文件系统更改通知,并在目录或目录中的文件更改时引发事件. 需求:监听特定文件是否修改,然后做出相应的操作. 方法: ①利用一个线程,一直去查找该指定的文件是否有被修改,如果修改则操作特定步骤 ...

  9. 设置 vadio 和checkbox是否选中

    1.js方案 <!DOCTYPE html> <html> <head> <meta charset=utf-8 />  <title>te ...

  10. 20145230熊佳炜《网络对抗》实验八:WEB基础

    20145230熊佳炜<网络对抗>实验八:WEB基础 实验目标 Web前端HTML:能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTM ...