Zeratul的完美区间(线段树||RMQ模板题)
原题大意:原题链接
给定元素无重复数组,查询给定区间内元素是否连续
解体思路:由于无重复元素,所以如果区间内元素连续,则该区间内的最大值和最小值之差应该等于区间长度(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模板题)的更多相关文章
- hdu 1540 Tunnel Warfare (区间线段树(模板))
http://acm.hdu.edu.cn/showproblem.php?pid=1540 Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others) ...
- HDU1828 Picture 线段树+扫描线模板题
Picture Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- 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 ...
- BZOJ 3110 ZJOI 2013 K大数查询 树套树(权值线段树套区间线段树)
题目大意:有一些位置.这些位置上能够放若干个数字. 如今有两种操作. 1.在区间l到r上加入一个数字x 2.求出l到r上的第k大的数字是什么 思路:这样的题一看就是树套树,关键是怎么套,怎么写.(话说 ...
- 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 ...
- 【bzoj3110】[Zjoi2013]K大数查询 权值线段树套区间线段树
题目描述 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c.如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数 ...
- 《白书》上线段树RMQ的实现
白书上的线段树RMQ实现,自己重写了一遍: #include <bits/stdc++.h> using namespace std; const int MAXN=1<<17 ...
- hdu1698 Just a Hook 【区间修改】(模板题)
题目链接:https://vjudge.net/contest/182746#problem/E 题目大意: 一段线段由n条小线段组成,每次操作把一个区间的小线段变成金银铜之一(金的价值为3,银为2, ...
- HDU 4578 Transformation --线段树,好题
题意: 给一个序列,初始全为0,然后有4种操作: 1. 给区间[L,R]所有值+c 2.给区间[L,R]所有值乘c 3.设置区间[L,R]所有值为c 4.查询[L,R]的p次方和(1<=p< ...
随机推荐
- 如何设计Spring读取某种文件的逻辑顺序
1. 判断系统属性System.getProperty("apdb.config.path", "");,有的话,优先使用.(系统属性可以在命令行中以 -D&l ...
- pandas--对axis=0,axis=1的理解
Stackoverflow.com是程序员的好去处,本公众号将以pandas为主题,开始一个系列,争取做到每周一篇,翻译并帮助pandas学习者一起理解一些有代表性的案例.今天的主题就是Pandas与 ...
- Optimal Marks SPOJ - OPTM (按位枚举-最小割)
题意:给一张无向图,每个点有其点权,边(i,j)的cost是\(val_i\ XOR \ val_j\).现在只给出K个点的权值,求如何安排其余的点,使总花费最小. 分析:题目保证权值不超过32位整型 ...
- ElasticSearch的x-pack配置查询
ElasticSearch在安装完x-pack后, 存在客户端通过Transport访问ES出现异常:java.lang.IllegalArgumentException: Unknown Named ...
- deeplenrnig学习笔记——什么是特征
特征是机器学习系统的原材料,对最终模型的影响是毋庸置疑的.如果数据被很好的表达成了特征,通常线性模型就能达到满意的精度. 一.特征的表示粒度: 学习算法在一个什么粒度上的特征表示,才有能发挥作用 ...
- zookeeper 监听事件 CuratorWatcher
zookeeper 监听事件 CuratorWatcher CuratorWatcher一次注册只监听一次,不监听查询. 1.监听测试类 package com.qy.learn.zk.curator ...
- Linux 系统日志管理 rsyslogd配置文件
rsyslogd配置文件 rsyslogd 服务是依赖其配置文件 /etc/rsyslog.conf 来确定哪个服务的什么等级的日志信息会被记录在哪个位置的.也就是说,日志服务的配置文件中主要定义了 ...
- 高通camera结构【转】
本文转载自:http://www.cnblogs.com/whw19818/p/5853407.html 摄像头基础介绍 一.摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上, ...
- Swoole学习(三)Swoole之UDP服务器的创建
环境:Centos6.4,PHP环境:PHP7 <?php //创建UCP服务器(UDP服务器相对于TCP服务器通信更可靠些) /** * $host 是swoole需要监听的ip,如果要监听本 ...
- 20145303刘俊谦 《Java程序设计》第2周学习总结
20145303刘俊谦 <Java程序设计>第2周学习总结 教材学习内容总结 1.对于标识符的一些名称规范(觉得挺重要而且容易混淆!定义就不写了,列一些例子): 包名: xxxyyyzzz ...