Description

题库链接

给你一个长度为 \(n\) 的序列。\(m\) 次询问,每次询问序列的一个区间 \([l,r]\)。对于 \([l,r]\) 内的所有子区间,询问值域是否连续。若存在一个子区间不连续则输出 NO

\(1\leq n,m\leq 100000\)

Solution

日常划水。

显然,满足条件的区间中任意两个相邻的数差值不超过 \(1\)。并且这个条件与原问题等价。

预处理出一个数组 \(maxr_i\) 表示第 \(i\) 位向右延伸的最远位置,这个数组是可以继承的,可以 \(O(n)\) 求出。对于询问,直接比较 \(maxr_l\) 与 \(r\) 的大小即可。

Code

#include <bits/stdc++.h>
using namespace std;
const int N = 100000+5; int n, m, b[N], l, r, maxr[N]; int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++) scanf("%d", &b[i]);
for (int i = 1; i <= n; i++) {
if (maxr[i-1] >= i) maxr[i] = maxr[i-1];
else {
int loc = i;
while (abs(b[loc]-b[loc+1]) <= 1) ++loc;
maxr[i] = loc;
}
}
while (m--) {
scanf("%d%d", &l, &r);
if (maxr[l] >= r) puts("YES");
else puts("NO");
}
return 0;
}

[BZOJ 5127][Lydsy1712月赛]数据校验的更多相关文章

  1. bzoj5127[Lydsy12月赛]数据校验

    多少年不写题解了 题目描述: 著名出题人小 Q 出了一道题,这个题给定一个正整数序列 a1, a2, ..., an,并保证输入数据中,对于 a 的任意一个非空连续子区间 [l, r],该区间内出现过 ...

  2. bzoj 5125: [Lydsy1712月赛]小Q的书架

    新学了一波 决策单调性 dp 套路.... 这种dp一般是长这样的 => f[i][j] = max/min  { f[i-1][k] + cost(k+1,j)} ,其中cost函数满足四边形 ...

  3. bzoj 5123: [Lydsy1712月赛]线段树的匹配

    设f[0/1][x]为区间[1,x]的根向下 不选(0)或者选(1)  的dp pair<最优值,方案数>. 可以很容易的发现总状态数就是log级别的,因为2*n 与 (2*n+1 或者 ...

  4. BZOJ 5129: [Lydsy1712月赛]树上传送 点分树+Dijkstra

    Description http://www.lydsy.com/JudgeOnline/upload/201712/prob12.pdf Input Output 暑假集训的时候点分树做的比较少,所 ...

  5. Struts2数据校验

    Struts2数据校验 1.常见数据校验方法 表单数据的校验方式: 表单中的数据必须被效验以后才能够被使用,常用的效验方式分为两种: 前台校验:也称之为客户端效验,主要是通过JS编程的方式进行表单数据 ...

  6. Spring MVC数据校验

    在web应用程序中,为了防止客户端传来的数据引发程序异常,常常需要对 数据进行验证.输入验证分为客户端验证与服务器端验证.客户端验证主要通过JavaScript脚本进行,而服务器端验证则主要通过Jav ...

  7. spring mvc 数据校验

    1.需要导入的jar包: slf4j-api-1.7.21.jar validation-api-1.0.0.GA.jar hibernate-validator-4.0.1.GA.jar 2.访问页 ...

  8. SpringMvc中的数据校验

    SpringMvc中的数据校验 Hibernate校验框架中提供了很多注解的校验,如下: 注解 运行时检查 @AssertFalse 被注解的元素必须为false @AssertTrue 被注解的元素 ...

  9. springmvc的数据校验

       springmvc的数据校验 在Web应用程序中,为了防止客户端传来的数据引发程序异常,常常需要对数据进行验证,输入验证分为客户端验证与服务器端验证. 客户端验证主要通过javaScript脚本 ...

随机推荐

  1. javascript两种循环写法

    var i=0,len=cars.length; for (; i<len; ) { document.write(cars[i] + "<br>"); i++; ...

  2. Python实现双链表

    双向链表(Double_linked_list)也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱.所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结 ...

  3. 如何Dockerize您的端到端验收测试

    本文作为使用Selenium Docker映像以及CodeceptJS和Express服务器的“操作方法”指南. 其中,我们将涵盖: 什么是E2E验收测试? 为什么要使用Docker? 松散耦合的测试 ...

  4. C语言 hello

    #include <stdio.h> int main() { /* 我的第一个 C 程序 */ printf("Hello, World! \n"); ; } 实例解 ...

  5. -Gradle 翻译 Merge AndroidManifest 合并清单文件 MD

    目录 目录 Merge AndroidManifest 合并清单文件 合并多个清单文件 合并优先级 合并冲突启发式算法 合并规则的标记 节点标记 属性标记 Attribute markers 标记选择 ...

  6. 1014 福尔摩斯的约会(C#)

    一.题目内容: 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm.大侦探很快就 ...

  7. JVM性能优化--字节码技术

    一.字节码技术应用场景 AOP技术.Lombok去除重复代码插件.动态修改class文件等 二.字节技术优势 Java字节码增强指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于 ...

  8. 一个爬虫的demo,requests,beatuifulsoup使用的

    爬虫的demo,requests,beatuifulsoup import os,re import requests import random import time from bs4 impor ...

  9. 【开发工具】- Idea.2018.02注册码激活

    1.从下面地址下载一个jar包,名称是  JetbrainsCrack-3.1-release-enc.jar 下载地址: 链接: https://pan.baidu.com/s/1VZjklI3qh ...

  10. CRC-CCITT CRC-16

    CRC分为以下几种标准: CRC-12码 CRC-16码 CRC-CCITT码 CRC-32码 在线CRC计算器 https://www.lammertbies.nl/comm/info/crc-ca ...